数字信号处理(七)FIR数字滤波器的设计

FIR滤波器设计 对于输入序列X(n)的FIR滤波器,可用下图所示结构示意图来进行表示,其中X(n)是输入数据流。各级的输入链接和输出连接被称为抽头,系数(a0,a1,a2......an)被称为抽头系数。一个M阶的FIR滤波器有M+1个抽头。滤波器就是对特定的频率或者特定频率以外的频率进行消除的电路,被广泛运用于通信系统和信号处理系统中。从功能而言,数字滤波器对输入离散信号的数字代码进行运算处理,以达到滤除频带外信号的目的。有限冲激响应(FIR)滤波器就是一种常用的数字滤波器,采用对已输入样值的加权和来形成他的输出。 阅读详情

FIR滤波器

滤波器的单位脉冲响应h(n)是有限长序列,N-1阶FIR数字滤波器的系统函数为:
H ( z ) = ∑ n = 0 N − 1 h ( n ) z − n H(z)=\sum_{n=0}^{N-1}h(n)z^{-n} H(z)=n=0∑N−1​h(n)z−n
稳定和线性相位特性是FIR滤波器最突出的优点

线性相位FIR滤波器的条件及特点

线性相位FIR滤波器

对于长度为N的h(n),频率响应函数为:
H ( e j ω ) = ∑ n = 0 N − 1 h ( n ) e − j ω n = H g ( ω ) e j θ ( ω ) H(e^{j\omega})=\sum_{n=0}^{N-1}h(n)e^{-j\omega n}=H_g(\omega)e^{j\theta(\omega)} H(ejω)=n=0∑N−1​h(n)e−jωn=Hg​(ω)ejθ(ω)
式中, H g ( ω ) H_g(\omega) Hg​(ω)为幅度特性,为 ω \omega ω的实函数,可能取负值,不同于 ∣ H ( e j ω ) ∣ |H(e^{j\omega})| ∣H(ejω)∣(只为正值); θ ( ω ) \theta(\omega) θ(ω)为相位特性

线性相位条件

H ( e j ω ) H(e^{j\omega}) H(ejω)线性相位是指 θ ( ω ) \theta(\omega) θ(ω)是 ω \omega ω的线性函数,即
θ ( ω ) = − τ ω , τ 为 常 数 , 该 式 属 于 严 格 线 性 相 位 ( 第 一 类 线 性 相 位 ) \theta(\omega)=-\tau\omega,\tau为常数,该式属于严格线性相位(第一类线性相位) θ(ω)=−τω,τ为常数,该式属于严格线性相位(第一类线性相位)
但是,如果 θ ( ω ) \theta(\omega) θ(ω)满足下式:
θ ( ω ) = θ 0 − τ ω , θ 0 是 初 始 相 位 , 该 式 属 于 广 义 线 性 相 位 ( 第 二 类 线 性 相 位 ) \theta(\omega)=\theta_0-\tau\omega,\theta_0是初始相位,该式属于广义线性相位(第二类线性相位) θ(ω)=θ0​−τω,θ0​是初始相位,该式属于广义线性相位(第二类线性相位)
严格地说,此时 θ ( ω ) \theta(\omega) θ(ω)不具有线性相位

但以上两种情况都满足群时延是一个常数,即: − d θ ( ω ) d ω = τ -\frac{d\theta(\omega)}{d\omega}=\tau −dωdθ(ω)​=τ

为了使滤波器对实信号的处理结果仍然是实信号,一般要求h(n)为实序列:

  • 满足第一类线性相位的时域约束条件是:h(n)是实序列,且对(N-1)/2偶对称,即: τ = ( N − 1 ) / 2 , h ( n ) = h ( N − n − 1 ) \tau=(N-1)/2,h(n)=h(N-n-1) τ=(N−1)/2,h(n)=h(N−n−1)
  • 满足第二类线性相位的时域约束条件是:h(n)是实序列,且对(N-1)/2奇对称,即: τ = ( N − 1 ) / 2 , h ( n ) = − h ( N − n − 1 ) \tau=(N-1)/2,h(n)=-h(N-n-1) τ=(N−1)/2,h(n)=−h(N−n−1)

线性相位FIR滤波器幅度特性

当N取奇数和偶数时,对 H g ( ω ) H_g(\omega) Hg​(ω)的约束不同,因此,对于两类线性相位特性,分四种情况讨论其幅度特性的特点

类型1:h(n)=h(N-n-1),N=奇数

推导其频率响应:
在这里插入图片描述
令m=N-1-n,有:
H ( e j ω ) = ∑ n = 0 ( N − 3 ) / 2 h ( n ) e − j ω n + h ( N − 1 2 ) ⋅ e − j ( N − 1 ) ω / 2 + ∑ m = 0 ( N − 3 ) / 2 h ( N − 1 − m ) e − j ( N − 1 − m ) ω H(e^{j\omega})=\sum_{n=0}^{(N-3)/2}h(n)e^{-j\omega n}+h(\frac{N-1}2)\cdot e^{-j(N-1)\omega/2}+\sum_{m=0}^{(N-3)/2}h(N-1-m)e^{-j(N-1-m)\omega} H(ejω)=n=0∑(N−3)/2​h(n)e−jωn+h(2N−1​)⋅e−j(N−1)ω/2+m=0∑(N−3)/2​h(N−1−m)e−j(N−1−m)ω
利用h(n)的对称性:h(N-1-m)=h(m),并提取 e − j ( N − 1 ) ω / 2 e^{-j(N-1)\omega /2} e−j(N−1)ω/2项
H ( e j ω ) = ∑ n = 0 ( N − 3 ) / 2 h ( n ) e − j ω n + h ( N − 1 2 ) ⋅ e − j ( N − 1 ) ω / 2 + ∑ m = 0 ( N − 3 ) / 2 h ( N − 1 − m ) e − j ( N − 1 − m ) ω = e − j ( N − 1 ) ω / 2 [ ∑ m = 0 ( N − 3 ) / 2 h ( m ) e − j ω m e j ( N − 1 ) ω / 2 + ∑ m = 0 ( N − 3 ) / 2 h ( m ) e j ω m e − j ( N − 1 ) ω / 2 + h ( N − 1 2 ) ] = e − j ( N − 1 ) ω / 2 [ 2 ∑ m = 0 ( N − 3 ) / 2 h ( m ) c o s [ ( N − 1 2 − m ) ω ] + h ( N − 1 2 ) ] H(e^{j\omega})=\sum_{n=0}^{(N-3)/2}h(n)e^{-j\omega n}+h(\frac{N-1}2)\cdot e^{-j(N-1)\omega/2}+\sum_{m=0}^{(N-3)/2}h(N-1-m)e^{-j(N-1-m)\omega}\\ =e^{-j(N-1)\omega /2}[\sum_{m=0}^{(N-3)/2}h(m)e^{-j\omega m}e^{j(N-1)\omega/2}+\sum_{m=0}^{(N-3)/2}h(m)e^{j\omega m}e^{-j(N-1)\omega/2}+h(\frac{N-1}2)]\\ =e^{-j(N-1)\omega /2}[2\sum_{m=0}^{(N-3)/2}h(m)cos[(\frac{N-1}2-m)\omega]+h(\frac{N-1}2)] H(ejω)=n=0∑(N−3)/2​h(n)e−jωn+h(2N−1​)⋅e−j(N−1)ω/2+m=0∑(N−3)/2​h(N−1−m)e−j(N−1−m)ω=e−j(N−1)ω/2[m=0∑(N−3)/2​h(m)e−jωmej(N−1)ω/2+m=0∑(N−3)/2​h(m)ejωme−j(N−1)ω/2+h(2N−1​)]=e−j(N−1)ω/2[2m=0∑(N−3)/2​h(m)cos[(2N−1​−m)ω]+h(2N−1​)]
再令m=(N-1)/2-n,得:
H ( e j ω ) = e − j ( N − 1 ) ω / 2 [ 2 ∑ n = 1 ( N − 1 ) / 2 h ( N − 1 2 − n ) c o s ( ω n ) + h ( N − 1 2 ) ] H(e^{j\omega})=e^{-j(N-1)\omega /2}[2\sum_{n=1}^{(N-1)/2}h(\frac{N-1}2-n)cos(\omega n)+h(\frac{N-1}2)] H(ejω)=e−j(N−1)ω/2[2n=1∑(N−1)/2​h(2N−1​−n)cos(ωn)+h(2N−1​)]
令
a ( n ) = { h ( N − 1 2 ) n = 0 2 h ( N − 1 2 − n ) n = 1 , 2 , . . . , ( N − 1 ) / 2 a(n)=\begin{cases} h(\frac{N-1}2)&n=0\\ 2h(\frac{N-1}2-n)&n=1,2,...,(N-1)/2 \end{cases} a(n)={h(2N−1​)2h(2N−1​−n)​n=0n=1,2,...,(N−1)/2​
则
H ( e j ω ) = e − j ( N − 1 ) ω / 2 ∑ n = 0 ( N − 1 ) / 2 a ( n ) c o s ( ω n ) H(e^{j\omega})=e^{-j(N-1)\omega /2}\sum_{n=0}^{(N-1)/2}a(n)cos(\omega n) H(ejω)=e−j(N−1)ω/2n=0∑(N−1)/2​a(n)cos(ωn)
对比: H ( e j ω ) = H g ( ω ) e j θ ( ω ) H(e^{j\omega})=H_g(\omega)e^{j\theta(\omega)} H(ejω)=Hg​(ω)ejθ(ω)

因此:
θ ( ω ) = − N − 1 2 ω , H g ( ω ) = ∑ n = 0 ( N − 1 ) / 2 a ( n ) c o s ( ω n ) \theta(\omega)=-\frac{N-1}2\omega,H_g(\omega)=\sum_{n=0}^{(N-1)/2}a(n)cos(\omega n) θ(ω)=−2N−1​ω,Hg​(ω)=n=0∑(N−1)/2​a(n)cos(ωn)
在这里插入图片描述
(上图中,低通滤波器满足在 ω = 0 \omega=0 ω=0对称,高通滤波器满足在 ω = π \omega=\pi ω=π对称,带阻滤波器满足在 ω = 0 和 ω = π \omega=0和\omega=\pi ω=0和ω=π均对称,带通滤波器无要求)

由于 H g ( ω ) 中 c o s ω n H_g(\omega)中cos\omega n Hg​(ω)中cosωn项对 ω = 0 , π , 2 π \omega=0,\pi,2\pi ω=0,π,2π皆为偶对称,因此幅度特性的特点是对 ω = 0 , π , 2 π \omega=0,\pi,2\pi ω=0,π,2π为偶对称,如上图所示,因此类型1可用于设计各种滤波器

类型2:h(n)=h(N-n-1),N=偶数

H ( e j ω ) = e − j ω τ ∑ n = 0 ( N − 1 ) / 2 2 h ( n ) c o s [ ω ( n − τ ) ] , 式 中 , τ = ( N − 1 ) / 2 H(e^{j\omega})=e^{-j\omega \tau}\sum_{n=0}^{(N-1)/2}2h(n)cos[\omega( n-\tau)],式中,\tau=(N-1)/2 H(ejω)=e−jωτn=0∑(N−1)/2​2h(n)cos[ω(n−τ)],式中,τ=(N−1)/2

因此
H g ( ω ) = ∑ n = 0 ( N − 1 ) / 2 2 h ( n ) c o s [ ω ( n − τ ) ] H_g(\omega)=\sum_{n=0}^{(N-1)/2}2h(n)cos[\omega( n-\tau)] Hg​(ω)=n=0∑(N−1)/2​2h(n)cos[ω(n−τ)]
当 ω = π \omega=\pi ω=π时, c o s [ ω ( n − τ ) ] = c o s [ π ( n − N 2 ) + π 2 ] = − s i n [ π ( n − N 2 ) ] = 0 ( N 2 为 整 数 ) cos[\omega(n-\tau)]=cos[\pi(n-\frac N2)+\frac\pi2]=-sin[\pi(n-\frac N2)]=0(\frac N2为整数) cos[ω(n−τ)]=cos[π(n−2N​)+2π​]=−sin[π(n−2N​)]=0(2N​为整数)

所以 H g ( π ) = 0 H_g(\pi)=0 Hg​(π)=0,说明 H g ( ω ) H_g(\omega) Hg​(ω)关于 ω = π \omega=\pi ω=π奇对称,当 ω = 2 π \omega=2\pi ω=2π时, H g ( ω ) H_g(\omega) Hg​(ω)关于 ω = 0 和 ω = 2 π \omega=0和\omega=2\pi ω=0和ω=2π偶对称。因此类型2不能实现高通和带阻滤波器

类型3:h(n)=-h(N-n-1),N=奇数

H g ( ω ) = ∑ n = 0 ( N − 1 ) / 2 2 h ( n ) s i n [ ω ( n − τ ) ] H_g(\omega)=\sum_{n=0}^{(N-1)/2}2h(n)sin[\omega(n-\tau)] Hg​(ω)=n=0∑(N−1)/2​2h(n)sin[ω(n−τ)]

式中,N为奇数, τ = ( N − 1 ) / 2 \tau=(N-1)/2 τ=(N−1)/2是整数,说明 H g ( ω ) H_g(\omega) Hg​(ω)关于 ω = 0 , ω = π 和 ω = 2 π \omega=0,\omega=\pi和\omega=2\pi ω=0,ω=π和ω=2π奇对称,因此类型3只能用来实现带通滤波器

类型4:h(n)=-h(N-n-1),N=偶数

H g ( ω ) = ∑ n = 0 ( N − 1 ) / 2 2 h ( n ) s i n [ ω ( n − τ ) ] H_g(\omega)=\sum_{n=0}^{(N-1)/2}2h(n)sin[\omega(n-\tau)] Hg​(ω)=n=0∑(N−1)/2​2h(n)sin[ω(n−τ)]

式中,N为奇数, τ = ( N − 1 ) / 2 \tau=(N-1)/2 τ=(N−1)/2

当 ω = 0 和 ω = 2 π 时 , s i n [ ω ( n − τ ) ] = 0 当\omega=0和\omega=2\pi时,sin[\omega(n-\tau)]=0 当ω=0和ω=2π时,sin[ω(n−τ)]=0

当 ω = π 时 , s i n [ ω ( n − τ ) ] 取 得 最 大 值 当\omega=\pi时,sin[\omega(n-\tau)]取得最大值 当ω=π时,sin[ω(n−τ)]取得最大值

说明, H g ( ω ) H_g(\omega) Hg​(ω)关于 ω = 0 和 ω = 2 π \omega=0和\omega=2\pi ω=0和ω=2π奇对称,关于 ω = π \omega=\pi ω=π偶对称,因此类型4不能用来实现低通和带阻滤波器

奇偶对称的单位脉冲响应

偶对称单位脉冲响应:
在这里插入图片描述
奇对称单位脉冲响应:
在这里插入图片描述

FIR滤波器的窗函数设计法

窗函数设计法的原理

如果滤波器的单位取样响应 h d ( n ) h_d(n) hd​(n)无限长,要用FIR滤波器实现,就必须截断无限长的序列,以得到有限长的单位取样响应h(n)

为了构造一个长度为N的线性相位滤波器,由 h d ( n ) h_d(n) hd​(n)截取h(n)时,必须保证截取的一段对 ( N − 1 ) / 2 (N-1)/2 (N−1)/2对称

  • 将h(n)表示为 h d ( n ) h_d(n) hd​(n)和窗函数 w ( n ) w(n) w(n)的乘积:

    h ( n ) = w ( n ) ⋅ h d ( n ) h(n)=w(n)\cdot h_d(n) h(n)=w(n)⋅hd​(n)

  • 当w(n)的取值区间在0至N-1时,截断后滤波器的频率响应为有限项级数和:
    H ( e j ω ) = ∑ n = 0 N − 1 h ( n ) e − j w = ∑ n = − ∞ + ∞ w ( n ) ⋅ h d ( n ) ⋅ e − j ω n H(e^{j\omega})=\sum_{n=0}^{N-1}h(n)e^{-jw}=\sum_{n=-\infty}^{+\infty}w(n)\cdot h_d(n)\cdot e^{-j\omega n} H(ejω)=n=0∑N−1​h(n)e−jw=n=−∞∑+∞​w(n)⋅hd​(n)⋅e−jωn
    H ( e j ω ) 是 H d ( e j ω ) H(e^{j\omega})是H_d(e^{j\omega}) H(ejω)是Hd​(ejω)在均方误差最小下的最优逼近

典型窗函数及其特性

1、矩形窗
在这里插入图片描述

w ( n ) = R N ( n ) = { 1 0 ≤ n ≤ N − 1 0 其 他 W R ( e j ω ) = ∑ n = 0 N − 1 e − j ω n = s i n ( ω N / 2 ) s i n ( ω / 2 ) e − j ω ( N − 1 2 ) w(n)=R_N(n)=\begin{cases} 1&0\leq n\leq N-1\\ 0&其他 \end{cases} \\ W_R(e^{j\omega})=\sum_{n=0}^{N-1}e^{-j\omega n}=\frac{sin(\omega N/2)}{sin(\omega /2)}e^{-j\omega(\frac{N-1}2)} w(n)=RN​(n)={10​0≤n≤N−1其他​WR​(ejω)=n=0∑N−1​e−jωn=sin(ω/2)sin(ωN/2)​e−jω(2N−1​)
2、三角窗(又称Bartlett窗)
在这里插入图片描述

w ( n ) = { 2 n N n = 0 , 1 , . . . , N 2 w ( N − n ) n = N 2 , . . . , N − 1 或 w ( n ) = 1 − 2 ∣ n ∣ N , n = − N 2 , . . . , 0 , . . . N 2 w(n)=\begin{cases} \frac{2n}N&n=0,1,...,\frac N2\\ w(N-n)&n=\frac N2,...,N-1 \end{cases} \\或w(n)=1-\frac{2|n|}N,n=-\frac N2,...,0,...\frac N2 w(n)={N2n​w(N−n)​n=0,1,...,2N​n=2N​,...,N−1​或w(n)=1−N2∣n∣​,n=−2N​,...,0,...2N​

W ( e j ω ) = 2 N e − j N − 1 2 ω [ s i n ( ω N 4 ) s i n ( ω 2 ) ] 2 W(e^{j\omega})=\frac2Ne^{-j\frac{N-1}{2}\omega}[\frac{sin(\frac{\omega N}4)}{sin(\frac\omega2)}]^2 W(ejω)=N2​e−j2N−1​ω[sin(2ω​)sin(4ωN​)​]2

3、汉宁(Hanning)窗(升余弦窗)
在这里插入图片描述

w ( n ) = 0.5 − 0.5 c o s ( 2 π n N ) , n = 0 , 1 , . . . , N − 1 或 w ( n ) = 0.5 + 0.5 c o s ( 2 π n N ) , n = − N 2 , . . . , 0 , . . . , N 2 w(n)=0.5-0.5cos(\frac{2\pi n}N),n=0,1,...,N-1\\ 或w(n)=0.5+0.5cos(\frac{2\pi n}N),n=-\frac N2,...,0,...,\frac N2 w(n)=0.5−0.5cos(N2πn​),n=0,1,...,N−1或w(n)=0.5+0.5cos(N2πn​),n=−2N​,...,0,...,2N​

W ( e j ω ) = 0.5 U ( ω ) + 0.25 [ U ( ω − 2 π N ) + U ( ω + 2 π N ) ] , 式 中 U ( ω ) = e j ω / 2 s i n ( ω N 2 ) / s i n ( ω 2 ) W(e^{j\omega})=0.5U(\omega)+0.25[U(\omega-\frac{2\pi}N)+U(\omega+\frac{2\pi}N)],式中U(\omega)=e^{j\omega/2}sin(\frac{\omega N}2)/sin(\frac \omega2) W(ejω)=0.5U(ω)+0.25[U(ω−N2π​)+U(ω+N2π​)],式中U(ω)=ejω/2sin(2ωN​)/sin(2ω​)

4、汉明(Hamming)窗(改进升余弦窗)
在这里插入图片描述

w ( n ) = 0.54 − 0.46 c o s ( 2 π n N ) , n = 0 , 1 , . . . , N − 1 或 w ( n ) = 0.54 + 0.46 c o s ( 2 π n N ) , n = − N 2 , . . . , 0 , . . . , N 2 w(n)=0.54-0.46cos(\frac{2\pi n}N),n=0,1,...,N-1\\ 或w(n)=0.54+0.46cos(\frac{2\pi n}N),n=-\frac N2,...,0,...,\frac N2 w(n)=0.54−0.46cos(N2πn​),n=0,1,...,N−1或w(n)=0.54+0.46cos(N2πn​),n=−2N​,...,0,...,2N​

W ( e j ω ) = 0.54 U ( ω ) + 0.23 [ U ( ω − 2 π N ) + U ( ω + 2 π N ) ] W(e^{j\omega})=0.54U(\omega)+0.23[U(\omega-\frac{2\pi}N)+U(\omega+\frac{2\pi}N)] W(ejω)=0.54U(ω)+0.23[U(ω−N2π​)+U(ω+N2π​)]

5、布莱克曼(Blackman)窗
在这里插入图片描述

w ( n ) = 0.42 − 0.5 c o s ( 2 π n N ) + 0.08 c o s ( 4 π n N ) , n = 0 , 1 , . . . , N − 1 或 w ( n ) = 0.42 − 0.5 c o s ( 2 π n N ) + 0.08 c o s ( 4 π n N ) , n = − N 2 , . . . , 0 , . . . , N 2 w(n)=0.42-0.5cos(\frac{2\pi n}N)+0.08cos(\frac{4\pi n}N),n=0,1,...,N-1\\ 或w(n)=0.42-0.5cos(\frac{2\pi n}N)+0.08cos(\frac{4\pi n}N),n=-\frac N2,...,0,...,\frac N2 w(n)=0.42−0.5cos(N2πn​)+0.08cos(N4πn​),n=0,1,...,N−1或w(n)=0.42−0.5cos(N2πn​)+0.08cos(N4πn​),n=−2N​,...,0,...,2N​
6、上述5种窗函数的频谱
在这里插入图片描述

窗名称近似过渡带宽精确过渡带宽最小阻带衰减
矩形窗 4 π / N 4\pi/N 4π/N 1.8 π / N 1.8\pi/N 1.8π/N21dB
三角窗 8 π / N 8\pi/N 8π/N 6.1 π / N 6.1\pi/N 6.1π/N25dB
汉宁窗 8 π / N 8\pi/N 8π/N 6.2 π / N 6.2\pi/N 6.2π/N44dB
汉明窗 8 π / N 8\pi/N 8π/N 6.6 π / N 6.6\pi/N 6.6π/N51dB
布莱克曼窗 12 π / N 12\pi/N 12π/N 11 π / N 11\pi/N 11π/N74dB

窗函数法设计FIR滤波器步骤

1、根据所需设计的数字滤波器类型(低通,高通,带通,带阻),确定线性相位数字滤波器类型 ( I , I I , I I I , I V ) (I,II,III,IV) (I,II,III,IV)

2、选择合适的窗函数 w ( n ) w(n) w(n):根据滤波器阻带衰减 α s \alpha_s αs​选择窗函数 w ( n ) w(n) w(n)的种类,然后根据滤波器过渡带宽度,确定所选窗函数的长度N。用窗函数设计的FIR数字滤波器的通带波纹幅度近似等于阻带波纹幅度,所以通常只考虑阻带最小衰减就可以。

3、确定理想数字滤波器的频率响应函数:
H d ( e j ω ) = H d ( ω ) e j θ d ( ω ) H_d(e^{j\omega})=H_d(\omega)e^{j\theta_d(\omega)} Hd​(ejω)=Hd​(ω)ejθd​(ω)
对严格线性相位FIR数字滤波器 θ d ( ω ) = − ω ( N − 1 ) / 2 \theta_d(\omega)=-\omega(N-1)/2 θd​(ω)=−ω(N−1)/2

对广义线性相位FIR数字滤波器 θ d ( ω ) = − π / 2 − ω ( N − 1 ) / 2 \theta_d(\omega)=-\pi/2-\omega(N-1)/2 θd​(ω)=−π/2−ω(N−1)/2

理想数字滤波器的截止频率 ω c \omega_c ωc​近似为最终设计的FIR数字滤波器的过渡带中心频率,所以一般取 ω c = ( ω p + ω s ) / 2 \omega_c=(\omega_p+\omega_s)/2 ωc​=(ωp​+ωs​)/2。 ω p 和 ω s \omega_p和\omega_s ωp​和ωs​分别为通带边界频率和阻带边界频率。

4、计算理想数字滤波器的单位脉冲响应
h d ( n ) = 1 2 π ∫ − π π H d ( e j ω ) e j ω n d ω h_d(n)=\frac1{2\pi}\int_{-\pi}^{\pi}H_d(e^{j\omega})e^{j\omega n}d\omega hd​(n)=2π1​∫−ππ​Hd​(ejω)ejωndω
5、加窗得到设计结果
h ( n ) = h d ( n ) w ( n ) h(n)=h_d(n)w(n) h(n)=hd​(n)w(n)

FIR滤波器的频率采样设计法

频率采样法的原理

根据频域采样定理, 一个长度为M的有限长序列 x ( n ) x(n) x(n),可通过其频谱函数的 N ≥ M N\geq M N≥M点等间隔采样值 X ( k ) X(k) X(k)准确的恢复原信号 x ( n ) x(n) x(n),即 x ( n ) = x N ( n ) = I D F T [ X ( k ) ] x(n)=x_N(n)=IDFT[X(k)] x(n)=xN​(n)=IDFT[X(k)]。设待设计的滤波器的传输函数用 H d ( e j ω ) H_d(e^{j\omega}) Hd​(ejω)表示,对它在 ω = 0 ∽ 2 π \omega=0 \backsim2\pi ω=0∽2π之间等间隔采样N点,得到 H d ( k ) H_d(k) Hd​(k):
H d ( k ) = H d ( e j ω ) ∣ ω = 2 π N k , k = 0 , 1 , 2 , . . . , N − 1 H_d(k)=H_d(e^{j\omega})|_{\omega=\frac{2\pi}Nk},k=0,1,2,...,N-1 Hd​(k)=Hd​(ejω)∣ω=N2π​k​,k=0,1,2,...,N−1
再对N点 H d ( k ) H_d(k) Hd​(k)进行IDFT,得到 h ( n ) h(n) h(n),即为所设计的滤波器的单位取样响应:
h ( n ) = 1 N ∑ k = 0 N − 1 H d ( k ) e j 2 π N k n , k = 0 , 1 , 2 , . . . , N − 1 h(n)=\frac1N\sum_{k=0}^{N-1}H_d(k)e^{j\frac{2\pi}Nkn},k=0,1,2,...,N-1 h(n)=N1​k=0∑N−1​Hd​(k)ejN2π​kn,k=0,1,2,...,N−1
根据频域采样定理,其系统函数 H ( z ) H(z) H(z)可写成:
H ( z ) = ∑ n = 0 N − 1 h ( n ) z − n = 1 − z − N N ∑ k = 0 N − 1 H d ( k ) 1 − e j 2 π N k z − 1 H(z)=\sum_{n=0}^{N-1}h(n)z^{-n}=\frac{1-z^{-N}}N\sum_{k=0}^{N-1}\frac {H_d(k)}{1-e^{j\frac{2\pi}Nk}z^{-1}} H(z)=n=0∑N−1​h(n)z−n=N1−z−N​k=0∑N−1​1−ejN2π​kz−1Hd​(k)​
用频率采样法设计线性相位滤波器的条件:
H d ( k ) = H g ( k ) e j θ ( k ) θ ( k ) = − N − 1 N π k H g ( k ) = H g ( N − k ) , N = 奇 数 H g ( k ) = − H g ( N − k ) , N = 偶 数 H_d(k)=H_g(k)e^{j\theta(k)} \\ \theta(k)=-\frac{N-1}N\pi k \\ H_g(k)=H_g(N-k),N=奇数 \\ H_g(k)=-H_g(N-k),N=偶数 Hd​(k)=Hg​(k)ejθ(k)θ(k)=−NN−1​πkHg​(k)=Hg​(N−k),N=奇数Hg​(k)=−Hg​(N−k),N=偶数

【数字信号处理】FIR 滤波器基础理论 FIR 滤波器设计基础理论 FIR 滤波器是数字滤波器的一种,相比于模拟滤波器,其滤波精度高,稳定,可随时修改,不需要考虑阻抗等问题,可以实现特殊要求的幅频特性,同时满足一定条件的FIR滤波器具有线性相位,因此FIR滤波器在实际工程中得到了较为广泛的应用,例如图像处理、通信以及雷达等。 本文主要讲述线性相位的 FIR 滤波器的基本原理和 并行结构基础,其次阐述了并行结构中常用到的 FFA 算法和快速卷积算法。 1.FIR 滤波器的基本原理 一个 N 阶的 FIR 滤波器输出公式 y(n) 如下: 式1中 阅读详情

相关推荐

数字信号处理翻转课堂笔记16——第一、二类线性相位FIR滤波器及matlab实现

第一、二类线性相位FIR滤波器特性及matlab实现

WM2101的博客 7780

一文读懂线性相位滤波器和最小相位滤波器

一文读懂最小相位滤波器和线性相位滤波器1. 线性相位滤波器一定更适合音频吗?2. 最小相位定义2.1 最小相位多项式2.2 最大相位滤波器2.3 最小相位意味最快的衰减3. 最小相位/全通分解4. 线性相位滤波器一定更适合音频吗? 前一篇博客写提到了滤波器的线性相位,与之对应的是最小相位滤波器。本文就最小相位滤波器和线性相位滤波器展开讨论一番。 1. 线性相位滤波器一定更适合音频吗? % ellipt.m - Compare minimum-phase and zero-phase %

Li Kang 笔记本 1万+

信号处理之FIR数字滤波器(Matlab仿真)

利用Matlab自带的Filter Designer工具箱完成FIR数字滤波器的设计(详细步骤及完整代码)

LHY188166的博客 2万+

FIR滤波器

FIR滤波器

myuzhao的博客 8996

FIR数字滤波器设计_窗函数法

1.前言 在数字信号处理中 ,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的, 因此数字滤波器占有极其重要的地位 。数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入与输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,

沈春旭的博客 7万+

FIR数字滤波器在MATLAB中的实现

1 背景在线性系统中,信号滤波过程一般定义为,当输入波形通过一个系统时,对它作一个线性运算,在时间域上这种变换如像内插,外插微分和积分,在频率域上这种变换则如低通滤波或平滑,带通滤波,谱设计和谱分析。如模拟滤波器对连续时间信号的这种运算,在数学上是用线性常系数微分方程确定的。用拉普拉斯变换可在S域内进行这些运算的分析。用傅立叶变换则在f域内分析。同样的,可用常系数线性方程来定义离散时间信号的线性变...

matlab1998_vx的博客 1万+

重邮数字信号处理-实验七 MATLAB 设计 FIR 数字滤波器

重邮数字信号处理第七个实验

FAREWELL00075的博客 1881

数字滤波器在语音信号处理中的应用及其设计方法

数字滤波器在语音信号处理中的应用及其设计方法

我是MM仔 4749

数字信号处理(二)窗函数法设计FIR数字滤波器

(1) 熟悉矩形窗、汉宁窗、海明窗等常用窗函数。 (2) 掌握用上述窗函数法设计FIR数字滤波器的原理和方法。 (3) 熟悉线性相位FIR数字滤波器特性。 (4) 了解窗函数类型及窗口长度对滤波器特性的影响。

weixin_44566643的博客 6万+

[数字信号处理]FIR&IIR数字滤波器

本文阐述了FIR、IIR数字滤波器的设计思路并设计了不同类型的FIR和IIR滤波器。随后通过对音乐信号进行滤波处理,观察滤波的效果,进行了各自特点以及滤波效果的比较。

尧呱呱的博客 7781

MATLAB数字滤波器的设计

一、数字滤波器设计数字滤波器就是由数字乘法器、加法器和延时单位组成的一种装置。它的作用是对输入离散信号的数字代码进行运算处理,从而达到改变信号频谱的目的。数字滤波器可以用计算机软件实现或者大规模集成数字硬件实时实现。在数字滤波器处理模拟信号的时候,先要对输入的模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率要大于信号带宽的两倍,它的频率响应还要具有以抽样频率为间隔的周期重复特性,并且它...

matlab1998_vx的博客 8939

FIR数字滤波器 C语言实现

FIR数字滤波器 C语言实现matlab生成FIR参数FIR c语言实现整个工程项目信号频谱图对比 matlab生成FIR参数 matlab设置FIR低通滤波器;类型为Equiripple;Minimun order;Density Factor:20;FS:48000;Fpass:2000;Fstop:3000 /* * Filter Coefficients (C Source) gener...

zhenhui1314的博客 2万+

毕设:基于FPGA的FIR数字滤波器设计

今天给大侠带来在毕业设计之基于FPGA的FIR数字滤波器设计,仅供大侠参考,话不多说,上货。 本篇介绍基于FPGA的FIR数字滤波器设计,针对毕业设计要做的基本工作有如下几点: (一)掌握有限冲击响应FIR(Finite Impulse Response, FIR)的基本结构,研究现有的实现方法,对各种方案和步骤进行比较和论证分析,然后针对目前FIR数字滤波器需要的特点,速度快和硬件规模小,作为指导思想进行设计计算。 (二)基于硬件FPGA的特点,利用Matlab软件以及...

2万+

数字信号处理:FIR数字滤波器设计及软件实现

数字信号处理:FIR数字滤波器设计及软件实现 一、实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 二、实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱; (3)请设计低通滤波器,从高频噪声中提取xt中的单

May the Force be with you 2万+

基于MATLAB的数字信号处理(5) FIR数字滤波器设计及软件实现

基于MATLAB的数字信号处理 FIR数字滤波器设计及软件实现

叶庭云 成为自己的光 9052

PTA 编程题(C语言)-- 然后是几点

PTA 编程题(C语言)-- 然后是几点

LCCprogrammer 5073

数字信号处理(DSP)实验——FIR数字滤波器设计与仿真

一、实验目的 1.掌握用窗函数法设计FIR数字滤波器的原理和方法。 2.掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 3.掌握FIR滤波器的快速卷积实现原理。 4.学会调用MATLAB函数设计与实现FIR滤波器。 二、实验原理与方法 1.FIR滤波器的设计 2.窗函数设计法 3.几种常见的窗函数: (1)矩形窗(Rectangle Window) 调用格式:w=boxcar(n),根据长度n 产生一个矩形窗w。 (2)三角窗(Triangular Window) 调用格式:w=triang(

Safaearth的博客 2万+

Anylogic试用版密匙

#$%99dTMbLIj+hm/c9fn0suWlfQjdK9FzRH8oSbR Rbm3FEeONkF5mDLKHxhscEDBANDg4BSU2Oi6hErk TH/KzwiCtsM0jfD50uRsj60+gi9ifTlduwcpSr6a GtVSilXwF997xTVAoMLddqOzGQAbnSjBiJOBdm1Z 0QwwIEJynvYgckLfoEADzncIgNnJjYshWcmGh3s9 gTgyuQPlRBeTXfb+ZJPI1JGi4sAUljwdB53Df+AX SEf5FaIbih

qq_43939616的博客 8264

基于MATLAB的数字滤波器设计【FIR和IIR】

3 FIR滤波器设计3.1 FIR滤波器的Matlab设计 FIR结构中的延迟Z-1 在程序中实现是数据在存储器中的滑动,这对一个L阶的FIR数字滤波器来说,就是要求在存储器中开辟一个L个样本并进行乘累加运算。这在DSP中可以用两种方法来实现该缓冲区。对于线性缓冲区来说,每当DSP读入一个样本后都将此样本向后移动,读完最后一个样本后,最前面的样本(最老的)被推出缓冲区,并输入最新的样本至缓冲区顶部...

matlabBBQ的博客 6899

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取

基于Sentinel-2(哨兵2)遥感卫星的植被覆盖度提取 一、Sentinel-2简单介绍 哨兵-2系列卫星的主要载荷多光谱成像仪拥有13个谱段,从可见光到近红外再到短波红外,空间分辨率从10m到60m,能实现全所未有的陆地海洋监测水平。其幅宽高达290KM,且A、B双星组合,覆盖能力比美国Landsat8卫星强很多。目前哨兵-2A和哨兵-2B已经实现了5天的重访时间,即使在之前仅有单颗卫星时,...

weixin_44143671的博客 2万+

Workbench中基于nCode的列车转向架随机振动疲劳寿命预测方法

本文详细介绍了在ANSYS Workbench中结合nCode进行列车转向架随机振动疲劳寿命预测的完整方法。通过几何清理、模态分析、PSD载荷定义及随机振动求解,并重点阐述了nCode中Dirlik等疲劳算法的选择与应用,为轨道交通关键部件的可靠性设计提供了系统的仿真分析流程与工程实践指导。

weixin_29234423的博客 473

实验七 用 MATLAB 设计 FIR 数字滤波器

1、加深对窗函数法设计 FIR 数字滤波器的基本原理的理解。 2、学习用 Matlab 语言的窗函数法编写设计 FIR 数字滤波器的程序。 3、了解 Matlab 语言有关窗函数法设计 FIR 数字滤波器的常用函数用法。 4、掌握 FIR 滤波器的快速卷积实现原理。 5、不同滤波器的设计方法具有不同的优缺点,因此要全面、客观看待可能 面对或出现的问题。 要求:ωp=0.24 π ,Rp=0.1dB;描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。close;clear;As=60;% 为

weixin_73384981的博客 3859

#systemverilog# 之 event region 和 timeslot 仿真调度(三)Verdi 辅助查看

通过今天的学习,我们知道:event region 是event sequence 的全集。我们打开了 event region feature 也就开启了event sequence 的功能。

那么菜的博客 1365
上一篇: 数字信号处理(六)IIR数字滤波器的设计
下一篇: NLopt的windows环境下安装
枫2333
博客等级 码龄7年 69粉丝 22原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值