*FIRフィルタについて復習
昔、FIRフィルタについて、お勉強したハズなのだが、すっかり忘れてしまったので、参考書籍をもろもろ読み直して復習した。ここに要点を記載しておく(また忘れないように)。
まずは、f(t)のフーリエ変換、逆フーリエ変換の式をおさらい:
F(ω)=∫f(t)e^(-jωt) dt …(1)上記2式は下式のように略記されることが多い:
f(t)=1/2π∫F(ω)e^(jωt)dt …(2)
F(ω)=F{f(t)}線形システムにおいて、インパルス応答h(t)のフーリエ変換をH(ω)とすると、下式が成り立つ:
f(t)=F^-1{F(ω)}
f(t)*h(t)=1/2π∫F(ω)H(ω)e^(jωt)dt時間領域の畳み込み演算(*)だが、周波数領域では単なる積の演算になっている。
なお、線形システムとは、入力信号が足し算で表されるなら出力信号もその足し算で表され、入力が定数倍になれば、出力も定数倍になるような系のこと。
方形窓H(ω)を逆フーリエ変換したh(t)を求めて、時間領域にて、h(t)と入力信号f(t)の畳み込み演算を行うと、ローパスフィルタのかかった出力信号が得られることになる。
方形窓の逆フーリエ変換を計算するとsinc関数になる:
h(t)=1/πt sin(ωt)実用の場では、離散フーリエ変換を使用するので、下図の右上のような離散的なsinc関数になる。
sinc関数は無限に続く関数なので、このままでは使えない(有限時間で計算できない)。
そのため、1/πt sin(ωn) のnをどこかで打ち切ってフィルタ係数として使用する(下図の中央右)。
『はじめて学ぶディジナル・フィルタと高速フーリエ変換』(CQ出版)p.93 図6-1
有限範囲で係数を打ち切ると、上図の中央左のように、通過域・阻止域にうねり(リップル)が生じてしまう(ギブス現象)。
フィルタ係数の打ち切りは、時間領域で矩形窓をかけていることを意味する。
リップルを和らげるために、時間領域でなだらかな窓関数(ハミング窓など)と係数を乗算する(上図の右下)。
得られたフィルタ係数の周波数特性を求め(上図の左下)、所望の特性が得られていることを確認する。
以上でFIRフィルタについての復習はおしまい。
ついでにフーリエ変換の対称性についても復習しておく。
(1), (2)を見比べると、2式には類似性がある。
(2)において、tを-ω, ωをtと置き換えると、
2πf(-ω)=∫F(t)e^(-jωt)dtつまり、フーリエ変換の対称性を示す下式が得られた:
= F{F(t)}
F{F(t)} = 2πf(-ω)フーリエ変換の対称性が役立つのは、f(t)のフーリエ変換F(ω)が判明しているが、F(ω)のωをtに入れ替えた関数F(t)のフーリエ変換が簡単に求まらない場合。
F(t)のフーリエ変換は、対称性からf(t)のtを-ωに入れ替えたf(-ω)に2πを乗じた関数になる。
例えば、方形窓r(t)
r(t) = 1(-1<t<1), 0(t<-1 or 1<t)のフーリエ変換R(ω)を求めると
R(ω) =∫1*e^(-jωt)dt = 2 sin(ω)/ωこれを踏まえると、関数f(t):
f(t) = sin(ω)/ωのフーリエ変換を求めることができる。
f(t)=R(t)/2なので、フーリエ変換の対称性より、
F(ω) = 2πr(-ω)/2 = πr(-ω)と簡単に求まる。
0 件のコメント:
コメントを投稿