FIR数字滤波器的设计

  • 线性相位FIR滤波器的特点

    • 单位冲激响应:\(h(n),0\leq n\leq N-1\)
    • 系统函数:\(H(z)=\sum_{n=0}^{N-1}h(n)z^{-n}\)
    • 零极点分布:无穷远处N-1个零点,z=0处有一个N-1阶极点
  • 线性相位条件

    线性相位是FIR滤波器的一个优势,因为FIR滤波器相比于IIR滤波器的阶数一般要高很多。

    \(H(e^{j\omega})=\sum_{n=0}^{N-1}h(n)e^{-j\omega n}=\pm|H(e^{j\omega})|e^{j\theta(\omega)}\)

    线性相位是指\(\theta(\omega)\)是\(\omega\)的线性函数。根据它们之间的线性关系,将线性相位分为两种:正比例;一次函数。

    • 第一类线性相位:\(\theta(\omega)=-\tau\omega\)

      若实序列\(h(n)\)为第一类线性相位,则\(\sum_{n=0}^{N-1}h(n)e^{-j\omega n}=\sum_{n=0}^{N-1}h(n)\cos(\omega n)-j\sum_{n=0}^{N-1}h(n)\sin(\omega n)=\pm|H(e^{j\omega})|\cos(\omega \tau)\pm j|H(e^{j\omega})|\sin(\omega \tau)\) 于是:\(\tan(\omega\tau)=\frac{\sum_{n=0}^{N-1}h(n)\sin (\omega n)}{\sum_{n=0}^{N-1}h(n)\cos (\omega n)}\) \(\rightarrow \sum_{n=0}^{N-1}h(n)\sin[(\tau-n)\omega]=0\)
      \[\text{FIR系统满足线性相位的充要条件}\begin{cases}
      \text{$\tau=\frac{N-1}{2}$}\\ h(n)=h(N-1-n)\end{cases}$$ ,即h(n)为偶对称,对称中心为$\frac{N-1}{2}$ .
      \]

      同理可得,满足线性相位的冲要条件\(h(n)=-h(N-1-n),\tau=\frac{N-1}{2},\beta_0=\pm\frac{\pi}{2}\)

窗函数设计法

  • 方法及原理

    性能指标\(\rightarrow\)理想低通滤波器的系统函数\(\rightarrow\)反变换时域无限长信号\(\rightarrow\)信号截断\(\rightarrow\)右移变因果系统。

    线性相位理想低通滤波器的频率响应(周期连续)为:

    \[H_d(e^{j\omega)})=\begin{cases} e^{-j\omega\alpha}&-\omega_c \leq \omega \leq\omega_c\\ 0&-\pi\leq\omega\leq-\omega_c, \omega_c\leq\omega\leq\pi \end{cases}
    \]

    经过离散傅里叶反变换对应的序列(非周期离散)为:

    \[h_d(n)=\frac{\omega_c}{\pi}\frac{\sin[\omega_c(n-\alpha)]}{\omega_c(n-\alpha)}
    \]

    该序列为中心点为\(\alpha\)偶对称无限长非因果序列

    现需要将其转变为偶对称有限长因果序列。取矩形窗\(w(n)=R_N(n)\),则FIR滤波器的单位抽样响应:

    \[h(n)=h_d(n)=\begin{cases} h_d(n) & 0\leq n\leq N-1 \\ 0 & \text{else}\end{cases}
    \]

    根据第一类线性相位的条件,应有:\(\alpha=\frac{N-1}{2}\),即:

    \[h(n)=\frac{\omega_c}{\pi}\frac{\sin[\omega_c(n-\frac{N-1}{2})]}{\omega_c(n-\frac{N-1}{2})},0\leq n \leq N-1
    \]

    FIR滤波器的频率响应的幅度函数为h(n)的幅度函数与w(n)幅度函数的卷积,即为\(H(\omega)=\frac{1}{2\pi}\int_{-\pi}^{\pi}H_d(\omega)W_R(\omega-\theta)d\theta\),变换的具体过程如下:



    可以看做\(W_R(\theta)\)平移\(\omega\)之后在\([-\omega_c,\omega_c]\)内的积分(因为\(H_d(\theta)\)在此区间内为1).

    \(\omega\) \(H(\omega)\)
    0 近似\(W_R(\theta)\)的全部面积
    \(\omega_c\) 0.5\(H(0)\)
    \(\omega_c-\frac{2\pi}{N}\) 最大,正肩峰
    \(\omega_c+\frac{2\pi}{N}\) 最小,负肩峰
    \(>\omega_c+\frac{2\pi}{N}\) 在零值上下波动
    \(<\omega_c-\frac{2\pi}{N}\) 在\(H(0)\)上下波动

    \(-\frac{2\pi}{N},\frac{2\pi}{N}\)为窗函数频谱主瓣的两个零点,主瓣宽度为\(\frac{4\pi}{N}\)。

    从图中可以看出,FIR滤波器的幅值函数在\(\omega_c\pm\frac{2\pi}{N}\)出现肩峰。改变N值改变主瓣宽度,使过渡带变得更窄,但是并不能改变正肩峰与负肩峰的相对比例(相对比例由窗函数的形状决定,此为Gibbs效应)。

  • 几种窗函数的对比

    窗函数 窗谱性能指标 加窗后滤波器性能指标
    旁瓣峰值幅度/dB 主瓣宽度/(2pi/N) 过渡带宽△w/(2pi/N) 最小阻带衰减/dB
    矩形窗 -13 2 0.9 -21
    三角形窗 -25 4 2.1 -25
    汉宁窗 -31 4 3.1 -44
    海明窗 -41 4 3.3 -53
    布莱克曼窗 -57 6 5.5 -74
    凯泽窗(β=8.865) -57 5 -80

    阻带最小衰减只由窗函数形状决定。过渡带宽与窗形状和窗宽N都有关。

  • 设计步骤

    graph LR
    A(理想的频率响应函数及技术指标)-->B(理想的单位抽样响应)
    D(根据阻带衰减选择窗函数)-->C(根据过渡带宽度确定N)
    E(FIR滤波器的单位冲激响应)
    B-->D
    C-->E

    技术指标包括:阻带衰减和过渡带宽。一般取\(\omega_c\)为通带截止频率和阻带截止频率的平均值

    从理想的频率响应函数(\(H_d(e^{j\omega})\))得到理想的单位抽样响应\(h_d(n)\),有两种方法:

    • 公式法
    • IFFT法:对\(H_d\)进行M点IFFT变换,要求M>>N

    最终得到FIR滤波器的h(n),并求得\(H(e^{j\omega})\),进行验证

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

  1. 数字信号处理实验(六)——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 ...

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

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

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

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

  4. FIR滤波器设计

    FIR滤波器的优越性: 相位对应为严格的线性,不存在延迟失真,仅仅有固定的时间延迟: 因为不存在稳定性问题,设计相对简单: 仅仅包括实数算法,不涉及复数算法,不须要递推运算,长度为M,阶数为M-1,计 ...

  5. 使用MATLAB设计FIR滤波器

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

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

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

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

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

  8. CIC and Fir 滤波器的级联

    在FDATool中 CIC 和 Fir 级联滤波器的设计 1 设计CIC滤波器的幅频特性曲线如下 2.设计FIR 滤波器的幅频特性曲线如下 3.总的特性曲线如下 4.把通带部分放大后的图,比较平坦

  9. FIR滤波器的FPGA实现方法

    FIR滤波器的FPGA实现方法 2011-02-21 23:34:15   来源:互联网    非常重要的基本单元.近年来,由于FPGA具有高速度.高集成度和高可靠性的特点而得到快速发展.随着现代数字 ...

  10. FIR滤波器和IIR滤波器的区别

    数字滤波器广泛应用于硬件电路设计,在离散系统中尤为常见,一般可以分为FIR滤波器和IIR滤波器,那么他们有什么区别和联系呢. FIR滤波器 定义: FIR滤波器是有限长单位冲激响应滤波器,又称为非递归 ...

随机推荐

  1. mount无响应

    mount -t xfs /dev/sdb /data 挂载不成功,且命令无任何回显. dmesg 查看到有报错 tailf /var/log/messages -n 100 systemctl da ...

  2. Accelerated molecular dynamics simulation of Silicon Crystals on TaihuLight using OpenACC 阅读

    基于OpenACC的太湖之光硅晶体加速分子动力学模拟    2020 摘要:以SW26010异构多核处理器和扩展的编程模型,使用多体势(Tersoff)执行固体共价晶体的分子动力学(MD)模拟. Am ...

  3. IDEA中已配置阿里镜像,但maven无法下载jar包的问题

    然后我还出现了一个问题,由于使用了HTTPS,存在着SSL证书验证的问题,因此我在IDEA中添加了一行配置: 配置如下: -Dmaven.wagon.http.ssl.insecure=true -D ...

  4. c++循环输入数字std::cin如何结束

    代码: #include <iostream> int main(int argc, const char * argv[]) { int sum = 0,value=0;   while ...

  5. oracle的ASM扩容

    #查看服务器上总共有多少个asmdisk [grid@rkdb1]$ asmcmd lsdsk --discovery Path /dev/oracleasm/disks/OCPDATA1 /dev/ ...

  6. java功能-发送http请求

    一.发送json public void test() throws IOException { //参数封装--------------------------------------------- ...

  7. Java基础——二维数组

    package com.zhao.demo; public class Demo08 { public static void main(String[] args) { //二维数组 int[][] ...

  8. Java向MySQL写入中文乱码问题解决

    Java向MySQL写入中文乱码问题解决 以下仅为本人工作.学习过程中所接触到的内容,不足之处欢迎指出. 问题现象: 使用Java代码向MySQL数据库写入数据,中文字符出现乱码. 解决步骤: 1.查 ...

  9. TypeScript 合并以及删除数组数据

    1.添加 concat() 2.删除(替换) splice() array.splice(index,int,any) index 是 array数组起始位置的index(从0开始) int是操作从i ...

  10. JS篇(003)-请用 js 去除字符串空格?

    答案:replace 正则匹配方法.str.trim()方法.JQ 方法:$.trim(str)方法 解析: 方法一:replace 正则匹配方法 去除字符串内所有的空格:str = str.repl ...