m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波
目錄
1.算法描述
2.仿真效果預覽
3.verilog核心程序
4.完整FPGA
1.算法描述
? ? ? ? 數字下變頻中的低通濾波器是由多級抽取濾波器組實現的。信號的同相分量和正交分量再分別經由積分梳狀濾波器(CIC)、半帶濾波器(HB)和有限長單位脈沖響應(FIR)濾波器構成的多級抽取濾波器組進行濾波和降采樣處理,再將產生的正交基帶信號I (n)、Q (n)送到通用DSP處理器,進行信號識別、解調等基帶信號處理。這三個濾波器在結構上組成如下的基本結構:
? ? ? ?下面分別對濾波器的三組不同的濾波器進行設計與分析,并得出其優化結果。
2.1CIC抽取濾波器結構圖
圖CIC梳狀濾波器的結構一
圖CIC梳狀濾波器的結構二
2.2HBF模塊由半帶濾波器
? ? ? ?HBF模塊由半帶濾波器(HBF)和抽取模塊組成。該模塊的任務是實現2倍抽取進一步降低信號采樣速率。由于HBF的沖激響應h(k)除零點外其余偶數點均為零,所以用HBF實現2倍抽取可以節省一半的運算量,對增強軟件無線電的實時性非常重要,HBF還具有參數約束少,設計容易、方便的特點。半帶濾波器的主要作用是濾除信號高頻部分,防止抽取過程后信號發生頻譜混疊。
? ? ? ?在實際中,需要將輸入信號進行多次濾波和抽取,并逐次降低采樣率,同時也降低對每一級抗混疊濾波器的要求,所以需要使用半帶濾波器進行設計與實現。
阻帶衰減: ? ?≥50dB
通帶不平坦度:≤2dB
? ? ? ? 通常情況下,半帶濾波器的有三種基本的結構,一般結構,轉置結構以及復用結構,下面我們將針對這三種結構的濾波效果以及硬件占用情況進行分析,從而選用最佳的設計方案。
2.3 DA分布式FIR ??
2.仿真效果預覽
版本vivado2019.2
3.verilog核心程序
module tops2(clk_20M,reset,I_d,Q_d,I_cic,I_hb,I_out,Q_out );input wire clk_20M; input wire reset; input wire [13:0] I_d; input wire [13:0] Q_d; output wire [47:0] I_cic; output wire [31:0] I_hb; output wire [15:0] I_out; output wire [15:0] Q_out;wire [47:0] I_cic_ALTERA_SYNTHESIZED; wire [31:0] I_hb_ALTERA_SYNTHESIZED; wire [47:0] Q_cic; wire [31:0] Q_hb; wire SYNTHESIZED_WIRE_0; wire SYNTHESIZED_WIRE_1; wire SYNTHESIZED_WIRE_2; wire SYNTHESIZED_WIRE_3;cic_top b2v_inst(.i_clk(clk_20M),.i_rst(reset),.i_din(I_d),.o_clk16(SYNTHESIZED_WIRE_0),.o_dout(I_cic_ALTERA_SYNTHESIZED));defparam b2v_inst.WIDTH = 48;cic_top b2v_inst1(.i_clk(clk_20M),.i_rst(reset),.i_din(Q_d),.o_clk16(SYNTHESIZED_WIRE_1),.o_dout(Q_cic));defparam b2v_inst1.WIDTH = 48;hb_filter_02 b2v_inst2(.i_clk(SYNTHESIZED_WIRE_0),.i_rst(reset),.i_din(I_cic_ALTERA_SYNTHESIZED[34:19]),.o_clk2(SYNTHESIZED_WIRE_2),.o_dout(I_hb_ALTERA_SYNTHESIZED));defparam b2v_inst2.h0 = 27316;defparam b2v_inst2.h1 = 20073;defparam b2v_inst2.h11 = 1238;defparam b2v_inst2.h13 = -1175;defparam b2v_inst2.h15 = -624;defparam b2v_inst2.h3 = -4745;defparam b2v_inst2.h5 = 965;defparam b2v_inst2.h7 = 667;defparam b2v_inst2.h9 = -1238;hb_filter_02 b2v_inst3(.i_clk(SYNTHESIZED_WIRE_1),.i_rst(reset),.i_din(Q_cic[34:19]),.o_clk2(SYNTHESIZED_WIRE_3),.o_dout(Q_hb));defparam b2v_inst3.h0 = 27316;defparam b2v_inst3.h1 = 20073;defparam b2v_inst3.h11 = 1238;defparam b2v_inst3.h13 = -1175;defparam b2v_inst3.h15 = -624;defparam b2v_inst3.h3 = -4745;defparam b2v_inst3.h5 = 965;defparam b2v_inst3.h7 = 667;defparam b2v_inst3.h9 = -1238;firfilter_da b2v_inst4(.CLK(SYNTHESIZED_WIRE_2),.Reset(reset),.DIN(I_hb_ALTERA_SYNTHESIZED[30:23]),.Dout(I_out));firfilter_da b2v_inst5(.CLK(SYNTHESIZED_WIRE_3),.Reset(reset),.DIN(Q_hb[30:23]),.Dout(Q_out));assign I_cic = I_cic_ALTERA_SYNTHESIZED; assign I_hb = I_hb_ALTERA_SYNTHESIZED;endmodule 01_115m4.完整FPGA
V
總結
以上是生活随笔為你收集整理的m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年湖南省房地产估价师(经营与管理
- 下一篇: Redis之Centos6安装使用及Wi