用海明窗函数法设计数字FIR带阻滤波器(共17页).doc
精选优质文档-倾情为你奉上信号与系统课程设计论文题 目 用海明窗函数法设计数字FIR带阻滤波器 学 院 通信与电子工程学院 专业班级 电子085班 学生姓名 朱彦春 指导教师 苗凤娟 年 月 日专心-专注-专业摘 要在用海明窗窗函数法设计FIR数字滤波器时,设计的优化主要是通过调整窗函数来进行的。文中提出一种新的优化算法,其基本思想是在窗函数和滤波器阶数不变的情况下,通过迭代运算寻找一个最佳的频率响应函数,对此频率响应函数的傅里叶反变换进行加窗所设计出的滤波器的频率响应相对于理想频率响应的逼近误差最小。关键词:数字滤波器;窗函数法;优化算法;逼近误差AbstractIn the window with hamming window function method design FIR digital filters, design optimization is mainly by adjusting the window function, This paper presents a new optimization algorithm, the basic idea is in window function and filter order number under the condition of invariable, through the iterative operation looking for an optimal frequency response function, to this frequency response function of Fourier inverse transform add window place that the design of the frequency response of the filter relative to the ideal frequency response approximation error smallest.Keywords: Digital filters; Window function method; Optimization algorithm; Approximation error目 录第1章 绪论1.1 概述数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。现如今随着电子设备工作频率范围的不断扩大,电磁干扰也越来也严重,接收机接收到的信号也越来越复杂。为了得到所需要频率的信号,就需要对接收到的信号进行过滤,从而得到所需频率段的信号,这就是滤波器的工作原理。对于传统的滤波器而言,如果滤波器的输入,输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,这样的滤波器定义为数字滤波器。它通过对采样数据信号进行数学运算来达到频域滤波的目的.。1.2 窗函数的定义为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。 信号截短以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截短以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截短,就不可避免地引起混叠,因此信号截短必然导致一些误差。 泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截短信号。1.2.1 窗函数应用不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的截短产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。(矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高)1.2.2 窗函数的选择对于窗函数的选择,应考虑被分析信号的性质与处理要求。如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比,故此设计选用海明窗。第2章 实验设计2.1 设计FIR数字滤波器的基本方法:FIR数字滤波器的系统函数无分母,为 ,系统频率响应可写成:,令=,H(w)为幅度函数,称为相位函数。这与模和辐角的表示方法不同,H(w)为可为正可为负的实数,这是为了表达上的方便。如某系统频率响应 =sin4w,如果采用模和幅角的表示方法,sin4w的变号相当于在相位上加上(因-1= ),从而造成相位曲线的不连贯和表达不方便,用则连贯而方便。 窗函数法又称傅里叶级数法,其设计是在时域进行的。 函数一般是无限长且非因果的,设计时需用一个合适的窗函数把截成有限长的因果序列,使对应的频率响应(的傅里叶变换)尽可能好地逼近理想频率响应。窗函数法的主要缺点是:一、不容易设计预先给定截止频率的滤波器;二、满足同样设计指标的情况下所设计出的滤波器的阶数通常偏大。2.2 FIR数字滤波器设计的步骤2.2.1 确定技术指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以2种方式给出。第一种是绝对指标。他提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。他以分贝值的形式给出要求。本文中滤波器的设计就以线性相位FIR滤波器的设计为例。2.2.2 逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型(通常采用理想的数字滤波器模型)。之后,利用数字滤波器的设计方法(窗函数法、频率采样法等),设计出一个实际滤波器模型来逼近给定的目标。2.2.3性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。开始读入窗口长度计算hd(n)(调用窗函数子程序我w(n)计算h(n)=hd(n)w(n)调用子程序计算H(k)=DFTh(n)调用绘图子程序绘制H(k)幅度相位曲线 结束 程序流程图第3章 运行及结果3.1 实验环境PC机 MATLAB3.2 开发工具和汇编语言MATLAB语言3.3 程序设计function FilterSignalDemo% This program demonstrate Bandstop filter' frequency domain response. % Then, a compond signal is produced by adding middle frequency signal and % a Gaussian White noise. The filtering process can be explained by % altering the cofficiency of signals and noise.% College of Information Science & Engineering,% Henan University of Technology% Demo step:% 1. Middle frequency signal 450 Hz pass Bandstop filter% 2. complex signal for Bandstop filter% 3. adding noise effect% 4. enlarge noise's effect, introduce SNR conceptclc;clear all; close all;% Coeff_LF Coeff_MF Coeff_HF% Demo A: Low freq signal: 1 0 0% Demo B: Middlefreq signal: 0 1 0% Demo C: High freq signal: 0 0 1% Demo D: total freq signals: 1 1 1Coeff_MF = 1; % Coefficient of middle frequency signal F1(450 Hz)Coeff_HF = 0; % Coefficient of High frequency signal F2(600 Hz)Coeff_NOISE = 0; % Coefficient of noise, such as 0(without noise), 1, sqrt(2), 3 and so on.F1 = 450; % HzF2 = 600; % HzFS = 2000; % Hz sample frequency% Time definationEndTime = 1/FS * 1023;Time = 0:1/FS:EndTime;N = length(Time);% Generating a sin signalSinSignalSum = Coeff_MF*sin(2*pi*F1*Time)+ Coeff_HF*sin(2*pi*F2*Time) + Coeff_NOISE*randn(1, N);SinSignal = SinSignalSum;SinSignal1 = Coeff_MF*sin(2*pi*F1*Time);SinSignal2 = Coeff_HF*sin(2*pi*F2*Time);figuresubplot(2,1,1)plot(Time, SinSignal1)xlabel('x1(t)')xlim(0 0.05)title('Time domain signals')subplot(2,1,2)plot(Time, SinSignal2)xlabel('x2(t)')xlim(0 0.05)figuresubplot(2,1,1)plot(Time, SinSignalSum)xlabel('x(t)')xlim(0 0.05)title('Time domain signals')FFTSinSignalSum = 2 / N * fft(SinSignalSum)subplot(2,1,2)FnSinSum = abs(FFTSinSignalSum); FW = 2*pi*(Time)/EndTime;plot(FW(2:length(FW)*FS/pi/2, FnSinSum(2:length(FW)hold onplot(FW(2:length(FW)-2*pi)*FS/pi/2, FnSinSum(2:length(FW)xlim(-FS/2 FS/2)ylim(0 1)xlabel('Frequency')%-Bandstop Filter-figureWp = 350 550/1000; Ws = 400 500/1000;Rp = 1; Rs = 40;width=0.2*pi;N=ceil(8*pi/width);if(rem(N,2)=0 N=N;endn=N+1b=fir1(N,0.35 0.55,'stop');freqz(b,1,512,2000); title('hamming Bandstop Filter')Hq=dfilt.df2(b, 1);% Hq.arithmetic = 'fixed'zplane(Hq);xlim(-1.2, 1.2)ylim(-1.2, 1.2)YBP = filter(b, 1, SinSignal);figuresubplot(2,1,1)plot(Time, YBP)xlim(0 0.05)xlabel('y(t)')title('Time domain signals after Bandstop filter')FFTSinSignalSum = 2 / N * fft(YBP)subplot(2,1,2)FnSinSum = abs(FFTSinSignalSum); plot(FW(2:length(FW)*FS/pi/2, FnSinSum(2:length(FW)hold onplot(FW(2:length(FW)-2*pi)*FS/pi/2, FnSinSum(2:length(FW)xlim(-FS/2 FS/2)ylim(0 1)xlabel('Frequency')3.4 测试结果图4-25 海明窗函数波形图图4-26 海明窗函数频谱图图4-27 用海明窗设计带通滤波器的幅频响应图图4-28 用海明窗设计带通滤波器的相频响应图图4-29 用海明窗设计带通滤波器的冲击响应图图4-30 用海明窗设计带通滤波器的幅频响应图结论设计带通滤波器时首先要计算出过渡带,然后查表得到不同窗函数所需要的阶数,不同的窗函数所设计的滤波器的形状各有差异,尤其在主瓣宽度、旁瓣的形状以及主瓣与旁瓣的高度差上有比较明显得差别,实际应用中应根据实际情况,折衷处理,兼顾各项指标,海明窗也是余弦窗的一种,又称改进的升余弦窗。海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣达到更小。分析表明,海明窗的第一旁瓣衰减为一42dB海明窗的频谱也是由3个矩形时窗的频谱合成,但其旁瓣衰减速度为20dB/(10oct),这比汉宁窗衰减速度慢。窗函数法是一种设计FIR数字滤波器的基本方法,但它不是最佳设计方法,在满足同样设计指标的情况下,用这种方法设计出的滤波器的阶数通常偏大。在窗函数法的基础上,以所定义的逼近误差最小为准则来进行优化设计的算法,由于其中的逼近误差可根据不同的设计要求进行定义,故此算法适应性强,它即可用于设计选频型滤波器,又适用于非选频型滤波器的设计。参考文献1程佩青著,数字信号处理教程.清华大学出版社,20012Sanjit K. Mitra著,孙洪.余翔宇译.数字信号处理实验指导书(MATLAB版).电子工业出版社,2005年1月3郭仕剑等,MATLAB 7.x数字信号处理,人民邮电出版社,2006年4胡广书,数字信号处理 理论算法与实现,清华大学出版社,2003年致谢在论文完成之际,首先要向我的老师苗凤娟老师表达我诚挚的谢意。从课题的选择到课题研究结束,苗老师做了大量的工作,提供了许多资料和建议。在学习和科研期间,苗老师从各方面都给予了我无微不至的关怀和照顾。她严谨的治学态度、丰富的实践经验和在事业上的开拓精神都将使我终身受益。我在这里向苗老师表示我诚挚的谢意!我的论文的完成得到许多老师的帮助,在这里我也要感谢给予我支持和帮助的信息学院全体教师,你们的支持给了我前进的动力,我会以优异的成绩回报你们大力的支持!