
窗函数的实现与分析.doc
24页目 录摘 要 I1.窗函数 12.窗函数的种类 22.1 基本窗函数 42.2 广义余弦窗 63.基于matlab的实现 93.1MATLAB软件简介 93.2各窗函数的图形 113.3各窗函数的幅频特性 134.频谱泄露 154.1频谱泄漏原理 154.2 产生机理 154.3窗函数的频谱泄漏的克制措施 164.4窗函数的选择 185.实验成果分析 196.心得体会 20参照文献 21摘 要现代图像、语声、数据通信对线性相位的规定是普遍的正是此因素,使得具有线性相位的FIR数字滤波器得到大力发展和广泛应用在实际进行数字信号解决时,往往需要把信号的观测时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作而这样操作后来,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行克制而要对频谱泄漏进行克制,可以通过窗函数加权克制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不持续限度的措施实现。
而在背面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列此外,在功率谱估计中也要遇到窗函数加权问题由此可见,窗函数加权技术在数字信号解决中的重要地位1.窗函数1.1基本概念在实际进行数字信号解决时,往往需要把信号的观测时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作而这样操作后来,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行克制而要对频谱泄漏进行克制,可以通过窗函数加权克制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不持续限度的措施实现而在背面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列此外,在功率谱估计中也要遇到窗函数加权问题窗函数的基本概念设x(n)是一种长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),得到N点序列xn(n),即xn(n) = x(n) w(n)在频域上则有 由此可见,窗函数w(n)不仅仅会影响原信号x(n)在时域上的波形,并且也会影响到频域内的形状。
1.2设计原理窗函数设计法的基本原理是用有限长单位脉冲响应序列逼近由于往往是无限长序列,并且是非因果的,因此用窗函数将截断,并进行加权解决,得到: 就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为 式中,N为所选窗函数的长度用窗函数法设计的滤波器性能取决于窗函数的类型及窗口长度N的取值设计过程中,要根据对阻带最小衰减和过渡带宽度的规定选择合适的窗函数类型和窗口长度N 2.窗函数的种类对时间序列作傅里叶变换时,事实上要作周期延拓,如果取长序列的一段进行解决,还要先作截断截断会引起频谱的泄漏问题,这是由于抽样后的离散序列与矩形截断序列相乘,在频域导致两者的频谱卷积形成的为了避免频谱泄露对成果的影响,在对非周期信号作时间截断时,除尽量增长截断序列的宽度外,也应选其频谱的旁瓣较小的截断窗函数,以减小泄漏的影响在信号解决中窗函数是一种除在给定区间之外取值均为0的实函数常用的窗函数诸多,例如矩形窗、三角窗、Hanning窗、Hamming窗、Parzen窗、Kaiser窗、Chebyshev窗、Tukey窗、Poisson窗、Caushy窗、Gaussian窗和Blackman窗等等,定义方式不同,性质也不同,可以根据实际需要来选择合适的截断窗函数减轻泄露问题。
窗函数在光谱分析、滤波器设计以及音频数据压缩等方面有广泛的应用在这里,应用窗函数对输入数据进行截断(时域加窗),从而得到要解决的数据及其长度表2.1 MATLAB窗函数 窗 窗 函 数矩形窗Boxcar巴特利特窗Barlett三角窗Triang布莱克曼窗Blackman海明窗Hamming汉宁窗Hanning凯塞窗Kaiser切比雪夫窗Chebwin表2.2多种窗函数的基本参数窗函数旁瓣峰值幅度/dB过渡带宽阻带最小衰减/dB矩形窗-134π-12三角形窗-258π/N-25汉宁窗-318π/N-44海明窗-418π/N-53不莱克曼窗-5712π/N-74凯塞窗(α=7.865)-5710π/N-80这样选定窗函数类型和长度N之后,求出单位脉冲响应,并按照上式求出与否满足规定,要进行演算一般在尾部加零使长度满足2的整多次幂,以便用FFT计算如果要观测细节,补零点数增多即可如果不满足规定,则要重新选择窗函数类型和长度N ,再次验算,直至满足规定如果规定线性相位特性,则还必须满足根据上式中的正、负号和长度N的奇偶性又将线性相位FIR滤波器提成四类要根据所设计的滤波特性对的选择其中一类,例如,要设计线性相位低通特性,可以选择这一类,而不能选择这一类。
主程序框图如图2.1所示其中幅度特性规定用dB表达开始读入窗口长度N计算hd(n)调用窗函数子程序求w(n)调用子程序(函数)计算H(k)=DFT[h(n)]调用绘图子程序(函数)绘制H(k)幅度相位曲线结束图2.1 主程序框图计算h(n)= hd(n) w(n)设画图时,用打印幅度特性第k点相应的频率为使曲线包络更接近的幅度特性曲线,DFT变换区间要选大些例如窗口长度N=33时,可通过在末尾补零的措施,使长度变为64,再进行64点DFT,则可以得到更精确的幅度衰减特性曲线2.1 基本窗函数数字信号解决领域中所用到的基本窗函数重要有:矩形窗函数、三角窗函数和巴特利特窗函数下面就对这些窗函数展开简介2.1.1 矩形窗函数矩形窗(Rectangular Window)函数的时域形式可以表达为: (公式2-1)它的频域特性为 公式(2-2)Boxcar函数:生成矩形窗调用方式w = boxcar (n):输入参数n是窗函数的长度;输出参数w是由窗函数的值构成的n阶向量从功能上讲,该函数又等价于w = ones(n,1)2.1.2 三角窗函数三角窗是最简朴的频谱函数为非负的一种窗函数。
三角窗函数的时域形式可以表达为:当n为奇数时 公式(2-3)当n为偶数时 公式(2-4)它的频域特性为: (公式2-5)三角窗函数的主瓣宽度为,比矩形窗函数的主瓣宽度增长了一倍,但是它的旁瓣宽度却小得多Triang函数:生成三角窗调用方式w = triang(n);输入参数n是窗函数的长度;输出参数w是由窗函数的值构成的n阶向量三角窗也是两个矩形窗的卷积三角窗函数的首尾两个数值一般是不为零的当n是偶数时,三角窗的傅立叶变换总是非负数2.2 广义余弦窗汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表达,这就是广义余弦窗这些窗都是广义余弦窗的特例,汉宁窗又被称为余弦平方窗或升余弦窗,海明窗又被称为改善的升余弦窗,而布莱克曼窗又被称为二阶升余弦窗采用这些窗可以有效地减少旁瓣的高度,但是同步会增长主瓣的宽度这些窗都是频率为0、2π/(N–1)和4π/(N–1)的余弦曲线的合成,其中为窗的长度一般采用下面的命令来生成这些窗: (公式2-8) (公式2-9)其中,A、B、C合用于自己定义的常数根据它们取值的不同,可以形成不同的窗函数,分别是:汉宁窗 A=0.5,B=0.5,C=0;海明窗 A=0.54,B=0.54,C=0;布莱克曼窗 A=0.5,B=0.5,C=0.08;2.2.1 汉宁窗函数 汉宁窗函数的时域形式可以表达为: (公式2-10) 它的频域特性为: (公式2-11)其中,为矩形窗函数的幅度频率特性函数。
汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增长了1倍,为8π/Nhanning函数:生成汉宁窗调用方式(1) w = hanning(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值构成的n阶向量注意:此函数不返回是零点的窗函数的首尾两个元素 (2) w = hanning(n,'symmetric'):与上面相类似3) w = hanning(n,'periodic'):此函数返回涉及为零点的窗函数的首尾两个元素2.2.2 海明窗函数 海明窗函数的时域形式可以表达为 (公式2-12) 它的频域特性为 (公式2-13)其中,为矩形窗函数的幅度频率特性函数海明窗函数的最大旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是同样大的Hamming函数:生成海明窗调用方式(1) w = hamming(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值构成的n阶向量2) w = hamming(n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric。
2.2.3 凯塞窗上面所讨论的几种窗函数,在获得旁瓣克制的同步却增长了主瓣的宽度而凯塞窗定义了一组可调的窗函数,它是由零阶贝塞尔函数构成的,其主瓣能量和旁瓣能量的比例是近乎最大的并且,这种窗函数可以在主瓣宽度和旁瓣高度之间自由选择它们的比重,使顾客的设计变得非常灵活凯塞窗函数的时域形式可表达为 (公式2-16)其中,是第1类变形零阶贝塞尔函数,是窗函数的形状参数,由下式拟定: (公式2-17)其中,为凯塞窗函数的主瓣值和旁瓣值之间的差值(dB)变化β的取值,可以对主瓣宽度和旁瓣衰减进行自由选择β的值越大,窗函数频谱的旁瓣值就越小,而其主瓣宽度就越宽Kaiser函数:生成凯塞窗调用方式w = kaiser(n,beta):输入参数n是窗函数的长度;输入参数beta用于控制旁瓣的高度;输出参数w是由窗函数的值构成的n阶向量n一定期,beta越大,其频谱的旁瓣就越小,但主瓣宽度相应的增长;当beta一定期,n发生变化,其旁瓣高度不会发生变化2.2.4 切比雪夫窗对于给定的旁瓣高度,切比雪夫窗的主瓣宽度最小这是由于它的旁瓣具有相似的高度,也就是具有等波纹性切比雪夫窗在边沿的采样点有尖峰。
Chebwin函数:生成切比雪夫窗调用方式w = chebwin(n,r):输入参数n是窗函数的长度;输入参数r用于控制旁瓣的峰值低于主瓣的分贝数3.基于matlab的实现3.1matlab软件简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高档技术计算语言和交互式环境,重要涉及MATLAB。












