FIR滤波器的优越性:

相位对应为严格的线性,不存在延迟失真,仅仅有固定的时间延迟;

因为不存在稳定性问题,设计相对简单;

仅仅包括实数算法,不涉及复数算法,不须要递推运算,长度为M,阶数为M-1,计算值约为M/2。

关于FIR滤波器的幅频特性和相频特性。在人们不关心相位时,能够让幅频特性常为正,原来为负的部分仅仅需相位加上pi来补偿。

但当相位非常重要,不同意随便增减时,幅频特性就必须区分正负。我们这里称为符幅特性。

符幅特性负值部分向上反褶就和我们平时看到的幅频特性一样,还是满足对称性的。

4类FIR的比較(摘自百度文库):

不同类型要注意他们在w=0和pi时的取值是否为0,对滤波器选型有影响。

另外要注意到FIR极点在原点,零点则是成对出现,并且极点数等于零点数。

实际中用窗函数截断法设计FIR滤波器。

矩形窗缺点:

突然截断引起吉布斯效应,由于矩形窗在频谱上的旁瓣相对幅度过大,导致滤波器波动大。

因此要採用平滑截断的窗,旁瓣相对小。但平滑窗主瓣宽度大,主瓣宽度是决定过渡带的关键因素。因此用提高阶数的方法解决。

matlab中各种窗函数:

wd = boxcar(N);%矩形窗

wd = triang(N);%三角窗

wd = hanning(N);&汉宁窗

wd = hamming(N);%汉明窗

wd = blackman(N);%布莱克曼窗

wd = kaiser(N,beta);%凯泽-贝塞尔窗,最优的窗结构之中的一个,对于给定的波动,提供最小的主瓣宽度。

另外有个现成的设计函数:

b = fir1(M,wn,'type',window);

b为待设计的滤波器系数向量,长度为N = M+1;

M为阶数;

wn为滤波器给定的边缘频率,标量或数组;

type滤波器类型,低通,高通……

window为窗函数类型,默认汉明窗。

比如b = fir1(32,0.7,high',kaiser(33,4));

注意0.7是指边界数字频率0.7*pi。

滤波器设计也能够利用matlab的fdatool工具设计,更为直观。

FIR滤波器设计的更多相关文章

  1. matlab进行FIR滤波器设计(一)

    来源:https://blog.csdn.net/leokingszx/article/details/80041910 在实际的应用中,有时需要使用FIR根据完成一些特定功能,比如近似一阶RC低通电 ...

  2. FIR滤波器(1)- 基础知识

    FIR滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号.FIR滤波器是全零点结构,系统永远稳定:并且具有线性相位的特征,在有效频率范围内所有信号相位上不失真.在无线通信收 ...

  3. IIR滤波器设计(调用MATLAB IIR函数来实现)

    转载请注明文章来源 – http://blog.csdn.net/v_hyx ,请勿用于任何商业用途         对于滤波器设计,以前虽然学过相关的理论(现代数字信号处理和DSP设计),但一直不求 ...

  4. 转载论文关于fir滤波器的fpga实现

    摘 要 本文讨论的FIR滤波器因其具有严格的线性相位特性而得到广泛的应用.在工程实践中,往往要求信号处理具有实时性和灵活性,本论文研究FIR的FPGA解决方案正体现了电子系统的微型化和单片化. 本论文 ...

  5. FIR滤波器相关解释

    LTI(Linear Time-Invariant) 线性时不变: 线性时不变系统是根据系统输入和输出是否具有线性关系来定义的.满足叠加原理的系统具有线性特性.线性满足y=kx函数. 根据系统的输入和 ...

  6. 《数字信号处理》课程实验2 – FIR数字滤波器设计

    一.FIR数字滤波器设计原理  本实验采用窗函数法设计FIR数字低通滤波器.我们希望设计的滤波器系统函数如下: \(H_{d}\left( e^{jw} \right) = \left\{ \begi ...

  7. 数字信号处理实验(六)——FIR滤波器的设计

    一.四种线性相位FIR滤波器的振幅响应 1.自编函数 [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) 2.一个demo clea ...

  8. 使用MATLAB设计FIR滤波器

    1.      采用fir1函数设计,fir1函数可以设计低通.带通.高通.带阻等多种类型的具有严格线性相位特性的FIR滤波器.语法形式: b = fir1(n, wn) b = fir1(n, wn ...

  9. IIR滤波器和FIR滤波器的区别与联系zz

      -------------------------------------------------------------------------------------------------- ...

随机推荐

  1. DotNet中的计时器线程计时器

    转载自:http://hi.baidu.com/wingingbob/item/9f1c9615f3b24d5f2b3e225c 基于多线程设计,计时器工作在ThreadPool线程上,存在事件的重入 ...

  2. Session深度探索

    什么是Session? web是无状态,这意味着每次页面被回传到服务器时,都重新生成一个web页面类的一个新的实例.众所周知http时无状态的协议.它不能获得客户端的信息.如果用户录入了一些信息,当跳 ...

  3. 粗俗易懂的SQL存储过程在.NET中的实例运用

    整理了一下存储过程在项目中的运用,防止遗忘,便记录于此!存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数( ...

  4. ASP.net关于C#代码与javaScript函数的相互调用

    C#代码与javaScript函数的相互调用 问:1.如何在JavaScript访问C#函数?2.如何在JavaScript访问C#变量?3.如何在C#中访问JavaScript的已有变量?4.如何在 ...

  5. windows下安装php笔记

    为了更深入的理解下服务端的配置 ,上篇文章讲了如何在windows下安装apache , 接下来再研究下在windows下安装php并且结合apache运行php环境, 纯属学习用 ^^ ,如果嫌麻烦 ...

  6. oracle单行函数之数字函数

    round--四舍五入函数 trunc--截断函数 mod--求余函数 round和trunc除了可以操作数字外还可以操作日期. Demo SQL),),),),) from dual ; ) ) ) ...

  7. 在linux下用tomcat部署java web项目的过程与注意事项(转)

    一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/index.html下载Java SE 6 Update 27根据操作系 ...

  8. 2014年企业改善IT风险管理的5个办法

    进入新的一年,企业面对数据泄密事故.日益复杂的攻击和对其控制的持续监管,现在是时候重新审视其风险管理战略了.虽然每个企业都是独特的,风险管理专家认为有些风险管理办法值得企业关注.下面我们列出了5个风险 ...

  9. Asp.net禁用页面缓存的方法

    方法1.在Asp页面首部<head>中添加如下代码 Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response ...

  10. with语句

    <script type="text/javascript"> /* with语句:有了 With 语句,在存取对象属性和调用方法时就不用重复指定对象. 格式: wit ...