天天看點

matlab分析adc,關于ADC仿真做FFT的設定和結果分析

這些都是比較基礎和實用的東西,故做分享~

以前在實驗室跑ADC動态性能仿真,會跑不少點,浪費了不少時間。主要是由于當時沒有用相幹采樣的頻率,而是直接選一個和采樣頻率比較互質的輸入頻率,然後再進行加窗處理防止頻譜洩露,但是一般即使加了窗,也會有一些洩露,是以需要盡量多采樣一些點,這樣做的效率比較低,浪費了不少時間。

如果直接選用相幹采樣的頻率,選取合适的點數不讓諧波淹沒在噪聲中就OK,輸出的結果不用加窗直接做FFT分析即可。

1)直接用cadence電腦

使用dft函數能夠直接畫出頻譜圖,由于采用了相幹采樣,是以直接選用矩形窗就OK,輸出的信号是單頻點的;

thd函數得出的結果實際上并不是“thd”一般所定義的,即所有諧波的總和,這裡電腦得出的其實是SNDR的結果,而且已經自動剔除了直流分量的,具體可以檢視cadence的ocean_ref文檔,其中fundemental直接寫0就Ok,這樣它會自己去找最大的那個信号頻點

2)通過matlab函數

用諸如Maxim的程式的話,若采用了相幹采樣這裡就不要加窗了,結果應該和cadence直接計算的結果一緻。

注意:如果采用table導出ADC結果的時候,是有個精度設定的,在table裡頭format->有效位數那裡可以設定,導出的精度沒有損失,結果才會和cadence直接計算的一緻。

但是如果是實際測試,輸入信号和時鐘頻率之間的關系就不好固定了,是以還是需要加窗函數的。