RでFIRフィルタ設計
R言語でFIRフィルタ設計の参考ページがほとんどない。
RってMATLABに似ているからMATLABのページが参考になるけど、少しづつ違うところがある。
RでもFIRフィルタ設計ができることがわかったので書いておく。
> sampleFreq = 128; #サンプリング周波数
> f = fir1(sampleFreq - 1, c(12, 20)/(sampleFreq / 2), "pass"); #12Hzから20Hzをフィルタリング
> freqz(f, Fs=sampleFreq) # 周波数応答表示
一つ目のポイントは、やはりなんといってもポイントはfreqz()の使い方。サンプリング周波数Fsは何も指定しないとπになる。なので、表示される図がなんのことかわからない。サンプリング周波数Fsを指定することで、横軸の周波数軸があう。
二つ目のポイントは、所望のバンドパスフィルタの範囲を指定し、firの第2引数で(sampleFreq/2)で割ってあげること。
間違っているかもしれないが、自分としては思い通りの結果を得ることができた。