まるもの雑記

なにか作ったりとかゲームとか。

FFTとフィルタリング2

内容は以前書いたものと同じですが

前回LPFだけだったのでちょっとまとめます。

条件

入力はFs=48kHz f=1kHzの矩形波

これにFFTをかけて特定の周波数を除去したあとに

フーリエ変換をかけて波形の確認をします。

f0を振って波形を確認。

LPF

f0=1000のとき

f:id:marumorix:20140210020110j:plain

緑がFFT結果

青い部分だけ残して値を0にします。

対数軸だと

f:id:marumorix:20140210020221j:plain

これを逆変換すると

f:id:marumorix:20140210020243j:plain

だいたい1kが残ってますね。

というわけでE3系列っぽく

100,220,440,1000,2200,4400,10kHzという感じで波形を出してみます

f:id:marumorix:20140210020358j:plain

f:id:marumorix:20140210020407j:plain

f:id:marumorix:20140210020414j:plain

f:id:marumorix:20140210020420j:plain

f:id:marumorix:20140210020427j:plain

f:id:marumorix:20140210020441j:plain

f:id:marumorix:20140210020447j:plain

だいたいフィルターっぽくなっていますが

インパルスが全周波数を含んでいるのと同じように

矩形波もかなり高い周波数を含んでいるので

ほんとに上の方だけカットすると逆に高い周波数が見えてきます。

 

HPF

続いてHPF

グラフが多いので1kだけ最初に出します

f:id:marumorix:20140210020732j:plain

f:id:marumorix:20140210020713j:plain

緑から低周波を削除して青い部分だけ残します。

そうすると

f:id:marumorix:20140210020812j:plain

こんな感じ。

値が極端に変化するところで正負が入れ替わって

FFT結果も極端に変化するので

これもフィルターとして使えそう。

前回画像でやったものがどう動いてたのかちょっとわかるかも??

というわけで同様に遮断周波数を

100,220,440,1000,2200,4400,10kHzにしてみます

f:id:marumorix:20140210021003j:plain

f:id:marumorix:20140210021009j:plain

f:id:marumorix:20140210021017j:plain

f:id:marumorix:20140210021024j:plain

f:id:marumorix:20140210021032j:plain

f:id:marumorix:20140210021043j:plain

f:id:marumorix:20140210021056j:plain

 

雑感

ほぼグラフを並べただけですが

こんな風になるようです。

これだけ見るとだからなんだって感じですが

画像にフィルタをかけた時の参考にひたすらグラフを残しました。

 

IIRと違うところは特定の周波数から完全に切れるところ。

自然界にあまりない特性なので直感的にわからない感じがします。

これだけ見るとエッジ検出には使えそう。

 

IIRより確実によさそうなところは

FFTだと二次元で斜め成分も取れるっぽいので

縦横というより空間的にフィルタリングできるところな気がします。

位相ずれがないのがいいですがIIRも両側からかければ

位相ずれがないのでそこはあまり差がないように思えます。

 

音声のフィルタリングでは人間はあまり位相差を感じないようなので

IIRだけでフィルタリングしてそれほど違和感がないのですが

画像だと少しでもずれると非常に違和感があります。

恐らく時間的な位相ずれは感じにくい気もするので

動画などの時間軸で使う分にはまた違うのかもしれません。

 

だいぶ時間がたちましたが

昔全然理解せずに授業を受けていた

大学1、2年生くらいのレポートができそうです。

 

義務的にやらない勉強は結構楽しい。

 

追記

E3系列は22と47でした・・・

電気屋としてはものすごく恥ずかしいミスですが

グラフ置きなおすのがめんどいのでそのままにします。