2017-06-20 3 views
2

私はsimulink matlabで2次シグマデルタ変調器を使用しています。 Vp-p = 1Vの正弦波形を入力に適用し、出力にローパスフィルタ処理を施した後、同じ波形を出力します。シグマデルタ変調器の希望FFTが得られません

fftの場合: fft試料の

サンプリングFREQ = 256メガヘルツ 入力FREQ = 4MHzの

周期とクロックを保持し、1/256MHZ であり、また、PICに見ADC_OUTブロックのサンプル時間は、1/256MHz あり、i」はなかったの他のものに触れる

及びIこの式に基づいて入力FREQ計算:(プライム/ N)= フィン*サンプリングFREQ

素数が素数であり、iが257 Nは、FFT点の数で選択した、私はFREQが16384 サンプリングを選びました256MHz したがって、私は最高の入力周波数として4MHzを得ました。これらの考慮事項は、fftの後に4MHzでの素晴らしいインパルスとより高い周波数での整形ノイズを与えると思われました。 私が望むimupulseはありません4MHz! と私はちょうど理由を知らない!

答えて

2

画像をちょうど見るだけで、それはwindowing問題です。特に、明示的なウィンドウを使用しないので、ブロック関数を使用しています。ブロックのFFTはsin(x)/xです。これはあなたの実際の応答に畳み込まれています。

+0

はい、おそらくそれが問題です。しかし、それを解決する方法は?シグマ - デルタ変調器の理論に基づいて、ノイズレベルはより高い周波数に整形され、4MHzで最低ですが、信号トーンはそこにありませんので、私が行ったことは正しいと思われます。 @Malters – Fateme

+0

@Fateme:ほとんどすべてのウィンドウ関数が役立つはずです。 'fft(x)'を呼び出す前に、そのウィンドウで 'x'を掛けます。 – MSalters

+0

シグマデルタモジュレータのタイプに最適なハンウィンドウを適用しましたが、私のトーンはありません!コード:clc、すべてを閉じる x = adc_out; w = hann(16385、 'periodic'); x = x。* w; f =(abs(fft(x)))/ 16384; dbpsd = 20 * log10(f); freq = 256 * linspace(0,0.5,16384/2); plot(freq、dbpsd(1:1:16384/2)) – Fateme

関連する問題