« スタンドアローンなJTAG検査装置 | トップページ | RXマイコンからCoreSightにSWDでアクセス »

2014.01.17

ADCボードのFFT表示と初歩のディジタルフィルタ

ExcelでADCからのキャプチャデータを取得し、解析するVBAマクロを開発中です。

Active_adc

こんなデータをFFTすると・・

Active_adc2

こういう風に表示されるわけです。

上の波形は、入力にリード線をつなぎ、リード線の先にポテンショメータをつないでいます。アンチエイリアシングフィルタが壊れている(コンデンサがはんだの熱で溶けて容量が減っている)ため、ノイズが多目に出ています。

AD変換器から正弦波を出して、それをキャプチャしてFFTしてみると、

Active_adc3

このようにノイズやら高調波やらいっぱい見えます。DACは1MHz動作なので、相当カクカクしているのです。だから仕方がありません。

XorShiftという乱数発生回路を使って、DACからホワイトノイズを出して、それをADCでキャプチャしてみました。

Active_adc4

このように周波数が上がるにつれて伝達関数が下がっていく特性が見えます。ただ、これがDAC-ADC系の生の特性というわけではないと思います。

今回開発しているADC装置の目的として、ディジタルフィルタをいろいろ実験してみたいものがあります。ADCからのデータをFPGAで受けているので、USBに渡す前にいろいろ計算できます。

計測と同時に元の波形と、1つ遅延、2つ遅延、3つ遅延を足し合わせて4で割った波形を計算させてみました。つまり、

(1+Z-1+Z-2+Z-3)/4

です。すると、

Active_adc5

ちゃんと、ノッチの効いた特性になりました。

なぜそうなるかというと、サンプリング周波数fsとすると、Z=2jωf/fsです。

fs/4の周波数においては、Z-1=j、Z-2=-1、Z-3=-jとなります。

だから、(1+Z-1+Z-2+Z-3)/4=0になるわけです。複素平面で考えればわかりやすいですね。4つの点を足し合わせると0になる。だから、fs/4で伝達関数はゼロになります。

Active_adc7_2

たとえば、fs/8だと、こうなります。

Active_adc6_2

Excelの図形描画で矢印を描いてベクトルを足し合わせて求めていますが、偏角は67.5°のところになると思います。ゲインは0.6くらいでしょうか。

こういう実験を生のデータでやりたくて18bit ADC+FPGAの装置を作っているのです。

以下、様々な簡単なフィルタを試してみました。

 

・フィルタなしと、(1+Z-1)/2

単純に1個前と足し合わせたものです。高域での減衰が見えますが、だらしない特性です。

Active_adc8

・フィルタなしと、(1+Z-2)/2

ちゃんとfs/4のノッチが見えています。

Active_adc10

・フィルタなしと、(1+Z-3)/2

fs/6=333kHzのところにノッチができました。

Active_adc11

・フィルタなしと、(1+z-1+Z-2)/4

666kHzのところにあるようです。

Active_adc12


当たり前の結果ですが、自分で作った回路で、シミュレーションではなく実機で、こういう理論通りの結果が出るとなかなか面白いものです。

|

« スタンドアローンなJTAG検査装置 | トップページ | RXマイコンからCoreSightにSWDでアクセス »

コメント

コメントを書く



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




« スタンドアローンなJTAG検査装置 | トップページ | RXマイコンからCoreSightにSWDでアクセス »