作者: 碎碎思,來源:OpenFPGA
本文使用 DDS 生成三個信號,并在 Vivado 中實現(xiàn)低通濾波器。低通濾波器將濾除相關信號。
介紹
用DDS生成三個信號,并在Vivado中實現(xiàn)低通濾波器。低通濾波器將濾除較快的信號。
本文分為幾個主要部分:
信號生成:展示如何使用DDS(直接數(shù)字合成)IP生成測試信號 - 10 MHz 信號和 500 kHz 信號,然后將它們組合起來創(chuàng)建混合信號進行測試。
FIR 濾波器設計:解釋影響 FIR 濾波器性能的關鍵因素,包括:
抽頭數(shù)量及其對濾波器響應的影響
量化和系數(shù)位寬設計
權(quán)衡資源利用
設計:演示使用 Vivado 進行設計,包括
設置FIR IP
使用 MATLAB 生成的系數(shù)配置濾波器參數(shù)
設置適當?shù)奈粚捄?a href="http://www.asorrir.com/tags/時鐘/" target="_blank">時鐘頻率
添加必要的組件,如時鐘源和 ILA(集成邏輯分析儀)
測試和驗證:顯示如何通過以下方式驗證濾波器的操作:
仿真結(jié)果顯示高頻分量的濾波
FPGA 板上的硬件實現(xiàn)
使用基于計數(shù)器的脈沖發(fā)生器觀察濾波器脈沖響應的特殊技術(shù)
第 1 部分:DDS 設置,用于生成兩個信號和混合信號
首先為測試臺生成信號:
在BD設計中添加 DDS IP。在配置選項卡中,將系統(tǒng)時鐘設置為 100 MHz。
由于我們只需要生成正弦波,因此在Implementation選項卡中,選擇輸出為Sine選項,并取消選擇相位輸出選項。在Output Frequency選項卡中,將Channel 1的頻率設置為 500 kHz。
在BD設計中添加另一個 DDS IP。重復相同的設置,但這次將輸出頻率設置為 10 MHz。
在BD設計中添加一個加法器。將其輸入位寬設置為 8,將其輸出位寬設置為 9。
將兩個 DDS 編譯器的輸出連接到加法器的輸入。這將生成混合信號。
在設計中添加一個模擬時鐘發(fā)生器,并將其頻率設置為 100MHz。該頻率也是設計的采樣率
DDS編譯器仿真結(jié)果:
如仿真結(jié)果所示:
第一個正弦波的周期為 2000 ns,這是一個 500 kHz 的信號。
第二個正弦波的周期為 100 ns,這是一個 10 MHz 信號。
還可以觀察混合信號,其中較快信號的幅度以較慢信號的頻率波動,從而顯示了兩個頻率的組合。
Vivado FIR 濾波器仿真
FIR 濾波器配置:FIR 濾波器的性能受幾個因素影響:
抽頭數(shù)量:
增加抽頭數(shù)量可改善濾波器響應,從而使通帶更平坦,波紋更少,振鈴減少。
更多的抽頭數(shù)還會增強截止頻率的衰減,從而提高濾波器的精度。然而,更多的抽頭會引入更大的延遲,這可能不適合某些 DSP 系統(tǒng)。
不同抽頭數(shù)的FIR濾波器響應比較
量化和濾波器系數(shù)位寬:
量化-通過將數(shù)字映射到由分配的位寬決定的一組固定的離散值來降低數(shù)字的精度。
使用較少的位數(shù)進行量化會降低濾波器系數(shù)的準確性,從而對濾波器的性能產(chǎn)生負面影響。
資源權(quán)衡:
濾波器性能和 FPGA 資源利用率之間存在權(quán)衡。
增加抽頭數(shù)量或系數(shù)的位寬需要更多的 DSP 資源,這可能會消耗 FPGA 很多資源。
兩種不同F(xiàn)IR濾波器所需的FPGA資源
通過平衡這些因素,可以優(yōu)化 FIR 濾波器以滿足應用程序的特定要求。
在 Matlab 中生成量化 FIR 濾波器抽頭
為了簡化工作,提供了一個可以輕松生成量化 FIR 濾波器的 Matalab 代碼,可以在 Vivado 中直接使用它:
closeall clearall clc %%setuptheparametershere Sample_Rate=50e6; cutoff_frequency=5e6; number_of_filter_taps=191;%mustbeoddnumber! filter_taps_bitwidth=10; lowpass_highpass='low';%shouldbeloworhigh %%Caluculatethetaps Nyquist_frequency=Sample_Rate/2; Wn=cutoff_frequency/(Nyquist_frequency); %Generatearowvectorbcontainingthen+1coefficients filter_taps=fir1(number_of_filter_taps-1,Wn,lowpass_highpass); %%Quantization %onebitforsign filter_taps=floor(filter_taps/max(filter_taps)*(2^(filter_taps_bitwidth-1)-1)); %%plotthefilterresponse N=1024;%Numberofpointsforthefrequencyresponse [H,f]=freqz(filter_taps,1,N,Sample_Rate);%Calculatethefrequencyresponse %Magnitudeandphaseresponse magnitude=abs(H);%Magnituderesponse %Plotthefilterresponse %Magnituderesponseplot figure; plot(f,20*log10(magnitude),'linewidth',1.3);%PlotmagnitudeindB gridon; title('MagnitudeResponse(dB)',FontSize=22); xlabel_txt='Frequency(Hz)'; xlabel(xlabel_txt,FontSize=22); ylabel('Magnitude(dB)',FontSize=22); %xlim([030e6]) figure freqz(filter_taps,1) figure stem(filter_taps,'linewidth',1.3) gridon;
在提供的Matlab代碼中,需要配置以下參數(shù):
采樣率:這是采樣頻率,在我們的設計中它對應于驅(qū)動系統(tǒng)的時鐘頻率。
截止頻率:指定濾波器的截止頻率。
抽頭數(shù):設置濾波器的抽頭數(shù),決定濾波器的精度和性能。
抽頭位寬:定義濾波器系數(shù)的位寬,影響量化精度。
濾波器類型:選擇需要的濾波器類型。此代碼目前僅支持高通和低通濾波器。
Vivado 中的 FIR 編譯器 IP 設置:
借助 Matlab 代碼,生成截止頻率為 1MHz、量化為 16 位的 21 個濾波器抽頭。需要進行少許修改才能使生成的值在 Vivado 中可用。
復制 FIR 濾波器抽頭并將其粘貼到“濾波器選項”選項卡 下的“系數(shù)向量”字段中。
請注意,一旦更新濾波器系數(shù),實施選項卡中的輸出寬度將自動調(diào)整。
在“通道規(guī)范”選項卡中,設置采樣率和時鐘頻率匹配連接到 FIR 濾波器的時鐘。在本教程中,我們使用 100 MHz 時鐘。
在“實施”選項卡中,配置“輸入位寬”以匹配輸入信號的位寬。例如,由于此設計中加法器的輸出有 9 位,因此將輸入位寬設置為 9。
這樣FIR 濾波器現(xiàn)已配置完畢并可以使用。
請注意,F(xiàn)IR 濾波器的輸入和輸出位寬與正確的字節(jié)數(shù)對齊。例如,當我們將輸入位寬設置為 9 位時,濾波器的實際輸入位寬會調(diào)整為 2 個字節(jié)(16 位)。
仿真結(jié)果
仿真就會觀察到 FIR 濾波器表現(xiàn)為低通濾波器,衰減頻率更高的信號。
Vivado 綜合
上訴設計都是可綜合的,在系統(tǒng)內(nèi)為設計添加時鐘后就可以進行綜合和實現(xiàn)了。
最后,需要在設計中加入一個 ILA 來監(jiān)控和研究目標信號。移除所有額外的端口,并將它們連接到 ILA。
使用上面的架構(gòu)需要使用SDK或者Vitis運行一個簡單的“HelloWorld!”程序。
如果使用板載時鐘就按照需求進行修改。
運行后,應該能看到與仿真相同的結(jié)果:
-
FPGA
+關注
關注
1643文章
21956瀏覽量
614016 -
濾波器
+關注
關注
162文章
8066瀏覽量
180995 -
FIR
+關注
關注
4文章
151瀏覽量
34018 -
Vivado
+關注
關注
19文章
828瀏覽量
68206
原文標題:FPGA DSP:Vivado 中帶有 DDS 的 FIR 濾波器
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于 FPGA 的任意波形發(fā)生器+低通濾波器系統(tǒng)設計
基于 FPGA 的任意波形發(fā)生器+低通濾波器系統(tǒng)設計
有源濾波器中數(shù)字低通濾波器的設計及其DSP實現(xiàn)
基于DDS的低通濾波器設計與仿真
基于DDS的橢圓函數(shù)低通濾波器的設計

DDS信號發(fā)生器中橢圓低通濾波器的設計

LC低通濾波器作用及應用案例

低通濾波器的設計與實現(xiàn)

低通濾波器與高通濾波器有什么不同

評論