《毕业设计(论文)数字滤波器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)数字滤波器设计.doc(22页珍藏版)》请在三一办公上搜索。
1、本科毕业论文院 系: 信息工程学院 专 业: 班 级: 作 者: 指导教师: 完成时间: 2011年5月10号摘 要利用matlab语音工具箱,可以将声音文件变为离散的数据文件,然后利用其强大的矩阵运算能力处理数据。滤波器设计是数字信号处理的重要组成部分.在计算机中录入一段语音信号,通过Matlab对语音信号进行时频变换与分析,同时构造一固定频率的干扰信号,对两个信号进行合成,然后设计一个数字滤波器,对含噪的的语音信号进行滤波处理,在时域和频域中对信号进行分析比较.关键词:滤波器 语音信号 matlab 目 录摘 要1目 录2第一章 绪论31.1 引言31.2 数字滤波器的背景和意义31.3
2、设计目的3第二章 MATLAB简介32.1 MATLAB的概况32.2MATLAB产生的历史背景42.3 MATLAB语言的特点42.4 MATLAB涉及函数介绍5第三章 声音信号的滤波63.1设计内容63.2设计原理63.2.1 运用快速傅里叶变换(FFT)63.2.2 用双线性变换法设计滤波器进行滤波63.3设计过程73.3.1语音信号的采集73.3.2语音信号与含噪信号叠加83.3.3数字滤波器的设计83.3.4对固定频率的含噪信号进行滤波8第四章 结论13致谢语14参考文献15附录116第一章 绪论1.1 引言随着信息技术的发展,信号处理正向着数字化、软件化方向发展。数字信号处理主要研
3、究对象是语音信号和图像信号,语音信号的研究可以从时域和频域两个方面来进行。其中时域的分析处理有两种方法:一种是进行语音信号分析,这属于线性处理的范畴,主要通过信号的加减、时移、倍乘、卷积、求相关函数来实现;另一种是生成各种调制信号,这属于非线性的范畴,主要是对信号平均累加器的动态范围进行压缩扩张,用门限方法对噪声的抑制。对频域分析处理,即对信号的频率特性在频谱中加以分析研究,这拓展了信号分析的范围,是对不确定信号分析的主要方法。在实际应用中,信号的时域频分析经常同时进行。1.2 数字滤波器的背景和意义数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组
4、数字量,其输出是经过变换的另一组数字量。因此,他本身既可以是用数字硬件装配成的一台完成给定运算的专用数字计算机,也可以是将所需运算编程程序,让通用计算机来执行。数字滤波器具有稳定性高、精度高、灵活性大等优点。随着数字技术的发展,用数字技术实现滤波器的功能越来越受人们的注意和广泛的应用。1.3 设计目的掌握双线性变换法及窗函数设计IIR FIR数字滤波器的具体实现方法,能利用matlab语音工具箱,提取语音信号,并能利用数字滤波器对加噪后的语音信号进行滤波处理,还原出原语音信号。第二章 MATLAB简介2.1 MATLAB的概况 MATLAB是矩阵实验室(Matrix Laboratory)之意
5、。除具备卓越的数值计算能力之外,它海提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制能力。MATLAB的数据单位是矩阵,它的的指令表达式与数学、工程中常用的形式十分相似,故有MATLAB来解算问题要比用C、FORTRAN等语言做相同的事情,简捷的多。MATLAB包括拥有数百个内部函数的主包和三十几种工具包(Toobox)。工具包又可以分为功能性工具包和学科工具包。功能工具包来扩充MATLAB的符号运算、可视化建模仿真、文字处理及实时控制功能。学科工具包是专业性比较强的工具包、控制工具包、信号处理工具包、通信工具包等都属于此类。开放性是MATLAB广受用户欢迎,除内部函数外,所有MA
6、TLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。2.2 MATLAB产生的历史背景 在70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发调用EISPACK 和LINPACK 的FORTRAN子程序库。 到70年代后期,身为美国New mexico大学计算机系系主任的Cleve Moler,利用业余时间为学生编写EISPACK和LINPACK的借口程序。Cleve Moler给这个接口程序取名为MATLAB。在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。 1
7、983年,工程师John Little和Cleve Moler,Steve Bangert一起,用C语言开发了第二代专业版。这一代的MATLAB语言同时具备了数值计算和数据图示化的功能。 1984年,Cleve Moler和John Little成立Math Works公司,正式把MATLAB推向市场,并继续进行MATLAB的研究和开发。MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上又率先在专业水平上开拓了其符号计算、文字处理、可视化建模和实时控制能力,开发了适合多学科、多部门要求的新一代科技应用软件MATLAB。时至今日,经过MathWorks公司的不断完善,
8、MATLAB已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广发应用于科学研究和解决各种具体问题。在国内,特别是工程界,MATLAB一定会盛行起来,可以说无论你从事工程方面的哪个学科,都能在MATLAB找到适合的功能。2.3 MATLAB语言的特点MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代
9、码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下介绍一下MATLAB的主要特点:1 语言简洁紧凑,使用方面灵活,库函数及其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都有本领域的专家编写,用户不必担心函数的可靠性。2 运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。3 MATLAB既具有结构化的控制语句,又有面向对象编程的特性。4 程序限制不严格,程序设计自由度大。5 程序的可移植性很好,基本上不做修改就可以在各
10、种型号的计算机和操作系统上运行。6 MATLAB的图像功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。7 MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。8 功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。9 源代码的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内
11、部函数外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。2.4 MATLAB涉及函数介绍(1)wavread函数:y,fs,bits=wavread(Blip)用于读取语音,采样值放在向量y中,fs表示采样频率(HZ),bits表示采样位数。Sound(x,fs,bits);用于对声音的回放。向量y则代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。(2)FFT函数:FFTy用于序列快速傅里叶变换。其调用格式为:y=fft(x)。其中,x是序列,y是学列的FFT,x可以为一
12、向量或矩阵:若x为一向量,y是x的FFT,且和x相同长度。若x为一矩阵,则y是对矩阵的每一列向量进行FFT。(3)Fir1函数:Fir1函数是基于窗函数的FIR滤波器涉及标准频率响应形状。其调用格式为b=fir1(N,we,ftype,windows)。Ftype和windows可以默认。b=fir1(N,wc)可得到截止频率为wc且满足线性相位条件的N阶FIR低通滤波器,当wc=wc1,wc2时,得到的是通带为wc1wwc2的带通滤波器。b=fir1(N,we,ftype,windows),可设计高通和带阻滤波器,当ftype=high时,设计高通FIR滤波器;当ftype=stop时,设计
13、带阻FIR滤波器。 (4)sound(x,fs,bits):该函数用于播放声音,向量y就代表一个信号,也就是说可以像处理一个信号表达式一样处理声音信号。第三章 声音信号的滤波3.1设计内容首先采集一段语音信号(.wav格式),录音10秒钟左右,运用MATLAB软件,调用函数功能画出它的时域波形和频域特性。然后人为设计一固定频率的噪声干扰信号,将语音信号与干扰信号进行合成,设计一个巴特沃思滤波器对含噪的语音信号进行滤波,并对信号在时域和频域中进行比较。3.2设计原理 3.2.1 运用快速傅里叶变换(FFT)对信号进行傅里叶变换,得到频谱特性,其公式如下:在matlab中快速傅里叶变换的格式为:Y
14、=fft(x,n)。 n为采样点数3.2.2 用双线性变换法设计滤波器进行滤波数字滤波器分为FIR数字滤波器和IIR数字滤波器两种,设计方法主要有脉冲响应不变法、双线性变化法、窗函数法,本设计运用双线性变换法设计BW带阻型滤波器,进而转化成IIR型数字滤波器。IIR 数字滤波器可用一个n阶差分方程或用它的Z域系统函数:对照模拟滤波器的传递函数: 不难看出,数字滤波器与模拟滤波器的设计思路相仿,其设计实质也是寻找一组系数b,a,去逼近所要求的频率响应,使其在性能上满足预定的技术要求;不同的是模拟滤波器的设计是在S平面上用数学逼近法去寻找近似的所需特性H(S),而数字滤波器则是在Z平面寻找合适的H
15、(z)。IIR数字滤波器的单位响应是无限长的,而模拟滤波器一般都具有无限长的单位脉冲响应,因此与模拟滤波器相匹配。由于模拟滤波器的设计在理论上已十分成熟,因此数字滤波器设计的关键是将H(S)H(Z),即,利用复值映射将模拟滤波器离散化。已经证明,双线性变换法能较好地担当此任,则在此基础上,数字滤波器的设计就可首先归结为模拟滤波器的设计了。3.3设计过程3.3.1语音信号的采集利用matlab的音频处理工具箱可以实现声音的录制和播放,将话筒插入计算机上,在matlab中建立录音文件程序如下:sf=16000;%采样频率sound_vector=wavrecord(10*sf,sf);%录音时间为
16、10秒钟wavplay(sound_vector,sf);wavwrite(sound_vector,sf,wo)运行程序,并对准话筒说话“你好”,大约十秒钟,结束之后,系统会自动重放录音,并默认保存为wo.wav文件。3.3.2语音信号与含噪信号叠加在Matlab软件平台下可以利用函数wavread对语音信号进行采样,得出语音信号的时域波形,然后对语音信号进行频谱分析,在matlab中可以利用函数fft对信号进行快速傅里叶变换,得到信号的频谱图(如图三、图四、图六所示)。人为设计一固定频率的噪声干扰信号,与语音信号进行叠加,加噪声前后的时域图(如图一)、频域图(如图二)相比较,并且比较不同音
17、调相同音量信号的时域图、频域图比较(如图五)3.3.3数字滤波器的设计构造巴特沃思滤波器,进而分别构造在采样频率为800HZ、200HZ、50HZ时的IIR数字滤波器,并利用各个滤波器进行滤波,分别比较滤去噪声后时域比较图、频域比较图(如图七、图八所示)。3.3.4对固定频率的含噪信号进行滤波用滤波器对含噪信号进行滤波,得出频谱如图九,读出频率分别为800HZ、200HZ、50HZ时的语音信号,并输入.wav格式的语音信号。Matlab编程见附录1,其运行结果如下图所示:如图一图二图三图四图五图六图七图八图九第四章 结论加入噪声后的语音信号与原始信号有明显的不同,伴有明天的杂音,从含噪语音信号
18、的频谱图可以看出,在50HZ、200HZ、800HZ有高峰,这正是干扰的噪声信号造成的,当用BW型的带阻滤波器滤波后的含噪信号,频率分别为50HZ、200HZ、800HZ的噪声信号被消除。滤波器的设计是数字信号处理的重要内容,设计时必须要根据信号的特征,确定滤波器的类型、阶数、截止频率、衰减幅度等,才能有效的滤除干扰信号,从而到信号滤波的目的致谢语通过近三个月的毕业设计,是我对matlab这个软件有了更深的认识,也让我对如何设计IIR滤波器和FIR滤波器有了进一步的了解,并掌握了wavread和sound等函数的用法,深刻认识到MATLAB软件功能的强大,大大增加了我对这个软件的兴趣和提高了我
19、学习这个软件的积极性。本文的毕业设计是在我指导老师的精心指导和大力支持下完成的,因为有他,我的知道设计才能不断完善,设计内容才能更加的充实。同时,经过毕业设计,又给了我专业知识以及专业节能上的提升,我也会更加努力,认真学习,争取在以后的课程中做的更好。最后, 再次对关心、支持我的同学和老师表示由衷的感谢。参考文献1 倪养华,等数字信号处理与实现上海:上海交通大学出版社,19982 施阳等MATLAB语言工具箱西安:西北工业大学出版社,19993 雷学堂,徐火希. 可直接感受的基于matlab的语音滤波J.合肥学院学报自然科学版,2006(3):48-51.附录1以上步骤matlab编程如下:c
20、lear all; %关闭以往仿真的数据线A=5; %噪声的振幅u1=0.01;%噪声振幅的衰减系数u2=0.02;u3=0.03;f1=50;%多频噪声频率f2=200;f3=800;Y,fs,bits=wavread(C:UsershpDocumentsMATLABwo.wav) %读出信号1,采样率和采样位数sound(Y,fs);X,Fs,bits=wavread(C:UsershpDocumentsMATLABwo.wav);%读出信号2,采样率和采样位数n=length(Y); %求采样信号1的长度 m=length(X); %求采样信号2的长度t=0:1/fs:(n-1)/fs;
21、%求采样信号1时域上的采样点数 t1=0:1/Fs:(m-1)/fs; %求采样信号2时域上的采样点数% % % % % % t=(0:n-1)/fs;% 构造噪声%y1=u1*A*sin(2*pi*f1*t)+u1*A*sin(2*pi*f2*t)%两两噪声相加y2=u1*A*sin(2*pi*f3*t)y=y1+y2% % % % % % Z1=u1*A*sin(2*pi*f1*t1)+u1*A*sin(2*pi*f2*t1)%两两噪声相加% % % % % % Z2=u1*A*sin(2*pi*f3*t1)% % % % % % Z=Z1+Z2figure(1) %画出噪声的时域图,取2
22、00个点% % % % % % % % % % plot(t ,y);grid on; plot(t(1:200),y(1:200);grid on;% xlabel(时间(t); ylabel(幅度y); title(噪声的时域图);% Fy=fft(y,n); %对噪声进行傅里叶变换 Fy1=abs(Fy); n1=floor(n/2); %对wo求采样点数的一半 n2=floor(m/2); %对wolow求采样点数的一半 f=(0:n1)*fs/n; %时域上的采样点数 f1=(0:n2)*Fs/m; %时域上的采样点数% figure(2) 画出噪声的频谱图 plot(f,Fy1(1
23、:n1+1);grid on; xlabel(频率(f); ylabel(幅度(Fy1); title(噪声的频谱图);% % %加噪声前后的时域图比较% Y=Y(:,1);%此处假设声音是双声道的,只取单声道分析 X=X(:,1);%此处假设声音是双声道的,只取单声道分析Y1=y+Y; %对采样信号进行转置再加上噪声% pause(10); %暂停10s sound(Y1,fs); % 读出加噪声后的采样信号 figure(3) %画出加噪声前后的时域比较图 subplot(2,1,1);plot(t,Y);grid on; plot(t(1:1000),Y(1:1000);grid on;
24、 xlabel(时间(t); ylabel(幅度(Y); title(加噪声前的时域图); subplot(2,1,2);plot(t,Y1);grid on;% % % % % % % % % % plot(t(1:1000),Y1(1:1000);grid on; xlabel(时间(t); ylabel(幅度(Y); title(加噪声前的时域图);% % %加噪声前后时域图比较% FY=fft(Y1,n); %对加噪声后的采样信号1进行傅里叶变换 FY1=abs(FY); FY2=fft(Y,n); %对加噪声钱的采样信号1进行傅里叶变换 FY3=abs(FY2); FX=fft(X,
25、m); %对加噪声前的采样信号2进行傅里叶变换 FX4=abs(FX);% figure(4) %画出加噪声前后的频域比较图 subplot(2,1,1); plot(f,FY3(1:n1+1);grid on; xlabel(频率(f); ylabel(幅度(FY3); title(加噪声前的频谱图);% subplot(2,1,2); plot(f,FY1(1:n1+1);grid on; xlabel(频率(f); ylabel(幅度(FY1); title(加噪声后的频谱图);% % %不同音调相同音量信号的频域、时域图比较 % figure(5) subplot(2,2,1);plo
26、t(f,FY3(1:n1+1);grid on; xlabel(频率(f);ylabel(幅度(FY3);title(wo加噪声前的频谱图); subplot(2,2,3);plot(f1,FX4(1:n2+1);grid on; xlabel(频率(f);ylabel( 幅度(FY4);title(wolow加噪前的频谱图); subplot(2,2,2);plot(t,Y);grid on; xlabel(时间(t);ylabel(幅度(Y);title(wo加噪声前的时域图); subplot(2,2,4);plot(t1,X);grid on; xlabel(时间(t1);ylabel
27、(幅度(X);title(wolow加噪声前的时域图);% % sound(Y1,fs);%读出加噪后的信号 % 构造巴特沃思滤波器% figure(6); %画出wo加噪声后的时域图 plot(t,Y1);xlabel(时间(t);ylabel(幅度(Y1);title(wo加噪声后的时域图);grid on;% axis(0.04 0.06 -3 3); % 构造800HZ的带阻滤波器 % f0_stop1=800; % fc=20; %设定过渡带的频率Rp=1; %通带区的波纹系数Rs=30; %阻带区的波纹系数wp_stop1=(f0_stop1-fc)/(fs/2) (f0_stop
28、1+fc)/(fs/2); % 通带的拐角频率ws_stop1=(f0_stop1-5*fc)/(fs/2) (f0_stop1+5*fc)/(fs/2); % 阻带的拐角频率N_stop1,wc_stop1=buttord(wp_stop1,ws_stop1,Rp,Rs,s); % 求出巴特沃思滤波器的阶数N及频率参数wcnum_stop1,den_stop1=butter(N_stop1,wc_stop1,stop); % 求出巴特沃思带阻数字滤波器的传递函数模型系数h_stop1,w_stop1=freqz(num_stop1,den_stop1,fs) % 求出离散系统响应的数值fig
29、ure(7);subplot(2,3,1); %画出带阻滤波器的幅频特性图plot(w_stop1*fs/(2*pi),20*log10(abs(h_stop1);xlabel(频率(w_stop1));ylabel(幅度(h_stop1);title(带阻滤波器在800Hz处的幅频特性图);grid on;B_stop1=filter(num_stop1,den_stop1,Y1); %对含噪信号Y1进行带阻滤波% pause(10);% sound(B_stop1,fs); % 读出滤去800HZ噪声后的采样信号subplot(2,3,4); %画出带阻滤波器滤去800HZ噪声后的时域图p
30、lot(t,B_stop1); xlabel(时间(t);ylabel(幅度(B_stop1);title(用带阻滤波器滤去800HZ噪声后的时域图);grid on;% axis(0.04 0.06 -30 3);%构造200HZ的带阻滤波器%f0_stop2=200;wp_stop2=(f0_stop2-fc)/(fs/2) (f0_stop2+fc)/(fs/2); % 通带的拐角频率ws_stop2=(f0_stop2-5*fc)/(fs/2) (f0_stop2+5*fc)/(fs/2); % 阻带的拐角频率N_stop2,wc_stop2=buttord(wp_stop2,ws_s
31、top2,Rp,Rs,s); % 求出巴特沃思滤波器的阶数N及频率参数wcnum_stop2,den_stop2=butter(N_stop2,wc_stop2,stop); % 求出巴特沃思带阻数字滤波器的传递函数模型系数h_stop2,w_stop2=freqz(num_stop2,den_stop2,fs) %求出离散系统频率响应的数值subplot(2,3,2);plot(w_stop2*fs/(2*pi),20*log10(abs(h_stop2);xlabel(频率(w_stop2);ylabel(幅度(h_stop2);title(带阻滤波器在200HZ处的幅频特性图);grid
32、 on;B_stop2=filter(num_stop2,den_stop2,B_stop1);%对含噪信号Y1进行带阻滤波% pause(10);% sound(B_stop2,fs); % 读出滤去800HZ和200HZ噪声后的采样信号subplot(2,3,5); % 画出带阻滤波器去800HZ和200HZ噪声后的时域图plot(t,B_stop2);xlabel(时间(t);ylabel(幅度(B_stop2);title(带阻滤波器滤去800HZ和200HZ噪声后的时域图);grid on;% axis(0.04 0.06 -3 3); %构造50HZ的带阻滤波器%f0_stop3=
33、50ws_stop3=(f0_stop3-fc)/(fs/2) %阻带的拐角频率wp_stop3=(f0_stop3+5*fc)/(fs/2); % 通带的拐角频率Wws=0.0075;Wwp=0.0375; N_stop3,wc_stop3=buttord(Wwp,Wws,Rp,Rs,s); % 求出巴特沃思滤波器的阶数N及频率参数wcnum_stop3,dem_stop3=butter(N_stop3,wc_stop3,high); % 求出巴特沃思高通数字滤波器的传递函数模型系数h_stop3,w_stop3=freqz(num_stop3,dem_stop3,fs); % 求出离散系数
34、频率响应的数值subplot(2,3,3); %画出高通滤波器的幅频特性图plot(w_stop3*fs/(2*pi),20*log10(abs(h_stop3);xlabel(频率(w_stop3);ylabel(幅度(h_stop3);title(高通滤波器在50HZ处的幅频特性图);grid on;B_stop3=filter(num_stop3,dem_stop3,B_stop2);subplot(2,3,6); % 画出高通滤波器滤去800HZ和200HZ和50HZ噪声后的时域图plot(t,B_stop3);xlabel(时间(t);ylabel(幅度(B_stop3);title
35、(滤去800HZ和200HZ和50HZ噪声后的时域图);grid on;% axis(0 10 -60000 60000); %用不同的滤波器滤去噪声频率后的时域比较图% figure(8);subplot(2,2,1);plot(t,Y1);grid on; xlabel(时间(t);ylabel(幅度(Y1);title(加噪声后的时域图);subplot(2,2,2);plot(t,B_stop1);xlabel(时间(t);ylabel(幅度(B_stop1);title(用带阻滤波器滤去800HZ噪声后的时域图);grid on;subplot(2,2,3);plot(t,B_sto
36、p2);xlabel(时间(t);ylabel(幅度(B_stop2);title( 用带阻滤波器滤去800HZ和200HZ噪声后的时域图);grid on;subplot(2,2,4);plot(t,B_stop3);xlabel(时域(t);ylabel(幅度(B_stop3);title( 带阻滤波器滤去800HZ和200HZ和50HZ噪声后的时域图);grid on; %用不同的滤波器滤去响应噪声频率后的频域比较% figure(9); FY=fft(Y1,n); % 对加噪声后的信号1进行傅里叶变换 FY1=abs(FY); n1=floor(n/2); f=(0:n1)*fs/n;
37、 FY_B_stop1=fft(B_stop1,n); %对滤去800HZ噪声后的采样信号进行傅里叶变换 FY1_B_stop1=abs( FY_B_stop1); FY_B_stop2=fft(B_stop2,n); % 对滤去800HZ和200HZ噪声后的采样信号进行傅里叶变换 FY1_B_stop2=abs( FY_B_stop2); FY_B_stop3=fft(B_stop3,n); %对滤去800HZ和200HZ和50HZ噪声后的采样信号进行傅里叶变换 FY1_B_stop3=abs( FY_B_stop3); %画出用不同的滤波器滤去响应噪声频率后的频率比较图% subplot(
38、2,2,1);plot(f, FY1(1:n1+1);grid on; xlabel(频率(f);ylabel(幅度(FY1); title(加噪声后的频谱图); subplot(2,2,2);plot(f, FY1_B_stop1(1:n1+1);grid on; xlabel(频率(f);ylabel(幅度(FY1_B_stop1); title(用带阻滤波器滤去800HZ噪声后的频谱图); subplot(2,2,3);plot(f, FY1_B_stop2(1:n1+1);grid on; xlabel(频谱(f);ylabel(幅度(FY1_B_stop2); title(用带阻滤波器滤去800HZ和200HZ噪声后的频谱图); subplot(2,2,4);plot(f, FY1_B_stop3(1:n1+1);grid on; xlabel(频率(f);ylabel(幅度(FY1_B_stop3); title(用带阻滤波器滤800去800HZ和200HZ和50HZ噪声后的频谱图); %读出和写出滤波后的语音信号% pause(5); % 暂停55s wavplay(B_stop3,fs); % 读出滤去800HZ和200HZ和50HZ噪声后的采样信号 wavwrite(B_stop3,fs,16,巴特沃思滤波器滤波后的语音信号.wav);%写出滤波后的语音信号