FPGA学习记录(五)FIR滤波器设计

FIR(Finite Impulse Response)是一种有限脉冲响应的数字滤波器,其特点是系统的响应是有限的,即对于一个有限的输入序列会产生一个有限的输出序列,且其具有的线性相位特性使得滤波器对于不同频率的信号在时域上引入的相位延迟时恒定的,遇到有噪声叠加的信号进入滤波器后不会引入信号畸变,且FIR滤波器的设计相对灵活

在这里简介一下使用matlab设计 FIR滤波器参数然后导入到vivado中使用ip核实现的方式,公式啥的就不过多介绍,一些讲原理的帖子里都说的很明白了,这里只讲操作

首先在matlab命令行中输入fdatool打开filter designer工具,然后根据你自己的需要填写好滤波器的参数,需要低通还是高通还是带通还是带阻,然后设置通带频率,阻带频率,采样频率以及滤波器阶数,如图所示,并可以查看滤波器的幅频响应曲线

然后选择上面的 目标-XILINX系数文件(coe文件)然后导出coe文件

导出后将coe文件复制到fpga的工程文件夹下,然后ip catalog中搜索FIR compiler,然后选择coe文件导入方式,那个系数是系统帮你默认的,可以不用管

然后继续第二个选项卡,设置和matlab中一样的采样频率和你这个FPGA工程的时钟频率,建议两边都保持一致

然后更改第三个选项卡中你需要输入fir滤波器的信号位宽,他会自动给你生成一个输出位宽

然后点击生成就可以

生成之后如图所示引用原语并进行配置

wire             s_axis_data_tready;
wire             m_axis_data_tvalid;
assign           s_axis_data_tvalid = 1'b1;
fir_compiler_0 your_instance_name (
  .aclk(aclk),                              // input wire aclk,配置自己的时钟
  .s_axis_data_tvalid(s_axis_data_tvalid),  // input wire s_axis_data_tvalid
  .s_axis_data_tready(s_axis_data_tready),  // output wire s_axis_data_tready
  .s_axis_data_tdata(s_axis_data_tdata),    // 输入数据
  .m_axis_data_tvalid(m_axis_data_tvalid),  // output wire m_axis_data_tvalid
  .m_axis_data_tdata(m_axis_data_tdata)    // 输出数据
);

就可以正常使用了

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于FPGAFIR滤波器设计可以通过以下步骤进行: 1. 设计滤波器:使用Matlab的fdatool工具进行滤波器设计,根据设计要求选择参数,并导出滤波器的抽头系数。\[2\] 2. IP核配置:将导出的抽头系数应用到FPGA的IP核中。IP核是FPGA中的可重用模块,可以实现各种功能。在这里,我们可以使用FIR滤波器IP核来实现滤波器功能。\[3\] 3. 实现:将配置好的IP核与其他必要的模块连接起来,并进行适当的时钟和数据接口设置。这样,FPGA就可以实现FIR滤波器的功能。 需要注意的是,FIR滤波器是有限长单位冲激响应滤波器,也称为非递归型滤波器。它具有严格的线性相频特性和稳定的系统特性。\[2\] 以上是基于FPGAFIR滤波器设计的详细过程。如果您需要更多的工程文件或有其他疑问,可以添加QQ:236395527进行进一步交流。\[1\] #### 引用[.reference_title] - *1* *2* [【FPGA 】Altera基于IP核的FIR数字滤波器(上板成功)](https://blog.csdn.net/qq_54671271/article/details/126459409)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于FPGA的希尔伯特滤波器实现](https://blog.csdn.net/m0_46644103/article/details/126542638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值