文章目录
- 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ω)在均方误差最小下的最优逼近
典型窗函数及其特性
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
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ω)
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π)]
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种窗函数的频谱
窗名称 | 近似过渡带宽 | 精确过渡带宽 | 最小阻带衰减 |
---|---|---|---|
矩形窗 | 4π/N4\pi/N4π/N | 1.8π/N1.8\pi/N1.8π/N | 21dB |
三角窗 | 8π/N8\pi/N8π/N | 6.1π/N6.1\pi/N6.1π/N | 25dB |
汉宁窗 | 8π/N8\pi/N8π/N | 6.2π/N6.2\pi/N6.2π/N | 44dB |
汉明窗 | 8π/N8\pi/N8π/N | 6.6π/N6.6\pi/N6.6π/N | 51dB |
布莱克曼窗 | 12π/N12\pi/N12π/N | 11π/N11\pi/N11π/N | 74dB |
窗函数法设计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=偶数