FIRフィルタの実機テスト
Cosmo-ZにFIRフィルタを入れて、実機でテストしています。
まずは、生の信号を見てください。

これは、ある高い周波数の正弦波をCosmo-Zでアンダーサンプリングし、デシメーションを行なった後、IQ検波した信号です。ADCの周波数と正弦波の周波数がずれているため、うなりの成分が位相が90度ずれた2つの正弦波として見えています。
信号の説明はともかく、ノイズが乗っています。
これに、帯域300kHzのFIRフィルタを通してみました。
パッと見、ノイズが減っています。
一部分を拡大してみますと、
28クロックほど遅延し、ノイズがかなり平滑化されているのがわかります。
周波数で見てみると、300kHzあたりで綺麗にカットオフされているのがわかります。
カットオフを600kHzと1.2MHzに変えてみると、
このように、狙ったとおりに帯域が広がっていくのがわかります。
![]()
係数を変えればHPFにもなります。
HPFを通すと、時系列でみたときの1つ1つの振幅がめちゃめちゃ協調されますね。
![]()
最後にバンドパスフィルタを試してみます。
FIRフィルタの設計は、「石川高専 山田洋士 研究室ホームページ」のページが便利です。望みの特性を入力すると、オンラインでFIRの計数を生成することができます。
41タップ、0.2~0.4ωc、Hamming窓のBPFを生成し、各係数を33554432倍してCoreGenに入れます。CoreGenで表示された周波数特性はこんな感じでした。
実際に動かしてみると、
黄色いのが入力信号、青が出力信号ですが、リップルの数も含めてぴたりと一致した特性が出ています。これが面白いものです。
BPFを通った信号というのは時系列でみると、どうしてもよくわからないものです。
![]()
CoreGenでFIRを作るとき、係数が動的に変えられるようにしてあるので、いろいろなフィルタを試すことができて、なかなか面白いものです。
| 固定リンク












コメント