1MポイントのハードウェアFFTが正しく動いた
ZYNQのPLにVHDLでガリガリと実装したハードウェアFFTが、ようやく当初の目標の1Mポイントで正しく動作するようになりました。昨日の段階では演算結果が一部正しくありませんでした。
下の図は、1MHzの正弦波を入力したところです。999.9kHzのところに1本、ピークが立っています。
なお、演算精度は16bit固定小数点なので、-90dBくらいのところに最低値があり、それより小さい値はマイナス無限大(-120dB)となっているので、レベルの低いところは粗くなっています。
990kHz~1010kHzの範囲を拡大します。
さらに999~1001kHzの範囲を拡大します。
さらに、999.9kHz~1000.1kHzを拡大しようと思ったのですが、計算の誤差であまりそこの範囲は拡大できませんでした。
なお、5MHzでサンプリングして、1Mポイントなので、周波数分解能は約5Hzです。
発振器が1MHzを出しているのにFFTでは正確には1MHzになりませんでした。ファンクションジェネレータが10年前に買った安物なので経時変化しているのと、Cosmo-Zの水晶の精度などがあるので、90ppmほどずれているようです。
![]()
正弦波ばかり見ていても面白くないので、AM変調させてみたのですが、、これもあまり面白くありませんでした。
FM変調させると、ダイナミックな動きをするので、見ていて面白いです。
このヒゲの1本1本が5Hzの間隔で100万本あるのです。
この画像はZYNQのPSでPNG画像として作ってホストPCに転送しているのですが、1Mポイントあると画像を作るのに時間がかかってしまいます。
画像化せずに生のデータをTCP/IPで送るような改良をしないといけないですね。
| 固定リンク








コメント