m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波

简介: m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波

1.算法描述

    数字下变频中的低通滤波器是由多级抽取滤波器组实现的。信号的同相分量和正交分量再分别经由积分梳状滤波器(CIC)、半带滤波器(HB)和有限长单位脉冲响应(FIR)滤波器构成的多级抽取滤波器组进行滤波和降采样处理,再将产生的正交基带信号I (n)、Q (n)送到通用DSP处理器,进行信号识别、解调等基带信号处理。这三个滤波器在结构上组成如下的基本结构:

image.png

   下面分别对滤波器的三组不同的滤波器进行设计与分析,并得出其优化结果。

2.1CIC抽取滤波器结构图

image.png

图CIC梳状滤波器的结构一

image.png

图CIC梳状滤波器的结构二

2.2HBF模块由半带滤波器

   HBF模块由半带滤波器(HBF)和抽取模块组成。该模块的任务是实现2倍抽取进一步降低信号采样速率。由于HBF的冲激响应h(k)除零点外其余偶数点均为零,所以用HBF实现2倍抽取可以节省一半的运算量,对增强软件无线电的实时性非常重要,HBF还具有参数约束少,设计容易、方便的特点。半带滤波器的主要作用是滤除信号高频部分,防止抽取过程后信号发生频谱混叠。

   在实际中,需要将输入信号进行多次滤波和抽取,并逐次降低采样率,同时也降低对每一级抗混叠滤波器的要求,所以需要使用半带滤波器进行设计与实现。

阻带衰减: ≥50dB

通带不平坦度:≤2dB

    通常情况下,半带滤波器的有三种基本的结构,一般结构,转置结构以及复用结构,下面我们将针对这三种结构的滤波效果以及硬件占用情况进行分析,从而选用最佳的设计方案。

image.png

2.3 DA分布式FIR

image.png

2.仿真效果预览
版本vivado2019.2

image.png

3.verilog核心程序

    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_115m
相关文章
|
8天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的信号发生器verilog实现,可以输出方波,脉冲波,m序列以及正弦波,可调整输出信号频率
本项目基于Vivado2019.2实现信号发生器,可输出方波、脉冲波、m随机序列和正弦波。完整程序无水印,含详细中文注释与操作视频。FPGA技术使信号发生器精度高、稳定性强、功能多样,适用于电子工程、通信等领域。方波、脉冲波、m序列及正弦波的生成原理分别介绍,代码核心部分展示。
|
1天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
95 74
|
6月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
升级版FPGA MSK调制解调系统集成AWGN信道模型,支持在Vivado 2019.2中设置不同SNR仿真误码率。示例SNR值从0到15,结果展示解调质量随SNR提升。MATLAB仿真验证了MSK性能,图片显示了仿真结果。 ### 理论概要 研究聚焦于软件无线电中的MSK调制解调,利用Verilog实现。MSK是一种相位连续、恒包络的二进制调制技术,优点包括频谱效率高。系统采用无核设计,关键模块包括调制器、解调器和误码检测。复位、输入数据、中频信号等关键信号通过Verilog描述,并通过Chipscope在线观察。
122 6
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
|
6月前
|
C语言 芯片 异构计算
FPGA新起点V1开发板(六-语法篇)——verilog简介+基础语法
FPGA新起点V1开发板(六-语法篇)——verilog简介+基础语法
|
6月前
|
存储 算法 数据处理
LabVIEW FPGA开发NI sbRIO-9607高精度数字滤波器
LabVIEW FPGA开发NI sbRIO-9607高精度数字滤波器
62 5
|
7月前
|
算法 计算机视觉 异构计算
基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
```markdown ## FPGA 仿真与 MATLAB 显示 - 图像处理的 FFT/IFFT FPGA 实现在 Vivado 2019.2 中仿真,结果通过 MATLAB 2022a 展示 - 核心代码片段:`Ddddddddddddddd` - 理论:FPGA 实现的一维 FFT/IFFT,加速数字信号处理,适用于高计算需求的图像应用,如压缩、滤波和识别 ```
|
6月前
|
算法 异构计算
FPGA入门(2):Verilog HDL基础语法
FPGA入门(2):Verilog HDL基础语法
43 0
|
29天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
138 69
|
1月前
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
68 26
|
2月前
|
算法 异构计算
基于FPGA的4ASK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的4-ASK调制解调系统的算法仿真效果、理论基础及Verilog核心程序。仿真在Vivado2019.2环境下进行,分别测试了SNR为20dB、15dB、10dB时的性能。理论部分概述了4-ASK的工作原理,包括调制、解调过程及其数学模型。Verilog代码实现了4-ASK调制器、加性高斯白噪声(AWGN)信道模拟、解调器及误码率计算模块。
69 8

热门文章

最新文章