ディジタル信号処理 第 7 回
システムの周波数特性
システムの周波数応答とは ? 離散時間では・ ・ ・
• 1
入力
1出力の線形時不変で
BIBO安定な離
散時間システムに対し, そのインパルス応答
の離散時間フーリエ変換, あるいはその伝達
関数の変数
zに
ejωを代入したものを, システ
ムの周波数応答あるいは周波数特性と呼ぶ.
連続時間では・ ・ ・
• 1
入力
1出力の線形時不変で
BIBO安定な連
続時間システムに対し, そのインパルス応答
のフーリエ変換, あるいはその伝達関数の変
数
sに
jωを代入したものを, システムの周波
数応答あるいは周波数特性と呼ぶ.
•
教科書の記述と話の順序が逆になっているの で, 対応を見ておく.
•
以下では, システムのインパルス応答を
hと し,
h ∈l1 (すなわちPn∈Z|h(n)|< ∞)
と仮 定する.
•
システムに印加される入力
xを次のように 取る.
x[n] =ejωn.
•
システムの出力を
yとすると・ ・ ・
y[n] = Xm∈Z
h[m]ejω(n−m)
= X
m∈Z
h[m]e−jωm
! ejωn
= X
m∈Z
h[m]e−jωm
! x[n]
•
以上で見たように, 入力に次の複素数が乗じ られている.
X
m∈Z
h[m]e−jωm
•
これは, システムのインパルス応答を離散時
間フーリエ変換したものの角周波数
ωにおけ
る値になっている. これで教科書の記述との
対応が取れた.
•
システムの周波数応答は, システムが
BIBO安定であれば定義できるが,
BIBO安定でな い場合には定義できるとは限らない.
•
独立変数が周波数の場合も, 角周波数の場合 も, 「周波数応答」という言葉が用いられる.
•
周波数応答と周波数特性という言葉も意味は
同一で, 周波数応答の方が一般的. 以下では周
波数応答を用いる.
• H(ω)
の絶対値を
A(ω)と書き, システムの振 幅周波数特性あるいは振幅特性という.
• H(ω)
の偏角を
θ(ω)と書き, システムの位相
周波数特性あるいは位相特性という. 偏角の
取り方には色々な流儀があるので注意.
•
この講義では離散時間フーリエ変換における 変換後の関数の独立変数を
ωと書いてきた が,
z変換との対応関係を取る際には独立変 数を
ejωとした方が都合が良い
(伝達関数の変数
zに
ejωを代入するとシステムの周波数
応答
(すなわちシステムのインパルス応答を離散時間フーリエ変換したもの) が得られる
ため). 教科書ではそのようになっているの
だが・ ・ ・
•
上述の振幅特性や位相特性の議論でわかるよ
うに, 最終的には
ωを独立変数として扱う形
に落ち付く. これを踏まえて, 今後も講義資料
では
H(ω)という記法を続けるが, 多くの教科
書で
H(ejω)と書かれているということを覚
えておくこと. 関数
[0,2π)∋ω7→ejω ∈Zは
全単射なので, 上記は単なる変数変換である.
•
周波数応答はシステムが因果的であるか否か
にかかわらず定義できるが, 因果的でない場
合には, 「入力を印加するより前の時刻です
でに応答波形が出ている」ことになるので注
意を要する. 非リアルタイム信号処理では,
このようなことも可能.
周波数応答の別の定義(連続/離散時間で共通)
• 野波,水野(編集代表),制御の事典,朝倉書店, 2015によると,周
波数応答の定義は・・・
安定なシステムに一定の周波数の正弦波を入力し続 けると,十分時間が経過した状態(定常状態)では,出 力も同じ周波数の正弦波となる. このような正弦波入 力に対する定常状態での応答を周波数応答という. 通 常は周波数を変化させた場合の応答をまとめてこの ようによんでいる.
これに類する形で定義が述べられることもしばしばあるので, 敢えて述べたのだが・・・
• 実は問題にするのは
⊲ 出力の最大振幅が入力の最大振幅の何倍になっているか
⊲ 入力と出力の位相のずれがどの程度か
であり,応答波形そのものを問題にするわけではない.
• 先の定義は,伝統的な周波数応答の測り方(入力を正弦波とし, 正弦波の周波数を変えながら,システムが定常状態になるのを 待ってから入力に対する最大振幅および位相の変化を記録する) に引きずられた定義であると思われる.
インパルス応答が実数の場合
• H(ω)
の絶対値を振幅周波数特性と呼んで
A(ω)と書き, 偏角を位相周波数特性と呼んで
θ(ω)と書いたのだが・ ・ ・
•
インパルス応答が実数の場合
(物理的なシステムでは大抵こうなる) では, 振幅周波数特
性と位相周波数特性は特別な性質を持つ.
• H(ω) = P∞
n=−∞h[n]e−jωn
より,
H(−ω) =∞
X
n=−∞
h[n]ejωn
だが, インパルス応 答が実数であると仮定したから,
h[n] =h[n],よって
h[n]ejωn =h[n]e−jωn
•
しがたって,
H(−ω) = H(ω).•
振幅周波数特性
A(ω)は
H(ω)の絶対値, 位相 周波数特性
θ(ω)は
H(ω)の偏角で,
H(−ω) = H(ω)だから・ ・ ・
• A(−ω) = A(ω), θ(−ω) = −θ(ω).
これはイ
ンパルス応答が実数の場合に成り立つ特別な
性質であることを改めて注意しておく.
システムの周波数応答の求め方
•
システムの入力
xと出力
yが既知でともに
l1に属するものと仮定する. また, システムの
インパルス応答
(未知)も
l1に属するものと
仮定する.
x,y, hを離散時間フーリエ変換し
たものを
X,Y,Hと書くまた, このシステム
の伝達関数を
HZとする.
1.
システムのインパルス応答が既知であれば,
Pm∈Zh[m]e−jωm
により周波数応答を求める ことができる.
2.
システムの伝達関数が既知であれば,
HZ(z)の
zに
ejωを代入することにより周波数応答
を求めることができる.
3. y = x∗h
を離散時間フーリエ変換すること で
Y =HXとなる.
Hが求めるべき周波数 応答だから,
H = Y X.
伝統的な周波数応答の測定法は,入力を正弦波とし,正弦波の周波数 を変えながら,システムが定常状態になるのを待ってから入力に対す る最大振幅および位相の変化を記録する,というものであるが,この 手順が入力と出力のスペクトルを記録することに相当するため,上記 の方法に近い.
正弦波の線形結合に対する応答
•
周波数応答が既知のシステムへの入力
xを
x[n] =L
X
l=1
Alej(ωln+φl)
とする.
•
この入力に対するシステムの応答を見る.
•
我々は線形時不変で
BIBO安定な離散時間シ ステムを対象にしていたから, 過渡特性を無 視すれば, この入力に対するシステムの応答 は,
Alej(ωln+φl) (1 ≤ l ≤ L)に対する応答を 足し合わせたものになる.
• Alej(ωln+φl) = Alejωlnejφl = Alejφlejωln
だか
ら,
Alej(ωln+φl)は,
ejωlnが定数倍
(Alejφl倍)
されたものである.
•
したがって, この入力に対するシステムの出 力を
yとすると,
y[n] =
L
X
l=1
AlejφlH(ωl)ejωln
となる.
インパルス応答が実数のとき
•
システムのインパルス応答が実数のときには, 入力
xが
x[n] = PLl=1Alcos(ωln +φl)
のと きの応答を簡潔に書き表すことができる.
• cos(ωln+φl) = ej(ωln+φl)+e−j(ωln+φl)
2
だか
ら,
H(ω) =A(ω)ejθ(ω),H(−ω) = A(ω)e−jθ(ω)を使うと・ ・ ・
y[n] =
L
X
l=1
Al
2 ejφlH(ωl)ejωln+e−jφlH(−ωl)e−jωln
=
L
X
l=1
Al
2 A(ωl)ej(ωln+φl+θ(ω))+e−jφlA(ωl)e−j(ωln+φl+θ(ω))
=
L
X
l=1
AlA(ωl) cos(ωln+φl+θ(ω)).
•
よって, システムのインパルス応答が実数の ときの, 入力
x[n] =PLl=1Alcos(ωln+φl)
に 対するシステムの応答は
y[n] =
L
X
l=1
AlA(ωl) cos(ωln+φl+θ(ω)).
伝達関数の分母と分子の影響
•
システムの伝達関数の分母と分子がそれぞれ 多項式の積に分解されている状況を考える:
H(z) =b0
QM
l=1Bl(z) QN
k=1Ak(z).
ただし,
b0は定数
(複素数)である.
•
システムの周波数応答は伝達関数の変数
zに
z =ejωを代入することで得られたから・ ・ ・
H |z=ejω=b0
QM
l=1Bl(ejω) QN
k=1Ak(ejω).
•
このシステムの振幅周波数特性を
A(ω),位相
周波数特性を
θ(ω)とすると, 絶対値および偏
角の定義から・ ・ ・
A(ω) = |b0| QM
l=1|Bl(ejω)|
QN
k=1|Ak(ejω)|
θ(ω) = argb0+
M
X
l=1
argBl(ejω)−
N
X
k=1
argAk(ejω)
絶対値について, 20 log
10を取ると・ ・ ・
20 log10A(ω) = 20 log10|b0|+
M
X
l=1
20 log10|Bl(ejω)|
−
N
X
k=1
20 log10|Ak(ejω)|
離散時間フーリエ変換の性質
•
積み残しになっていた離散時間フーリエ変換 の性質について示しておく.
•
離散時間フーリエ変換は,
l1に属する信号
xに対して定義されるもので,
X(ω) = P∈
n=−∞x[n]e−jωn, x[n] = 2π1 Rπ
−πX(ω)ejωndω
という対になったものであった.
•
離散時間フーリエ変換は,
l1に属する信号と 周期
2πの連続関数とのあいだの全単射を与 えるものであり, 本質的に周期
2πの関数の フーリエ級数展開と同じ
(説明済み).• x, x1, x2 ∈ l1
と仮定する. また, 時間軸ある
いは周波数軸に関して
mシフトする作用素
を
τmと書く.
•
離散時間フーリエ変換の性質の多くは, フー リエ級数の性質から直ちに導かれるのだが・ ・ ・
•
離散時間フーリエ変換は
z変換において
z = ejωとした特別な場合.
•
離散時間フーリエ変換の収束領域は複素平面
における単位円周上の点で, そこでは
z変換
に関して成立する事実はすべて成立するので,
これを利用して説明を簡略化する.
•
以下では, 信号を離散時間フーリエ変換する 作用素を
FDTFT[·], z変換する作用素を
Z[·]と書く.
•
教科書
33ページの表
3.2を
62ページの表
6.1と比較しながら説明する.
1. Z[a1x1 +a2x2] =a1Z[x1] +a2Z[x2]
だから
FDTFT[a1x1+a2x2]=a1FDTFT[x1] +a2FDTFT[x2].
2. Z[τmx] =z−mZ[x]
だから,
z =ejωとして,
FDTFT[τmx] =e−jωmFDTFT[x].3.
周波数シフトについては後述.
4. Z[x1∗x2] =Z[x1]Z[x2]
だから
FDTFT[x1∗x2] =FDTFT[x1]FDTFT[x2].
5.
周波数領域における畳み込みについては後述.
6.
信号
xを離散時間フーリエ変換したものが周 期
2πの周期関数となることはフーリエ級数 の性質のひとつ.
7.
スペクトルの対称性については後述.
8.
パーセバルの等式
(公式)はフーリエ級数の
性質のひとつ.
周波数シフト
yをy[n] =ejω0nx[n]によって定義される信号とすると, (FDTFT) [y](ω) =X
n∈Z
x[n]ejω0ne−jωn==
=X
n∈Z
x[n]e−j(ω−ω0)n
= (FDTFT) [x](ω−ω0)
周波数領域の畳み込み
(FDTFT)−1[X1∗X2](n)
=2π1 Rπ
−π
Rπ
−πX1(ω−ν)X2(ν)dν ejnωdω
=2π1 Rπ
−π
Rπ
−πX1(ω−ν)ej(ω−ν)X2(ν)dνejnνdωdν
=2π1 Rπ
−πX2(ν)ejnν Rπ
−πX1(ω−ν)ej(ω−ν)dω dν (ω−ν=θと変数変換してX1の周期性を使う)
=2π1 Rπ
−πX2(ν)ejnν Rπ−ν
−π−νX1(θ)ejθdθ dν
=2π1 Rπ
−πX2(ν)ejnν Rπ
−πX1(θ)ejθdθ dν
スペクトルの対称性
xが実数値のとき,X(−ω) =X
n∈Z
x[n]ejωn=X
n∈Z
x[n]e−jωn=X(ω).
ただし,xが実数値だからx[n] =x[n]であることを用いた.
高速フーリエ変換
•
高速フーリエ変換は, 離散フーリエ変換をコ ンピュータで効率良く計算するためのアルゴ リズム.
•
離散フーリエ変換はディジタル信号処理にお
ける基本的な道具なので, これを効率良く計
算できることには実用上の価値が高く, よっ
て高速フーリエ変換は広く利用されている.
• Cooley
と
Tukeyによって
1965年に提案さ れたが, そこに含まれるもっとも重要なアイ
デアは
1805年に
Gaussによって議論されて
いたという指摘もある.
http://mathworld.wolfram.com/FastFourierTransform.html
•
最も基本的なのは信号の長さが2 のべきであ
る場合の計算法であるが, 今日は様々な方向
で拡張がなされている.
•
高速フーリエ変換をおこなうプログラムはラ
イブラリなどの形で提供されていることが多
い. この種のプログラムでは, 効率と精度の
良い計算のために様々な工夫がなされている
ことが普通であり, 初心者が教科書等を見て
打ち込んだコードとは品質がまったく異なる
ことが一般的.
•
高速フーリエ変換が必要になった場合には, 可能な限り利用可能なライブラリ関数等を探 すべきであり, 基本的なアルゴリズムに対応 するコードを自分で打ち込んで動かすことは, 特殊な事情がある場合以外は避けるべき. 工 学の鉄則は, 車輪を再発明するなということ.
•
これを踏まえた上で, 以下では, 高速フーリ
エ変換の考え方を説明する.
•
コンピュータで数値計算をする際には, 乗算 の所要時間は, 加算の所要時間よりもずっと 長いことが普通.
•
以下の議論では, 簡単のため, 加算の回数は 無視して, 信号を離散フーリエ変換に必要と なる乗算の回数を減らすことを考える.
•
乗算の回数を減らすための工夫が, 高速フー
リエ変換の本質.
•
長さ
N = 2ν (ν ∈N)の信号
xを考える.
• WN =e−jΩ =e−j2π/N
とおく.
•
信号
xの離散フーリエ変換は,
X[m] = X0≤k<2ν
x[k]WNmk (0≤m < N)
によって求められるのであった
(N = 2νに注
意).
•
離散フーリエ変換は,
N行
N列の行列を
N次のベクトルに乗ずる演算になっており, 必 要な乗算の回数は
N2回である.
•
離散フーリエ変換の式を,
kが偶数の場合
(k = 2p,1 ≤ p < 2ν−1)と
kが奇数の場合
(k = 2p+ 1,1≤p <2ν−1)に分ける.
• WN2 =WN
2
であることに注意すると・ ・ ・
X[m] = X
0≤p<2ν−1
x[2p]WNm(2p)
+ X
0≤p<2ν−1
x[2p+ 1]WNm(2p+1)
= X
0≤p<2ν−1
x[2p]WNmp 2
+WNm X
0≤p<2ν−1
x[2p+ 1]WmpN 2
•
先の式を見ると, 長さ
Nの信号の離散フーリ
エ変換が, 2 個の長さ
N/2の信号
(偶数および奇数時刻に対応) の散時間フーリエ変換か
ら,
N回の乗算によって得られることになる
(加算を無視していることに注意).•
同様に, 長さ
N/2の信号の離散フーリエ変換
は, 2 個の長さ
N/4の信号の離散フーリエ変
換から
N/2回の乗算によって得られる. よっ
て, 2 個の長さ
N/2の信号の離散フーリエ変
換は, 4 個の長さ
N/4の信号の離散フーリエ
変換から, 2
×N/2 =N回の乗算によって得
られる.
1個の長さNの信号の離散時間フーリエ変換 2個の長さN/2の信号の離散時間フーリエ変換 4個の長さN/4の信号の離散時間フーリエ変換 8個の長さN/8の信号の離散時間フーリエ変換
乗算N回 乗算N回 乗算N回 乗算N回
•
上記の工程を
1段階下に進むごとに信号長が 半分になるから, 長さ
2νの信号では, 上記の 工程を
ν回繰り返せば信号長は
1となり, そ れ以上の計算は不要となる. このような手順 で離散フーリエ変換を求めるのが高速フーリ エ変換である.
• N = 2ν
だから
ν= log2N,よって乗算回数が
N2から
Nlog2Nにまで減ったことになる.
•
たとえば, 音楽
CDのサンプリング周波数は
44.1kHz
であるから, 1 秒分のデータ
(N =44100