数字信号处理数字信号处理(Digital Signal Processing) 国家电工电子实验示范中心国家电工电子实验示范中心 数字信号处理课程组数字信号处理课程组第7章 FIR 数字滤波器设计7.1 FIR DF 设计的窗函数法7.2 窗函数7.3 FIR DF 设计的频率抽样法7.4 FIR DF 设计的切比雪夫最佳一致逼近法7.5 几种简单形式的滤波器7.6 简单整系数滤波器7.7 差分滤波器IIR数字滤波器:有极点,也有零点,因此可以借用经典的连续滤波器的设计方法,且取得非常好的效果,如好的衰减特性,准确的边缘频率由于FIR数字滤波器只有零点而没有极点,所以没办法借用连续滤波器的设计方法其思路是: 直接从频域出发,即以某种准则逼近理想的频率特性,且保证滤波器具有线性相位7.1 Fourier 级数法(窗函数法)1. 由理想的频率响应 得到理的 ;2. 由 得到因果、 有限长的单位抽样响应 ;3. 对 加窗得到较好的频率响应。
理想频率响应一、思路与方法一、思路与方法::设理想低通滤波器的幅频为1,相频为零:则:特点: 无限长 非因果 偶对称解决方法: 截短, 移位 保留即:隐含着使用了窗函数于是:注意: H(Z) 是因果的,且是线性相位的,即即事先给一线性相位为了省去每次的移位,可以令: 在通带内这样:于是:使用了矩形窗上式的的表达式及设计 的思路可推广到高通、带阻及带通滤波器,也可推广到其它特殊类型的滤波器实际上,给定一个 ,只要能积分得到 ,即可由截短、移位的方法得到因果的、且具有线性相位的FIR滤波器 高通:令:相当于用一个截止频率在 处的低通滤波器(实际上是全通滤波器)减去一个截止频率在 处的低通滤波器令:相当于用一个截止频率在 处的低通滤波器减去一个截止频率在 处的低通滤波器带通:令: :窗函数,自然截短即是矩形窗。
当然也可以用其它形式的窗函数相当于带阻:例1.设计低通 FIR DF, 令归一化截止频率 =0.125, M=10,20,40,用矩形窗截短结果如右图接上例:M=10分别用矩形窗和Hamming 窗使用Hamming 窗后,阻带衰减变好,但过渡带变宽例: 理想差分器及其设计令:理想差分器的频率特性:理想微分器的频率特性:奇对称,纯虚函数理想相频特性第2类FIR滤波器实际相频特性有关各种差分器的性能,本 章将继续讨论幅频:1 矩形窗2 哈明窗例: 设计 Hilbert 变换器 第2类FIR滤波器思考:能否用上一章的方法设计差分器和Hilbert变换器?优点:1. 无稳定性问题; 2. 容易做到线性相位; 3. 可以设计各种特殊类型的滤波器; 4. 方法特别简单缺点:1. 不易控制边缘频率; 2. 幅频性能不理想; 3. 较长; 二、 FIR DF 设计的窗函数法的特点:改进:1. 使用其它类型的窗函数; 2. 改进设计方法。
三、关于对 截短的讨论误差曲线误差能量请自己导出此式什么情况下 为最小最小所以,有限项傅立叶级数是在最小平方意义上对原信号的逼近傅立叶级数是正交变换,这也体现了正交变换的性质窗函数法周期信号展开为傅里叶级数傅里叶系数傅里叶级数法同一事情不同名称7.2 窗函数窗函数的使用在数字信号处理中是不可避免的数据、频谱、自相关函数等都需要截短对窗函数提出那几方面的要求?关键是要搞清楚使用窗函数后所产生的影响:一个域相乘,在另一个域是卷积矩形窗2. 边瓣最大峰值 ( dB) 3. 边瓣谱峰衰减速度 ( dB/oct)越小越好!越小越好!越大越好!对窗函数的技术要求:1. 3 dB 带宽 :主瓣归一化幅度降到- 3 dB 时的带宽;或直接用 令 则 的单位为 ;常用窗函数:1. 矩形窗2. 三角窗Bartlett窗3.汉宁窗Hanning4.汉明窗Hamming窗函数窗函数7.3 FIR DF设计的频率抽样法 窗函数法:给定连续的理想的 ,用得到因果的、具有线性相位的 FIR DF逼近离散化直接赋值计算更容易思考:相等?滤波器已设计出可指定:如何指定转移函数、频率响应和给定的 的关系:用DFT系数作为权函数来表示设计出的有何特点原抽样再抽样关系?用插值的方法得到所要的滤波器:插值函数权重线性相位应为实数所以:如何指定 为偶数: 为奇数:其它赋值方法见书。
当然,阻带内应指定为零另外,为了得到好的幅频响应,在1和0之间加过渡点,如0.5 7.4 用Chebyshev 最佳一致逼近设计 FIR DF 7.4.1 最佳一致逼近定理 7.4.2 利用最佳一致逼近理论设计 FIR DF 7.4.3 关于误差函数的极值特性 7.4.4 FIR DF 的四种表示形式 7.4.5 设计举例 7.4.6 滤波器阶次估计上述两种方法(窗函数法和频率抽样法)设计的 FIR DF 的频率响应都不理想,即通带不够平,阻带衰减不够大,过渡带过宽,频率边缘不能精确指定因此我们要寻找新的设计方法此方法即是Chebyshev 最佳一致逼近 法该方法在数字信号处理中占有重要的定位,是设计 FIR DF 最理想的方法但是,该方法的原理稍为复杂给定理想的 , 设计 ,使 是对 的“最佳”逼近1. 最小平方逼近:着眼积分区间内整体误差最小傅立叶级数法即是这一种对函数 f(x) 逼近的方法:目标:2.插值法:寻找 阶多项式 ,使其3. 在 个点 上满足:频率抽样方法3. 最佳一致逼近:寻找 ,使误差在区间 [a,b] 均匀一致,并使误差的极大值达到最小。
Chebyshev最佳一致逼近理论解决了 的存在性、唯一性及构造方法等问题将最佳一致逼近理论应用于FIR DF的设计,是数学和信号处理理论相结合的又一典型范例该方法可以设计出性能优良的FIR DF,是FIR设计的主要方法该方法又称McClellan----Parks 方法一、切比雪夫最佳一致逼近定理在 阶多项式的集合中,寻找多项式 使其相对其它所有的多项式 对 的偏差为最小:最小最大原理交错点组原理:令:误差最大值误差曲线 是 最佳一致逼近的充要条件是, 在 上至少存在 个交错点 使得:极值点交错点所以:是 的极值点,它们构成了一个“交错点 组” 什么样的函数(或多项式)可以充当 误差曲线 Chebyshev 多项式: 在区间 [-1,1]上存在 个点:轮流使 取极值+1,-1。
是 的 阶多项式,最高项系数是 ,在所有阶多项式的集合中, 和 0 的偏差为最小因此,可用 为误差多项式 : 个极值点交错点组定 理要求:个极值点二、利用最佳一致逼近理论设计 FIR DF理想滤波器要设计的滤波器四种情况下的“滤波器增益” 都是实函数,也有四种表示形式其一是:线性相位FIR滤波器有四种形式:我们用 逼近理想滤波器显然,若能求出 ,则滤波器也就设计出来了用一致逼近目标使误差曲线寻找的最大值为最小,并呈现交错定义加权函数:在设计滤波器时,对通带和阻带往往有不同的要求,如通带要求特别平,这是需要牺牲阻带;反之,要想阻带衰减特别大,则需要牺牲通带实现方法:给以不同的加权需要离散化由交错点组定理:注意,将频率分成了 个离散的点分点在通带和阻带上,过渡带不考虑目的是取得 个极值点写成矩阵形式方阵,可唯一地求出 McClellan. J.H & Parks. T. W 等于70年代初提出用数值分析中的Remez算法,靠一次次的迭代来求解最优的系数 及 。
从而达到滤波器设计的目的 该方法不但可以用来设计低通、高通、带通、带阻等经典滤波器,而且可以用来设计差分滤波器,Hilbert变换器不但可以给出好的幅频特性、线性相位,而且可以给出较为准确定边缘频率数字信号处理中最有名的算法之一!Step1. 先在通带、阻带频率轴上等间隔取 M+2个频率点 ,计算出 它是相对第一次指定的交错点组产生的误差A.求出 后,利用插值公式,在不知 的情况下求出 B.当然,初次求出的 肯定不是最优的!将求出的 代入C.可求出误差函数 如果第一次迭代即是最优,那么 应是 的极值点当然,一次迭代是不够的完成第一次迭代!Step2. 检查是否有 的频率点(肯定有)将出现这种情况的频率点和原来指定的频率点 中相距最近的点相交换(注意:这样的点可能不止一个),这样,就得到一组新的频率点组 ,当然,它们不再是原频率区间的等分。
Step3. 将新的频率点组再重复步骤2,又可得到一组新的交错点组:代入公式A. 求出新的再代入公式求出新的B.再代入公式求出新的C.重复了步骤 1如此重复迭代,每一次都是把新的局部极值点当作新的交错点组,所以,每一次的 都是递增的,最后收敛到自己的上限再迭代一次, 也不会再增加,频率点组也不会再移动,这时的 即是对 的最佳一致逼近Step4. 将最优的 配上线性相位,作傅 立叶反变换,即可得所设计滤波器的 通带内的峰值偏差 最佳一致逼近是在通带与阻带内进行的,过渡带没有考虑迭代步骤 是阻带峰值偏差 ;三、关于误差函数的极值特性(见书)四、FIR DF 的四种表示形式把上述四种形式稍作改造,得到如下的统一形式,目的是便于编程:例1: 设计低通 FIR DF:调整通带、阻带的加权及滤波器的长度设计结果五、设计举例参数调整对滤波器性能的影响:例2: 设计多带滤波器,抽样频率500Hz, 在 50Hz、 100Hz 及150Hz处陷波。
通带加权为8,阻带为1-17dB通带、阻带加权都是1-25dB六、阶次估计设计滤波器之前,滤波器的长度(即阶次)是未知道显然,要求:通带越平,阻带衰减越大,过渡带越窄,滤波器的阶次越高通带纹波:阻带纹波经验公式另一估计公式:估计出的阶次稍低例如,对例1的第一种情况:求出:和原来给定的相同7.5 几种简单形式的滤波器一、平均滤波器二、平滑滤波器三、梳状滤波器 这一类滤波器性能不是很好,但滤波器简单,有时很实用,有的具有一些特殊的用途信噪比(SNR)与噪声减少比(NRR)信噪比:观察信号信号噪声为了减少噪声,将 通过一个滤波器噪声减少比(Noise Reduction Ration, NRR):越小越好!可以证明:一、平均滤波器 点平均器IIR系统可以求出:可见 N 足够大,即可就可以获得足够小的NRR但是, N 过大会使滤波器具有过大的延迟: 群延迟=(N-1)/2而且会使其主瓣的单边的带宽大大降低,这就有可能在滤波时使有用的信号 s(n) 也受到损失因此,在平均器中,N 不宜取得过大二、平滑滤波器Savitzky-Golay平滑器:基于多项式拟合的方法,具体推导过程见教材。
5点2次(抛物线)拟合:7点3次拟合:在NRR和阶次N之间取得折中MATLAB文件: sgolay.m三、梳状滤波器作用:去除周期性的噪声,或是增强周期 性的信号分量 7.6 建立在极零抵消基础上的 简单整系数的滤波器 对信号作实时滤波处理时,有时对滤波器的性能要求并不很高,但要求计算速度快,滤波器的设计也应简单易行,因而希望滤波器的系数为整数特别是当用汇编语言编写程序时,更希望如此采用极零抵消的方法,可以设计出简单整系数的低通、高通、带通和带阻滤波器1. 低通单位圆上均匀分布M个零点设置一极点,抵消掉z=1处零点M点平均器2. 高通单位圆上均匀分布M个零点设置一极点,抵消掉z=-1处零点 上述低通和高通滤波器的系数都是整系数(系数1/N可最后单独处理),如果认为幅频响应不满意,可以取滤波器系数仍为整数3. 带通实际应用为保证分母取整数,要求取整数因此: 在要求整系数的情况下,对带通滤波器,其通带的中心频率收到限制4. 带阻设计方法幅频: 全通幅频-带通幅频相频: 配置相频例令 ,设计50Hz陷波器,中心频率范围在解:取由于因此增加一对共轭极点:150Hz现在需要确定M:具有相同相位7.7 低阶低通差分滤波器理想微分器:理想差分器:为了防止在高频端将噪声放大,取:低通差分器:差分器的一般形式:差分器的抽样响应:所以,差分器是奇对称的。
现在的任务是确定系数两点中心差分:“最佳”差分器逼近误差:得到最佳系数得到最佳通带最佳通带:可求出:M=2可求出:M=3M=2 和 3 时“最佳”差分器的幅频特性: 但是,上述“最佳”差分器的系数全是小数,我们希望得到整系数实际上,人们从不同的角度,已给出了不同形式的整系数差分器后来,人们还导出了“次最佳”的整系数差分器1.单纯 M 次差分;2.牛顿-柯斯特差分;3.Lanczos差分(多项式拟合);4.平滑化差分;5.最佳差分;整系数比较参数:7.8 滤波器设计小结IIR 滤波器的优点: 1. 好的通带与阻带衰减;准确的通带与阻带边缘频率; 2. 滤波时需要的计算量较少缺点: 不具有线性相位,有可能存在稳定性问题FIR 滤波器的优点: 1. 可取得线性相位; 2. 无稳定性问题;缺点: 滤波时需要的计算量较少FIR窗函数法频率抽样法一致逼近法简单平均简单平滑设计方法简单,性能不够好性能非常好简单,实用,性能不够好IIR梳状滤波器极零抵消滤波器特殊用途,周期性简单实用,速度快产生窗函数的文件有八个:1. bartlett(三角窗); 2.2. blackman(布莱克曼窗) ; 3.3. boxcar(矩形窗); 4. hamming(哈明窗); 5. hanning(汉宁窗); 6. triang(三角窗);7. chebwin(切比雪夫窗); 8 .kaiser(凯赛窗); 两端为零两端不为零调用方式都非常简单请见help文件稍为复杂9.fir1.m 用“窗函数法”设计FIR DF。
调用格式: (1)b = fir1(N,Wn); (2) b = fir1(N,Wn,‘high’); (3) b = fir1(N,Wn, ‘stop’); N:阶次,滤波器长度为N+1; Wn:通带截止频率,其值在0~1之间,1对应 Fs/2b: 滤波器系数对格式(对格式(1),若),若Wn为标量,则设计低通滤波器,若为标量,则设计低通滤波器,若Wn是是1×2的向量,则用来设计带通滤波器,若的向量,则用来设计带通滤波器,若Wn是是1×L的向量,则可用来设计的向量,则可用来设计L带滤波器这时,格式带滤波器这时,格式((1)要改为)要改为: b = fir1(N,Wn, 'DC-1'), 或或 b = fir1(N,Wn, 'DC-0')前者保证第一个带为通带,后者保证第一个带为阻带前者保证第一个带为通带,后者保证第一个带为阻带 格式(格式(2)用来设计高通滤波器,)用来设计高通滤波器, 格式(格式(3)用来设计带阻滤波器。
用来设计带阻滤波器在在上上述述所所有有格格式式中中,,若若不不指指定定窗窗函函数数的的类类型型,,fir1自自动选择动选择Hamming窗窗10.fir2.m 本文件采用“窗函数法”设计具有任意幅 频相应的FIR 数字滤波器其调用格式是: b = fir1(N, F, M); F是频率向量,其值在0~1之间,M是和F相对应 的所希望的幅频相应如同fir1, 缺省时自动选用 Hamming窗例 :设计一多带滤波器,要求频率在0.2~0.3, 0.6~0.8 之间为1,其余处为零 设计结果如下:N=30,90时幅频响应响应及理想幅频响应;N=30N=9011. remez.m 设计Chebyshev最佳一致逼近FIR滤波器、Hilbert变换器和差分器调用格式是: (1) b=remez(N, F, A); (2) b=remez(N, F, A, W); (3)b=remez(N,F,A,W,‘Hilbert’); (4) b=remez(N, F, A,W, ‘'differentiator')N是给定的滤波器的阶次,b是设计的滤波器的系数,其长度为N+1;F是频率向量,A是对应F的各频段上的理想幅频响应,W是各频段上的加权向量。
F、A及W的指定方式和例7.4.1和7.4.2所讨论过的一样,唯一的差别是F的范围为0~1,而非~0~0.5, 1对应抽样频率的一半需要指出的是,若b的长度为偶数,设计高通和带阻滤波器时有可能出现错误,因此,最好保证b的长度为奇数,也即N应为偶数例1: 设计低通 FIR DF:b=remez(N, F, A, W)F = (0, 0.6, 0.7, 1)A = (1, 0)W = (1, 10)12..remezord.m 本本文文件件用用来来确确定定在在用用Chebyshev最最佳佳一一致致逼逼近近设设计计FIR滤滤波波器器时时所所需需要要的的滤滤波波器器阶阶次次其其调调用用格式是:格式是: [N, Fo, Ao, W] = remezord(F, A, DEV, Fs)F、、A的的含含意意同同文文件件remez,,DEV是是通通带带和和阻阻带带上上的的偏偏差差;;输输出出的的是是适适合合要要求求的的滤滤波波器器阶阶次次N、、频频率率向向量量Fo、、幅幅度度向向量量Ao和和加加权权向向量量W若若设设计计者者事事先先不不能能确确定定要要设设计计的的滤滤波波器器的的阶阶次次,,那那么么,,调调用用remezord后后,,就就可可利利用用这这一一族族参参数数调调用用remez, 即即 b=remez(N, Fo, Ao, W),,从从而而设设计计出出所所需需要要滤滤波波器器。
因因此此,,remez和和remezord常常结结合合起起来来使使用用需需要要说说明明的的是是,,remezord给给出出的的阶阶次次N有有可可能能偏偏低低,,这这时时适适当当增增加加N即即可可;;另另外外,,最最好好判判断断一一下下,,若若N为为奇奇数数,,就就令令其其加加一一,,使使其其变变为为偶偶数数,,这这样样b的的长长度度为为奇奇数 13. firls.m 用用最最小小平平方方法法设设计计线线性性相相位位FIR滤滤波波器器,,可可设计任意给定的理想幅频响应;设计任意给定的理想幅频响应;14. fircls.m用用带带约约束束的的最最小小平平方方法法设设计计线线性性相相位位FIR滤滤波器,可设计任意给定的理想幅频响应;波器,可设计任意给定的理想幅频响应;15. fircls1.m 用用带带约约束束的的最最小小平平方方方方法法设设计计线线性性相相位位FIR低通和高通滤波器低通和高通滤波器16. sgolay.m 用用来来设设计计 Savitzky-Golay FIR 平平滑滑滤滤波波器器,,其原理见其原理见9.1.1节节 17. firrcos.m 用用来来设设计计低低通通线线性性相相位位FIR滤滤波波器器,,其其过过渡带为余弦函数形状。