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频率分量被滤除。

  

  图11

FIR滤波器的Matlab实现相关推荐

  1. 二相并行FIR滤波器的matlab及使用FIR IP 核的FPGA实现

    二相并行FIR滤波器的matlab及modelsim仿真 二相FIR滤波器即并行FIR滤波器,以面积换取速度,可以在同样的时钟频率下,提高原始滤波器的有效吞吐量,或者降低原始滤波器的功耗. 1 并行F ...

  2. fir滤波器应用matlab,fir滤波器应用.ppt

    fir滤波器应用 电子与通信工程 许永全 FIR滤波器应用 内容 数字滤波器概述 FIR滤波器基本介绍 FIR滤波器在matlab及FPGA中的调用程序 FIR滤波器在无线信号处理的一个应用 数字滤波 ...

  3. matlab中fir1中的边界频率,FIR滤波器的MATLAB设计与实现.pdf

    FIR滤波器的MATLAB设计与实现 1.设计任务 1.用MATLAB软件实现FIR滤波器: 2.设计基于DSP 的FIR滤波器硬件框图: 3.了解用DSP实现FIR滤波器的关键问题: 4.完成必要的 ...

  4. 【DSP教程】第36章 FIR滤波器的Matlab设计(含低通,高通,带通和带阻)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第36章       FIR滤波器的Matlab设计(含低通 ...

  5. matlab设计窄带滤波器,【安富莱DSP教程】第36章 FIR滤波器的Matlab设计

    第36章 FIR滤波器的Matlab设计 本章节讲解FIR滤波器的Matlab设计.主要是函数fir1和fir2的使用. 36.1 窗函数 36.2 fir1函数 36.2 fir2函数 36.4 总 ...

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

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

  7. matlab凯塞窗低通fir滤波器,基于Matlab的FIR滤波器设计与实现

    一.摘要 前面一篇文章介绍了通过FDATool工具箱实现滤波器的设计,见" 二.实验平台 Matlab7.1 三.实验原理 以低通滤波器为例,其常用的设计指标有: 通带边缘频率fp(数字频率 ...

  8. 四类线性相位 FIR滤波器设计 —— MATLAB源码全集

    目录 引言 1.FIR线性相位滤波器 2.Ⅰ型 FIR 滤波器 2.1.低通滤波器 2.2.带通滤波器

  9. 【滤波器设计】基于汉明窗,汉宁窗,布莱克曼窗 矩形窗设计低通FIR滤波器附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

最新文章

  1. Android提示框与通知的使用
  2. CSS之定位(元素的层级z-index)
  3. 编写和调试Shader程序(1)
  4. c语言比较麻烦的编程题,C语言编程题,比较简单
  5. 前端获取后端传来的session_java后台如何获取,前台传来的表单数据
  6. 人工智能免费学习!想了解的进来看看
  7. python无符号转有符号_Python | 散布符号
  8. 全球最顶级的电脑配置_全球最顶级外汇交易员,非这10位莫属
  9. 修改springmvc返回ajax方式的json数据
  10. VRTK实现瞬移, 多场景复制
  11. 部分关键字--this/extends/super/static/final/abstract/访问权限总结
  12. Navicat for MySQL触发器更新和插入操作
  13. 拍牌人数陡增6万人,中标率降至7.8%,我们错过了拍沪牌的黄金期
  14. 中国环境检测市场运营现状分析与投资规划研究报告2022年版
  15. 淘金网UCskype客服系统
  16. HBuilderX、微信开发者工具、VScode之间运行微信公众号
  17. 电信增值业务学习笔记(转)
  18. Spring系列 1.Spring概述及IOP
  19. Hadoop学习环境搭建
  20. OpenCV学习(二)---树莓派上安装opencv

热门文章

  1. 声音大小对于测距数值的影响
  2. 虚拟摄像头 安卓版_林俊杰 ft. M.E.,联同视效大厂数字王国加码虚拟偶像
  3. html文字随机变色效果,html肿么让字体得到随机颜色
  4. 在ubuntu上使用gdb-multiarch 跨平台调试
  5. app获取个人信息是否合法_APP隐私合规介绍和实施方案
  6. Linux系统备份树莓派,全平台备份树莓派的方法
  7. python mysql latin1_python操作Mysql数据库
  8. 约瑟夫环双向链表c语言实,双向链表与约瑟夫环代码
  9. 继承单例模式 php_详解PHP单例模式之继承碰见的问题
  10. 如何使用graphpad做柱形图_自建房如何做防雷接地?使用什么材料?卫生间等电位如何连接?...