zoukankan      html  css  js  c++  java
  • FIR滤波器设计

    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工具设计,更为直观。





  • 相关阅读:
    在FreeBSD中pkg包管理器使用实例
    租了一台华为云耀云服务器,却直接被封公网ip,而且是官方的bug导致!
    Java8 Stream对集合的一些应用
    idea 编码UTF-8 设置
    Java RSA非对称加密算法实现
    分库分表 策略 临时
    springboot+dubbo + zookeeper 案例
    跟着华为,学数字化转型(6):一把手工程
    跟着华为,学数字化转型(5):数据保护和业务决策
    跟着华为,学数字化转型(4):数据采集
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4039925.html
Copyright © 2011-2022 走看看