概述
前段時間用matlab仿真了一波基于FFT卷積的頻域FIR濾波器,比如采樣率12MHz,需要做一個如下圖所示的500KHz低通濾波器(帶外抑制僅60dBc),濾波器的階數為326階,以XC7K325T的DSP資源數約840作為參考,在12MHz的時鐘下只能實現5個這樣的濾波器,在采用高頻時鐘后可以減低DSP資源使用率,但是當歸一化頻率不變,采樣率上升到120MHz,同樣的系數濾波器的低通截止頻率為5MHz,雖然系數不變,但此時將很難再大幅提高時鐘頻率復用資源來降低占用率了,一方面不同規格的FPGA芯片都有其自身的頻率限制,另一方面邏輯設計本身也會存在時許限制。
帶外抑制60dbc的階數=326
帶外抑制80dBc的階數=399
歸一化頻率不變,采樣率提升到120MHz時(注意:濾波器系數是相同的)
C/C++軟件化實現
以下為FFT卷積算法在Qt的C\\C++環境下的實現FIR濾波的效果
原始信號的FFT結果即為常見的信號頻譜,該信號存在較強的高次諧波
而濾波器系數FFT后得到的是濾波器的幅頻特性曲線,這一點比較有意思,濾波器系數實際是該濾波器的時域沖擊響應波形的離散采樣
以上為濾波后的頻域結果,圖中500Khz以外的頻譜部分全部被抑制了大約60dBc;
-
低通濾波器
+關注
關注
14文章
473瀏覽量
47341 -
FFT
+關注
關注
15文章
434瀏覽量
59317 -
C++語言
+關注
關注
0文章
147瀏覽量
6972 -
fir濾波器
+關注
關注
1文章
95瀏覽量
19027 -
FPGA芯片
+關注
關注
3文章
246瀏覽量
39784
發布評論請先 登錄
相關推薦
評論