« 光センサアンプが完成 | トップページ | Cosmo-ZのWindows版アプリ »

2016.03.28

ハードウェアFFTマシンの納入

今日は、Cosmo-Zで作ったハードウェアFFTマシンを納入しに、母校、東工大へ行ってきました。なにやら学位授与式をやっているみたいで、晴れ着姿やスーツ姿の若い人がたくさんいます。ほほえましいですね。

さて、Cosmo-Z上のZYNQのPLで、65536ポイントのFFTを行う回路が、ようやく動いたのです。徹夜でした。

このFPGAは、ハードウェアでリアルタイムに窓関数を掛けて、

Hwfft1

それをリアルタイムにFFTしてくれます。

Hwfft2

下のほうが荒いように思えますが、それは16bit固定小数点だからです。実数部・虚数部ともに0x0000~0xFFFFまでの16bitの値なので、どうしても-80dB以下の部分は荒くなります。

でも、65536ポイントで2ch分のFFTを7.2ms実行できるので、5MHzのADCから入ってきたデータを切れ目なくFFTできるようになっています。

もし、浮動小数点にするならば、メモリアクセスの時間が2倍になるので、速度が半分になるでしょう。とりあえずこれでも毎秒百数十回できます。

比べてみたら、ZYNQのPSで行うソフトウェアFFTよりも断然高速でした。

やっぱり気になるのは計算の精度の問題。

下の図は、ファンクションジェネレータで作った100kHzの正弦波を65536ポイントのハードウェアFFTしたものです。窓関数はナットール窓。

Hwfft3

下の図は、同じものをZYNQ上のソフトウェアでFFTしたものです。

Hwfft4

同じものを見ているのですが、-100dBまで見えています。だいたい-80dBくらいのところに計算精度によるノイズの壁(床?)があるのがわかります。

下の図は、CH1を指で触って、ノイズをFFTした結果です。

時間軸で見ると、このように

Hwfft7

フルスケールに対してものすごく小さな信号を見ているわけなのですが・・

まずはハードウェアFFTの結果。数本のスペクトラムのピークが見えます。

Hwfft6

次はソフトウェアFFT。

Hwfft5

より小さなピークまで、はっきりと見えています。

小さな信号を見る場合には、断然、浮動小数点のほうがよいですね。

固定小数点は、やはり粗いです。

これらの結果を踏まえて、今後、どうするかを考えていきたいと思います。

|

« 光センサアンプが完成 | トップページ | Cosmo-ZのWindows版アプリ »

コメント

コメントを書く



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




« 光センサアンプが完成 | トップページ | Cosmo-ZのWindows版アプリ »