« ハードウェアFFTの実行時間 | トップページ | LFSRの疑似乱数でコード変調の実験 »

2018.03.11

1MポイントのハードウェアFFTが正しく動いた

ZYNQのPLにVHDLでガリガリと実装したハードウェアFFTが、ようやく当初の目標の1Mポイントで正しく動作するようになりました。昨日の段階では演算結果が一部正しくありませんでした。

下の図は、1MHzの正弦波を入力したところです。999.9kHzのところに1本、ピークが立っています。

なお、演算精度は16bit固定小数点なので、-90dBくらいのところに最低値があり、それより小さい値はマイナス無限大(-120dB)となっているので、レベルの低いところは粗くなっています。

Fft_1m_1

990kHz~1010kHzの範囲を拡大します。

Fft_1m_2

さらに999~1001kHzの範囲を拡大します。

Fft_1m_3

さらに、999.9kHz~1000.1kHzを拡大しようと思ったのですが、計算の誤差であまりそこの範囲は拡大できませんでした。

なお、5MHzでサンプリングして、1Mポイントなので、周波数分解能は約5Hzです。

Fft_1m_4

発振器が1MHzを出しているのにFFTでは正確には1MHzになりませんでした。ファンクションジェネレータが10年前に買った安物なので経時変化しているのと、Cosmo-Zの水晶の精度などがあるので、90ppmほどずれているようです。

sun

正弦波ばかり見ていても面白くないので、AM変調させてみたのですが、、これもあまり面白くありませんでした。

Fft_am

FM変調させると、ダイナミックな動きをするので、見ていて面白いです。

Fft_1m_fm

このヒゲの1本1本が5Hzの間隔で100万本あるのです。

この画像はZYNQのPSでPNG画像として作ってホストPCに転送しているのですが、1Mポイントあると画像を作るのに時間がかかってしまいます。

画像化せずに生のデータをTCP/IPで送るような改良をしないといけないですね。

|

« ハードウェアFFTの実行時間 | トップページ | LFSRの疑似乱数でコード変調の実験 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« ハードウェアFFTの実行時間 | トップページ | LFSRの疑似乱数でコード変調の実験 »