布莱克曼(Blackman)FIR滤波器课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

布莱克曼(Blackman)FIR滤波器课程设计成绩1目录一、设计任务与要求.......................................................2二、总体方案设计.........................................................2三、单元电路设计与参数计算...............................................33.1FIR滤波器........................................................33.2窗口设计法........................................................33.3布莱克曼窗........................................................4四、性能测试与分析.......................................................54.1语音信号录制......................................................54.2滤波器设计........................................................74.3信号滤波处理......................................................84.4结果分析..........................................................9五、结论与心得..........................................................10六、参考文献............................................................10七、附录................................................................117.1布莱克曼窗设计FIR滤波器的MATLAB主程序..........................117.2调用函数ideal_lp.m的MATLAB源代码...............................137.3调用函数freqz_m.m的MATLAB源代码................................132布莱克曼窗FIR滤波器的设计一、设计任务与要求1.滤波器指标必须符合工程实际。;2.设计完后应检查其频率响应曲线是否满足指标。;3.独立完成课程设计并按要求编写课程设计报告书。二、总体方案设计本课程设计是对录制的语音信号进行加噪处理并分析加噪前后语音信号的时域图与频域图,再用布莱克曼窗设计一个FIR滤波器,而滤波器的设计必须符合其相应的指标,否则将不能滤掉加入的噪声。最后将滤波前后的波形图进行比较看是否相同。课程设计流程图如图1所示。图1:课程设计流程图开始录制语音信号分析语音信号的频谱用布莱克曼窗设计FIR滤波器在语音信号中加入噪声用滤波器对信号进行滤波比较滤波前后的波型及频谱回放语音信号结束3三、单元电路设计与参数计算3.1FIR滤波器FIR(FiniteImpulseResponse)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。FIR数字滤波器以其良好的线性特性被广泛应用于现代电子通信系统中,是数字信号处理的重要内容之一。在实际信号处理中,往往要求系统兼具实时性和灵活性,而已有的一些软件或硬件实现方案(如DSP)则难以同时达到这两方面的要求。使用具有并行处理特性的FPGA来实现FIR滤波器,既有很强的实时性,又兼顾了灵活性,为数字信号处理提供了一种很好的解决方案。设FIR滤波器的单位冲激响应h(n)为一个N点序列,0≤n≤N—1,则滤波器的系统函数为:1-n0()NnhnzHz(2-1)就是说,它有—1N()阶极点在0z处,有—1N()个零点位于有限z平面的任何位置因此Hz是永远稳定的。稳定和相位特性是FIR滤波器突出的优点。FIR滤波器有以下几种基本结构:横截型(卷积型、直接型)、级联型、频率抽样型、快速卷积结构。3.2窗口设计法窗函数设计法的基本思路是用FIRDF逼近希望的滤波特性。设希望逼近的滤波器的频率响应函数为jdHe,其单位脉冲响应用dhn表示。为了设计简单方便,通常选择hjde为具有片段常数特性的理想滤波器。因此dhn是无限长非因果序列,不能直接作为FIRDF的单位脉冲响应。窗函数设计法就是截取dhn为有限长的一段因果序列,并用合适的窗函数进行加权做为FIRDF的单位脉冲响应hn()。下面介绍窗函数设计法的基本设计过程。窗口设计法的主要工作是计算dhn和wn,但当jdHe较为复杂时,dhn就不容易由反傅里叶变换求得。这时一般可用离散傅里叶变换代替连续傅里叶变换,求得4近似值。窗口法的设计步骤如下:(1)通过傅里叶变换换的理想滤波器的单位脉冲响应dhn。(2)根据指标选择窗口形状、大小和位置。确定窗口类型的主要依据是过渡带宽和阻带最小衰耗的指标。(3)给定理想频响由hjde和dhn,加窗得dhnwnhn。(4)检验滤波器性能。由hn()求jHe是否在误差容限之内。窗口函数对理想特性的影响:改变了理想频响的边沿特性,形成过渡带,宽为N4,等于RW的主瓣宽度;过渡带两旁产生肩峰和余振(带内、带外起伏),取决RW的旁瓣,旁瓣多,余振多;旁瓣相对值大,肩峰强,与N无关;N增加,过渡带宽减小,肩峰值不变。因主瓣附近(2-2)其中/2xN,所以N的改变不能改变主瓣与旁瓣的比例关系,只能改变RW的绝对值大小和起伏的密度,当N增加时,幅值变大,频率轴变密,而最大肩峰永远为8.95%,这种现象称为吉布斯(Gibbs)效应。3.3布莱克曼窗布莱克曼窗的时域形式可表示为:Nn24w()[0.420.5(cos)0.08cos()]11nnnRNN()(2-3)它的频域特性为:224=0.42()0.25[W()()]0.04[W()1114+W()]1RRRRRWWNWNNN(2-4)其中)(RW为矩形窗函数的幅度频率特性。增加一个二次谐波余弦分量,可进一步降低旁瓣,但主瓣宽度进一步增加,为N12。加N可减少过渡带。布莱克曼窗主瓣宽,xxNNNNNWRsin2/)2/sin()2/sin()2/sin()(5旁瓣小,频率识别精度最低,但幅值识别精度最高。四、性能测试与分析4.1语音信号录制通过手机录制一段长度2~4秒的语音文件,如图2所示。图2:语音信号录制录制好语音信号后,打开MATLAB软件平台,利用函数audioread对语音信号进行采样,再调用函数sound此时可以听见录制的语音。采样完后再语音信号中加入一个单频噪声,单频的噪声的频率可以自己设置。按照加入噪声后的采样频率调用sound函数,这时可以明显的听见播放的语音信号中有尖锐的单频啸叫声。下面是调用该语言信号以及加入噪声的程序:[x,fs]=audioread('test_yfw.mp3');%使用audioread读取音频文件的采样率fs6sound(x,fs);%按指定的采样率和每样本编码位数回放N=length(x);%计算信号x的长度fn=2100;%单频噪声频率,此参数可改t=0:1/fs:(N-1)/fs;%计算时间范围,样本数除以采样频率x=x(:,1)';y=x+0.1*sin(fn*2*pi*t);sound(y,fs);%明显听出有尖锐的单频啸叫声现在是对加入噪声前后的语音信号进行频谱分析,先对原始和加噪后的语音信号进行傅里叶变换,再计算频谱的频率范围和谱线间隔。最后就可以画出未加入噪声和加入噪声后的时域图和频域图。所有未加和加入噪声的时域图和频域图如图3。下面是对未加和加入噪声的频谱分析的程序:X=abs(fft(x));Y=abs(fft(y));%对原始信号和加噪信号进行fft变换X=X(1:N/2);Y=Y(1:N/2);%截取前半部分deltaf=fs/N;%计算频谱的谱线间隔f=0:deltaf:fs/2-deltaf;%计算频谱频率范围图3:语音信号的时域图和频率图74.2滤波器设计本课程设计就是要设计一个滤波器虑掉加入的噪声,使其恢复原始的语音信号。而设计滤波器的方法有很多,例如:窗函数法、频率采样法、脉冲响应不变法和双线性变换法。而本课程设计采用的是窗函数法设计FIR滤波器。而FIR滤波器的设计也有很多方法。在Matlab中,可以利用矩形窗、三角窗、汉宁窗、汉明窗、布莱克曼窗、凯塞窗等设计FIR滤波器。而本次采用的是布莱克曼窗来设计滤波器。在用布莱克曼窗设计滤波器的时候,首先要确定滤波器的性能指标。从六种窗函数的基本参数中我们可以得到旁瓣峰值n=-57,过度带宽11MB,最小阻带衰减74sdB,这就表明在设置这些值时其参数必须不大于这些值。而其它带阻滤波器的设计指标则要根据加入噪声的频率来确定。若不能按照这些来设计滤波器则不可能虑掉噪声。当所有的指标都设置完后,可以用这些数字来计算上下边带的中心频率和频率间隔,并计算布莱克曼窗设计该滤波器所需要的阶数和产生几阶的布莱克曼窗。当所有的准备工作完成后就可以调用自编的函数计算理想带阻滤波器的脉冲响应和用窗函数法计算实际的滤波器的脉冲响应。最后调用freqz函数得到滤波器的频率特性。从画出的图中可以清楚的看见滤波器的幅频和相频特性。下面是用布莱克曼窗设计滤波器的整个程序:fpd=1800;fsd=2050;fsu=1950;fpu=2000;Rp=1;As=70;%带阻滤波器设计指标fcd=(fpd+fsd)/2;fcu=(fpu+fsu)/2;df=min((fsd-fpd),(fpu-fsu));%计算上下边带中心频率,和频率间隔wcd=fcd/fs*2*pi;wcu=fcu/fs*2*pi;dw=df/fs*2*pi;%将Hz为单位的模拟频率换算为rad为单位的数字频率wsd=fsd/fs*2*pi;wsu=fsu/fs*2*pi;M=ceil(10*pi/dw)+1;%计算布莱克曼窗设计该滤波器时需要的阶数n=0:M-1;%定义时间范围w_black=blackman(M);%产生M阶的布莱克曼窗hd_bs=ideal_lp(wcd,M)+ideal_lp(pi,M)-ideal_lp(wcu,M);%调用自编函数计算理想带阻滤波器的脉冲响应h_bs=w_black'.*hd_bs;%用窗口法计算实际滤波器脉冲响应[db,mag,pha,grd,w]=freqz_m(h_bs,1);%调用自编函数计算滤波器的频率特性8图4:滤波器的频率特性4.3信号滤波处理对语音信号信号进行滤波处理主要是滤掉加入的噪声。不同的滤波器利用不同的函数对语音信号进行滤波,FIR滤波器利用函数fftfilt对信号进行滤波。对信号进行滤波处理要先利用函数filter对y进行滤波,然后对y进行傅里叶变换。而画频谱时只取前面一半。最后在同一个图中画出原始信号的、加入噪声的语音信号以及滤波后语音信号的频域图和时域图。这样便于将所有的图进行对比和分析,而且还可以直观的观察该课程设计是否成功。当将设计好的滤波器滤掉噪声后我们也可以再一次调用函数sound,听此时的声音是否与原始语音信号基本一样,若没有单频啸叫声则说明此次设计是成功的,否则应重新设置指标。下面是对语音

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功