FIR滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号。FIR滤波器是全零点结构,系统永远稳定;并且具有线性相位的特征,在有效频率范围内所有信号相位上不失真。在无线通信收发机中的DDC/DUC模块,抽取和内插都需要加入滤波器以防止信号在频谱上混叠,最典型的是采用FIR滤波器实现半带滤波器。

FIR滤波处理如下式所示,其中x(n)为输入信号,h(n)为FIR滤波系数,y(n)为经过滤波后的信号;N表示FIR滤波器的抽头数,滤波器阶数为N-1。

由上式可得到FIR滤波器在FPGA中的实现结构,如图1所示,主要由延迟单元Z-1、乘法器和累加器组成。此结构为直接型FIR滤波器结构,也称横向结构(transverse)。

图1

设计FIR滤波器的方法有多种,其中Matlab软件提供了很多关于滤波器设计的工具箱,FDATool就是一个很好的工具,如图2所示就是FDATool的界面,可以在Matlab的Command窗口中直接输入FDATool命令来调用。

图2

滤波器的设计首先需要设置的参数:

(1) Response Type:选择FIR滤波器的类型:低通、高通、带通和带阻等。如图3所示为Lowpass中的下拉选项,在DDC/DUC模块设计中,抽取和内插需要使用Halfband Lowpass类型,而channel filter需要使用Raised-cosine类型。

图3

(2) Design Method:FIR滤波器设计方法有多种,如图4所示,最常用的是窗函数设计法(Window)、等波纹设计法(Equiripple)和最小二乘法(Least-Squares)等。其中窗函数设计法在学校课堂中是重点讲解的,提到FIR滤波器肯定会想到hamming、kaiser窗,但是实际应用中却很少使用,因为如果采用窗函数设计法,达到所期望的频率响应,与其它方法相比往往阶数会更多;而且窗函数设计法一般只参照通频带wp、抑制频带ws和理想增益来设计滤波器,但是实际应用中通频带和抑制带的波纹也是需要考虑的,那在这种情况下,采用等波纹设计法就非常适用了。

图4

(3) Filter Order:设置滤波器的阶数,这个选项直接影响滤波器的性能,阶数越高,性能越好,但是相应在FPGA实现耗用的资源需要增多。在这个设置中提供2个选项:Specify order和Minimum order,Specify order是工程师自己确定滤波器的阶数,Minimum order是让工具自动确定达到期望的频率相应所需要的最小阶数,因此具体选择哪个选项得视实际情况而定了。

图5

(4) Frequency Specification:设置频率响应的参数,包括采样频率Fs、通带频率Fpass和阻带频率Fstop。

图6

参数设置完成后,FDATool就会分析并且生成滤波系数,如图7所示,可以得到滤波器的频率相应曲线,并且可以通过File->Export导出滤波系数,如图8所示。

图7
图8

为了快速验证FIR滤波器的FPGA实现,使用Xilinx的System Generator工具,如图9所示为FIR滤波器的验证模型,其中通过Gateway In和Gateway out模块分隔matlab simulink模块和Xilinx FPGA模块,matlab simulink模块用于产生测试源,接收并显示滤波后波形。还有System Generator Token用于生成Xilinx FPGA模块的HDL代码。

图9

其中FIR Compiler 5.0模块的参数设置如图10所示,滤波系数直接调用FDATool生成的滤波系数equ_coe,输出为全精度数据。

图10

得到输出结果如图11所示,上边图为输入原波形,由两个频率分量的正弦波叠加而成,频率分别为2MHz和100MHz,经过FIR滤波之后,100MHz频率分量被滤除。

matlab 滤波器设计 coe_FIR滤波器相关推荐

  1. matlab编程设计fir滤波器,用MATLAB设计FIR滤波器

    滤波器 滤波器定义 "滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电.对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就 ...

  2. matlab 滤波窗函数,Matlab窗函数设计FIR滤波器

    一.设计目的 1.熟悉FIR滤波器设计的基本方法. 2.掌握用窗函数设计FIR滤波器的基本原理和方法,熟悉MATLAB语言. 3.熟悉线性相位FIR滤波器的幅频特性和相位特性. 4.了解各种不同窗函数 ...

  3. matlab emi滤波器设计,EMI滤波器设计.pdf

    2011 年 7 月 第 7期 电 子 测 试 ELECTRONIC TEST Jul.2011 No.7 75 EMI滤波器设计 武小军, 秦开宇,唐博 (电子科技大学空天科学技术研究院,成都611 ...

  4. c语言课程设计fir滤波器设计,fir滤波器设计c语言

    C语言编写FIR滤波器,代码如下: #include <> #include <> #include<> /**************************** ...

  5. [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计)

    [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计) ​ IIR滤波器主要设计方法先设计一个模拟低通滤波器,然后把它转化为形式上的数字滤波器.但对于FIR滤波器来说,设计方法的关键要求之一 ...

  6. EMI滤波器的matlab仿真,开关电源EMI滤波器的仿真设计

    目前,在我国绝大多数工程设计中,尤其是在设计初期,很少考虑设备内部电路对内以及对外的电磁干扰问题,致使许多电力电子装置性能都不能得到理想效果.往往是问题出现了才去寻找原因与解决方法,这既耗时又耗力,而 ...

  7. fir滤波器等纹波matlab,基于Matlab的FIR滤波器设计与实现

    基于Matlab的FIR滤波器设计与实现 一.摘要 前面一篇文章介绍了通过FDATool工具箱实现滤波器的设计,见"基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成&quo ...

  8. 【DSP教程】第35章 FIR有限冲击响应滤波器设计

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第35章   FIR有限冲击响应滤波器设计 FIR滤波器设计 ...

  9. MATLAB Signal Rrocessing(8)滤波器分类

    1.1滤波器滤波 designfilt命令用于打开.编辑滤波器设计工具 滤波器参数如下: 滤波器可视化工具是一种交互式工具,可以显示滤波器的大小.相位相应.群延迟.脉冲响应.阶跃响应.零极点图和系数. ...

最新文章

  1. js_sl 延迟菜单
  2. 性能测试时需要关注哪些性能
  3. C ++ STL中的set :: upper_bound()函数
  4. python的read函数_Python Pandas pandas.read_sql函数方法的使用
  5. 讨物联网的隐私解决方案_2017年数据隐私日:日常隐私解决方案
  6. sqlsever无法重新启动计算机,SQLServer 2008安装提示需要重启计算机,但是重启还是不通过解决方案...
  7. android 内存对齐,Go struct 内存对齐
  8. 接口测试用例模板_《测试用例知识大全》----测试用例所有疑问,只需这篇就够了...
  9. python下载哪个版本好-究竟哪个版本的Python是最快的?
  10. .NET中的设计模式——一步步发现装饰模式
  11. [.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现
  12. Microsoft Office Visio 2007和Microsoft Office Project 2007下载
  13. 怎么提高公文写作水平?原来这就是公文写作通知类模板
  14. 淮阴工学院计算机硕士生导师,硕士生导师概况
  15. canvas绘制动态图片
  16. (OC) interface
  17. 多线程不能不知道的之单线程和多线程的比较
  18. C语言——计算阶层求和
  19. Blur大战Opensea:a16z的奶酪与Paradigm的独食
  20. java内嵌数据库_Java嵌入式数据库-MapDB

热门文章

  1. 施工图审制度全面取消:图审单位退场,整顿建筑设计行业乱象
  2. 士大夫身份第三方水电费第三方
  3. 蓝牙技术|蓝牙BLE和蓝牙Mesh的关系
  4. 开关电源中变压器初次级线圈之间对EMI的作用(电磁兼容整改)
  5. 【免费】Creative主题电子科技企业类模板/Discuz科技企业网站模板
  6. 【跨保985计算机】2022跨保实录|六千字保姆教程
  7. 用3dmax做折扇的思路方法与步骤
  8. 慕课笔记:jQuery(一)——样式篇
  9. 关于mac电脑使用usb无线网卡 WirelessUtility软件无法打开的问题
  10. IOS下P2P播放器开发如何实现?