文章目录
FIR滤波器线性相位FIR滤波器的条件及特点线性相位FIR滤波器线性相位条件线性相位FIR滤波器幅度特性类型1:h(n)=h(N-n-1),N=奇数类型2:h(n)=h(N-n-1),N=偶数类型3:h(n)=-h(N-n-1),N=奇数类型4:h(n)=-h(N-n-1),N=偶数奇偶对称的单位脉冲响应FIR滤波器的窗函数设计法窗函数设计法的原理典型窗函数及其特性窗函数法设计FIR滤波器步骤FIR滤波器的频率采样设计法频率采样法的原理FIR滤波器
滤波器的单位脉冲响应h(n)是有限长序列,N-1阶FIR数字滤波器的系统函数为:
H(z)=∑n=0N−1h(n)z−nH(z)=\sum_{n=0}^{N-1}h(n)z^{-n} H(z)=n=0∑N−1h(n)z−n
稳定和线性相位特性是FIR滤波器最突出的优点
线性相位FIR滤波器的条件及特点
线性相位FIR滤波器
对于长度为N的h(n),频率响应函数为:
H(ejω)=∑n=0N−1h(n)e−jωn=Hg(ω)ejθ(ω)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−1h(n)e−jωn=Hg(ω)ejθ(ω)
式中,Hg(ω)H_g(\omega)Hg(ω)为幅度特性,为ω\omegaω的实函数,可能取负值,不同于∣H(ejω)∣|H(e^{j\omega})|∣H(ejω)∣(只为正值);θ(ω)\theta(\omega)θ(ω)为相位特性
线性相位条件
H(ejω)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取奇数和偶数时,对Hg(ω)H_g(\omega)Hg(ω)的约束不同,因此,对于两类线性相位特性,分四种情况讨论其幅度特性的特点
类型1:h(n)=h(N-n-1),N=奇数
推导其频率响应:
令m=N-1-n,有:
H(ejω)=∑n=0(N−3)/2h(n)e−jωn+h(N−12)⋅e−j(N−1)ω/2+∑m=0(N−3)/2h(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)/2h(n)e−jωn+h(2N−1)⋅e−j(N−1)ω/2+m=0∑(N−3)/2h(N−1−m)e−j(N−1−m)ω
利用h(n)的对称性:h(N-1-m)=h(m),并提取e−j(N−1)ω/2e^{-j(N-1)\omega /2}e−j(N−1)ω/2项
H(ejω)=∑n=0(N−3)/2h(n)e−jωn+h(N−12)⋅e−j(N−1)ω/2+∑m=0(N−3)/2h(N−1−m)e−j(N−1−m)ω=e−j(N−1)ω/2[∑m=0(N−3)/2h(m)e−jωmej(N−1)ω/2+∑m=0(N−3)/2h(m)ejωme−j(N−1)ω/2+h(N−12)]=e−j(N−1)ω/2[2∑m=0(N−3)/2h(m)cos[(N−12−m)ω]+h(N−12)]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)/2h(n)e−jωn+h(2N−1)⋅e−j(N−1)ω/2+m=0∑(N−3)/2h(N−1−m)e−j(N−1−m)ω=e−j(N−1)ω/2[m=0∑(N−3)/2h(m)e−jωmej(N−1)ω/2+m=0∑(N−3)/2h(m)ejωme−j(N−1)ω/2+h(2N−1)]=e−j(N−1)ω/2[2m=0∑(N−3)/2h(m)cos[(2N−1−m)ω]+h(2N−1)]
再令m=(N-1)/2-n,得:
H(ejω)=e−j(N−1)ω/2[2∑n=1(N−1)/2h(N−12−n)cos(ωn)+h(N−12)]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)/2h(2N−1−n)cos(ωn)+h(2N−1)]
令
a(n)={h(N−12)n=02h(N−12−n)n=1,2,...,(N−1)/2a(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(ejω)=e−j(N−1)ω/2∑n=0(N−1)/2a(n)cos(ω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)/2a(n)cos(ωn)
对比:H(ejω)=Hg(ω)ejθ(ω)H(e^{j\omega})=H_g(\omega)e^{j\theta(\omega)}H(ejω)=Hg(ω)ejθ(ω)
因此:
θ(ω)=−N−12ω,Hg(ω)=∑n=0(N−1)/2a(n)cos(ω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)/2a(n)cos(ωn)
(上图中,低通滤波器满足在ω=0\omega=0ω=0对称,高通滤波器满足在ω=π\omega=\piω=π对称,带阻滤波器满足在ω=0和ω=π\omega=0和\omega=\piω=0和ω=π均对称,带通滤波器无要求)
由于Hg(ω)中cosωnH_g(\omega)中cos\omega nHg(ω)中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(ejω)=e−jωτ∑n=0(N−1)/22h(n)cos[ω(n−τ)],式中,τ=(N−1)/2H(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)/22h(n)cos[ω(n−τ)],式中,τ=(N−1)/2
因此
Hg(ω)=∑n=0(N−1)/22h(n)cos[ω(n−τ)]H_g(\omega)=\sum_{n=0}^{(N-1)/2}2h(n)cos[\omega( n-\tau)] Hg(ω)=n=0∑(N−1)/22h(n)cos[ω(n−τ)]
当ω=π\omega=\piω=π时,cos[ω(n−τ)]=cos[π(n−N2)+π2]=−sin[π(n−N2)]=0(N2为整数)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为整数)
所以Hg(π)=0H_g(\pi)=0Hg(π)=0,说明Hg(ω)H_g(\omega)Hg(ω)关于ω=π\omega=\piω=π奇对称,当ω=2π\omega=2\piω=2π时,Hg(ω)H_g(\omega)Hg(ω)关于ω=0和ω=2π\omega=0和\omega=2\piω=0和ω=2π偶对称。因此类型2不能实现高通和带阻滤波器
类型3:h(n)=-h(N-n-1),N=奇数
Hg(ω)=∑n=0(N−1)/22h(n)sin[ω(n−τ)]H_g(\omega)=\sum_{n=0}^{(N-1)/2}2h(n)sin[\omega(n-\tau)] Hg(ω)=n=0∑(N−1)/22h(n)sin[ω(n−τ)]
式中,N为奇数,τ=(N−1)/2\tau=(N-1)/2τ=(N−1)/2是整数,说明Hg(ω)H_g(\omega)Hg(ω)关于ω=0,ω=π和ω=2π\omega=0,\omega=\pi和\omega=2\piω=0,ω=π和ω=2π奇对称,因此类型3只能用来实现带通滤波器
类型4:h(n)=-h(N-n-1),N=偶数
Hg(ω)=∑n=0(N−1)/22h(n)sin[ω(n−τ)]H_g(\omega)=\sum_{n=0}^{(N-1)/2}2h(n)sin[\omega(n-\tau)] Hg(ω)=n=0∑(N−1)/22h(n)sin[ω(n−τ)]
式中,N为奇数,τ=(N−1)/2\tau=(N-1)/2τ=(N−1)/2
当ω=0和ω=2π时,sin[ω(n−τ)]=0当\omega=0和\omega=2\pi时,sin[\omega(n-\tau)]=0当ω=0和ω=2π时,sin[ω(n−τ)]=0
当ω=π时,sin[ω(n−τ)]取得最大值当\omega=\pi时,sin[\omega(n-\tau)]取得最大值当ω=π时,sin[ω(n−τ)]取得最大值
说明,Hg(ω)H_g(\omega)Hg(ω)关于ω=0和ω=2π\omega=0和\omega=2\piω=0和ω=2π奇对称,关于ω=π\omega=\piω=π偶对称,因此类型4不能用来实现低通和带阻滤波器
奇偶对称的单位脉冲响应
偶对称单位脉冲响应:
奇对称单位脉冲响应:
FIR滤波器的窗函数设计法
窗函数设计法的原理
如果滤波器的单位取样响应hd(n)h_d(n)hd(n)无限长,要用FIR滤波器实现,就必须截断无限长的序列,以得到有限长的单位取样响应h(n)
为了构造一个长度为N的线性相位滤波器,由hd(n)h_d(n)hd(n)截取h(n)时,必须保证截取的一段对(N−1)/2(N-1)/2(N−1)/2对称
将h(n)表示为hd(n)h_d(n)hd(n)和窗函数w(n)w(n)w(n)的乘积:
h(n)=w(n)⋅hd(n)h(n)=w(n)\cdot h_d(n)h(n)=w(n)⋅hd(n)
当w(n)的取值区间在0至N-1时,截断后滤波器的频率响应为有限项级数和:
H(ejω)=∑n=0N−1h(n)e−jw=∑n=−∞+∞w(n)⋅hd(n)⋅e−jωnH(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−1h(n)e−jw=n=−∞∑+∞w(n)⋅hd(n)⋅e−jωn
H(ejω)是Hd(ejω)H(e^{j\omega})是H_d(e^{j\omega})H(ejω)是Hd(ejω)在均方误差最小下的最优逼近
典型窗函数及其特性
1、矩形窗
w(n)=RN(n)={10≤n≤N−10其他WR(ejω)=∑n=0N−1e−jωn=sin(ωN/2)sin(ω/2)e−jω(N−12)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)={100≤n≤N−1其他WR(ejω)=n=0∑N−1e−jωn=sin(ω/2)sin(ωN/2)e−jω(2N−1)
2、三角窗(又称Bartlett窗)
w(n)={2nNn=0,1,...,N2w(N−n)n=N2,...,N−1或w(n)=1−2∣n∣N,n=−N2,...,0,...N2w(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)={N2nw(N−n)n=0,1,...,2Nn=2N,...,N−1或w(n)=1−N2∣n∣,n=−2N,...,0,...2N
W(ejω)=2Ne−jN−12ω[sin(ωN4)sin(ω2)]2W(e^{j\omega})=\frac2Ne^{-j\frac{N-1}{2}\omega}[\frac{sin(\frac{\omega N}4)}{sin(\frac\omega2)}]^2 W(ejω)=N2e−j2N−1ω[sin(2ω)sin(4ωN)]2
3、汉宁(Hanning)窗(升余弦窗)
w(n)=0.5−0.5cos(2πnN),n=0,1,...,N−1或w(n)=0.5+0.5cos(2πnN),n=−N2,...,0,...,N2w(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(ejω)=0.5U(ω)+0.25[U(ω−2πN)+U(ω+2πN)],式中U(ω)=ejω/2sin(ωN2)/sin(ω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.46cos(2πnN),n=0,1,...,N−1或w(n)=0.54+0.46cos(2πnN),n=−N2,...,0,...,N2w(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(ejω)=0.54U(ω)+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.5cos(2πnN)+0.08cos(4πnN),n=0,1,...,N−1或w(n)=0.42−0.5cos(2πnN)+0.08cos(4πnN),n=−N2,...,0,...,N2w(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种窗函数的频谱
窗函数法设计FIR滤波器步骤
1、根据所需设计的数字滤波器类型(低通,高通,带通,带阻),确定线性相位数字滤波器类型(I,II,III,IV)(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、确定理想数字滤波器的频率响应函数:
Hd(ejω)=Hd(ω)ejθ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、计算理想数字滤波器的单位脉冲响应
hd(n)=12π∫−ππHd(ejω)ejωndω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)=hd(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≥MN\geq MN≥M点等间隔采样值X(k)X(k)X(k)准确的恢复原信号x(n)x(n)x(n),即x(n)=xN(n)=IDFT[X(k)]x(n)=x_N(n)=IDFT[X(k)]x(n)=xN(n)=IDFT[X(k)]。设待设计的滤波器的传输函数用Hd(ejω)H_d(e^{j\omega})Hd(ejω)表示,对它在ω=0∽2π\omega=0 \backsim2\piω=0∽2π之间等间隔采样N点,得到Hd(k)H_d(k)Hd(k):
Hd(k)=Hd(ejω)∣ω=2πNk,k=0,1,2,...,N−1H_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点Hd(k)H_d(k)Hd(k)进行IDFT,得到h(n)h(n)h(n),即为所设计的滤波器的单位取样响应:
h(n)=1N∑k=0N−1Hd(k)ej2πNkn,k=0,1,2,...,N−1h(n)=\frac1N\sum_{k=0}^{N-1}H_d(k)e^{j\frac{2\pi}Nkn},k=0,1,2,...,N-1 h(n)=N1k=0∑N−1Hd(k)ejN2πkn,k=0,1,2,...,N−1
根据频域采样定理,其系统函数H(z)H(z)H(z)可写成:
H(z)=∑n=0N−1h(n)z−n=1−z−NN∑k=0N−1Hd(k)1−ej2πNkz−1H(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−1h(n)z−n=N1−z−Nk=0∑N−11−ejN2πkz−1Hd(k)
用频率采样法设计线性相位滤波器的条件:
Hd(k)=Hg(k)ejθ(k)θ(k)=−N−1NπkHg(k)=Hg(N−k),N=奇数Hg(k)=−Hg(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=偶数