语音信号的数字滤波处理课设_第1页
语音信号的数字滤波处理课设_第2页
语音信号的数字滤波处理课设_第3页
语音信号的数字滤波处理课设_第4页
语音信号的数字滤波处理课设_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 语音信号的数字滤波处理(九) 1 绪论1.1 课题背景数字滤波是数字信号处理的重要内容,数字滤波器可分为IIR和FIR两大类。对于IIR数字滤波器的设计,需要借助模拟原型滤波器,再将模拟滤波器转化为数字滤波器,文中采用的设计方法是脉冲响应不变法、双向性变换法和完全函数设计法;对于FIR数字滤波器的设计,可以根据所给定的频率特性直接设计,文中采用的设计方法是窗函数法。根据IIR滤波器和FIR滤波器的特点,在MATLAB坏境下分别用双线性变换法设计IIR和用窗函数设计FIR数字滤波器,并对采集的语音信号进行分析,最后给出了IIR和FIR对语音滤波的效果。1.2 课题要求1. 掌握数字信号处理的基

2、本概念,基本理论和基本方法。2. 熟悉离散信号和系统的时域特性。3. 掌握序列快速傅里叶变换方法。4. 学会MATLAB的使用,掌握MATLAB的程序设计方法。5. 掌握利用MATLAB对语音信号进行频谱分析。6. 掌握滤波器的网络结构。 2 课程设计预习与原理 2.1 卷积运算的演示 2.1.1 线性卷积 序列x1(n)=2 0 1 2 5 7 0 5 0 2 0 3,序列x2(n)=2 0 0 1 0 1 1 0。动态演示两个序列进行线性卷积x1(n)x2(n)的翻转、移位、乘积、求和的过程。其中翻转采用fliplr,程序如下:n=-7:18;M=17;yn=zeros(1,19);fig

3、ure(1) stem(yn);xlabel('n')ylabel('y(n)')xn1=2 0 1 2 5 7 0 5 0 2 0 3;xm1=zeros(1,7) xn1 zeros(1,7);%为26个数字的矩阵figure(2)stem(n,xm1)xlabel('m')ylabel('x1(m)')xn2=2 0 0 1 0 1 1 0; xm2=fliplr(xn2) zeros(1,18); %移位,补零为26个数字的矩阵figure(3)stem(n,xm2)xlabel('m')ylabel(&#

4、39;x2(N-m)')title('n=0')yn(1)=sum(xm1.*xm2)');%对xm1与xm2进行对应原素乘方之后进行数组转置,求和;即为求卷积figure(4)stem(yn)xlabel('n')ylabel('y(n)')title('n=N')for N=1:17 xm3=zeros(1,N) fliplr(xn2) zeros(1,M); figure();stem(n,xm3)xlabel('m')ylabel('x2(N-m)')title('n

5、=N')M=M-1;yn(N+1)=sum(xm1.*xm3)');figure()stem(yn)xlabel('n')ylabel('y(n)')title('n=N')end xm3=zeros(1,18) fliplr(xn2)figure()stem(xm3)xlabel('m')ylabel('x2(N-m)')title('n=N');yn(19)=sum(xm1.*xm3)');figure()stem(yn)xlabel('n')ylabel

6、('y(n)') 2.1.2循环卷积 序列x1(n)=2 0 1 2 5 7 0 5 0 2 0 3,序列x2(n)=2 0 0 1 0 1 1 0,N=12。动态演示两个序列进行圆周卷积x1(n)x2 (n)的翻转、移位、乘积、求和的过程。程序如下:n=0:11;yn=zeros(1,12);figure(1)stem(yn)xlabel('n')ylabel('y(n)') %图1,12个0 xn1=2 0 1 2 5 7 0 5 0 2 0 3; figure(2)stem(n,xn1)xlabel('m')yla

7、bel('x1(m)') xn2=2 0 0 1 0 1 1 0; xm2=xn2 zeros(1,length(xn1)-length(xn2);figure(3)stem(n,xm2)xlabel('m')ylabel('x2(m)')title('n=0'); yn(1)=sum(xn1.*xm2)');figure(4)stem(yn)xlabel('n')ylabel('y(n)')title('n=N') for N=1:11xm1=fliplr(xn1(1:N)

8、 fliplr(xn1(N+1:12); figure()stem(n,xm1)xlabel('m')ylabel('x1(N-m)')title('n=N')yn(N)=sum(xm1.*xm2)');figure()stem(n,yn)xlabel('n')ylabel('y(n)')title('n=N')end figure()xm1=fliplr(xn1);stem(n,xm1)xlabel('m')ylabel('x1(N-m)')title(&#

9、39;n=N') yn(12)=sum(xm1.*xm2)');figure()stem(n,yn)xlabel('n')ylabel('y(n)')title('n=N') 2.1.3声音文件线性卷积 序列x1(n)=2 0 0 1 0 1 1 0,读取一段声音数据,当循环卷积长度大于或等于两序列长度之和时,循环卷积等于线性卷积。因为直接用FFT进行1024点卷积大于两序列长度,所以可用线性卷积替代圆周卷积,其程序如下:n=0:686;M=2053;yn=zeros(1,687);xn1,fs,nbits=wavread(

10、9;C:UsersacerDesktop邓紫棋-你把我灌醉.wav');xn1=xn1(:);xn1=xn1'xn1=xn1(10000:12047);%xn1=xn1'xm1=zeros(1,7) xn1 zeros(1,7);xn2=2 0 0 1 0 1 1 0;xm2=fliplr(xn2) zeros(1,2054);yn(1)=sum(xm1.*xm2)');for N=1:685xm3=zeros(1,N) fliplr(xn2) zeros(1,M);M=M-1;yn(N+1)=sum(xm1.*xm3)')endxm3=zeros(1,

11、2054) fliplr(xn2);yn(687)=sum(xm1.*xm3)');figure(1)stem(yn)xlabel('m')ylabel('y(n)')title('n=N')线性卷积结果如图所示 图1 由循环卷积定理可知:对于时域序列循环卷积,可先进行FFT变换,然后频率相乘,最后对结果进行IFFT变换,即可得到时域循环卷积结果。其程序如下:y,fs,nbits=wavread('C:UsersacerDesktop邓紫棋-你把我灌醉.wav');y=y(10000:12047);Y=fft(y,1024

12、);xn2=1 2.43 6.17 12.93 22.17 32.25 40.88 45.87 45.87 40.88 32.25 22.17 12.93 6.17 2.43 1;X=fft(xn2,1024);X1=rot90(X,3);Z=(X1'.*Y)'z=ifft(Z,1024)*8figure(2)stem(z)axis(0,700,-1,0.6);结果如图所示: 图2 2.1.4采样定理的演示 序列长度为28,先计算x(n)的512点FFT,得到其频谱函数X512(k),再对X512(k)隔点抽取,得到X32(k)和X16(k)。再分别对其进行IFFT变换。观察其

13、时域图。其程序如下:fs=27;n=3;t=0:1/fs:1;xa=n*exp(-n*sqrt(2)*pi)*sin(sqrt(2)*n*t);subplot(3,2,1)stem(xa)title('(a) 原28点时域信号xa')Xk=fft(xa,512);subplot(3,2,2)stem(Xk)title('(b) 512点FFTx(t)')X32k=Xk(1:16:512);subplot(3,2,4)stem(X32k)title('(d) 频率采样频率为32时的频谱图')x32a=ifft(X32k);subplot(3,2,3

14、)stem(x32a);title('(c) 32点IFFTX32(k)得到的x32a(t)')X16k=X32k(1:2:32);subplot(3,2,6)stem(X16k)title('(f) 频率采样频率为16时的频谱图')x16a=ifft(X16k);subplot(3,2,5)stem(x16a);title('(e) 16点IFFTX16(k)得到的x16a(t)')结果如图所示: 图3由图可知:当进行32点IFFT时,无时域混叠失真;当进行16点IFFT时,有时域混叠失真。2.2 课程设计原理2.2.1 IIR设计原理(1)

15、切比雪夫滤波器原理切比雪夫滤波器的幅频特性具有等波纹特性。它有两种形式:振幅特性在通带内是等波纹的,在阻带内是单调下降的切比雪夫I型;振幅特性在阻带内是等波纹的,在通带内是单调下降的切比雪夫II型。(2) 双线性变换法4工作原理 双线性变换中数字域频率和模拟频率之间的非线性关系限制了它的应用范围,只有当非线性失真是允许的或能被忽略时,才能采用双线性变换法,通常低通、高通、带通和带阻等滤波器等具有分段恒定的频率特性,可以采用预畸变的方法来补偿频率畸变,因此可以采用双线性变换设计方法。(3) 脉冲响应不变法4工作原理 冲激响应不变法遵循的准则是使数字滤波器的单位取样响应与参照的模拟滤波器的脉冲响应

16、的取样值完全一样,即h(n)=ha(nT),其中T为取样周期。实际是由模拟滤波器转换成为数字滤波器,就是要建立模拟系统函数Ha(S)与数字系统函数H(z)之间的关系。脉冲响应不变法是从S平面映射到z平面,这种映射不是简单的代数映射,而是S平面的每一条宽为2/T的横带重复地映射到整个z平面。 2.2.2 FIR设计原理由于IIR数字滤波器能够保留一些模拟滤波器的优良特性,因此应用很广。但是这些特性是以牺牲线性相位频率特性为代价的,即用Butterworth、切比雪夫和椭圆法设计的数字滤波器逼近理想的滤波器的幅度频率特性,得到的滤波器往往是非线性的。在许多电子系统中,对幅度频率特性和线性相位特性都

17、有较高的要求,所以IIR滤波器在这些系统中往往难以胜任。 设计程序的调试和运行结果3.1声音信号的提取与加噪试和运行结果3.1.1提取声音信号x1=wavread('C:UsersacerDesktop邓紫棋-你把我灌醉.wav',10);x1=x1'x1=x1(1,:);x2=1 2.43 6.17 12.93 22.17 32.25 40.88 45.87 45.87 40.88 32.25 22.17 12.93 6.17 2.43 1;subplot(7,1,1);stem(x1);ylabel('x1(n)');title('x1(n)

18、');subplot(7,1,2);stem(x2);ylabel('x2(n)');title('x2(n)');y=conv(x1,x2); subplot(7,1,3);stem(y);ylabel('y');title('x1(n)与x2(n)的卷积');N1=length(x1);N2=length(x2);N=N1+N2-1;X1=fft(x1,N);X2=fft(x2,N);subplot(7,1,4);stem(X1);ylabel('X1');title('x1(n)的N点DFT&

19、#39;);subplot(7,1,5);stem(X2);ylabel('X2');title('x2(n)的N点DFT');Y1=X1.*X2;subplot(7,1,6);stem(Y1);ylabel('Y1');title('X1与X2相乘的结果');Y2=ifft(Y1);subplot(7,1,7);stem(Y2);ylabel('Y2');title('Y1的IDFT结果');运行结果如图: 图4 原始信号波形. 对声音信号加噪MATLAB程序如下:y,fs,bits=wavrea

20、d('C:UsersacerDesktop邓紫棋-你把我灌醉.wav');%x:语音数据;fs:采样频率;bits:采样点数 sound(y,fs,bits); %话音回放 n=length (y); %求出语音信号的长度 Y=fft(y,n); %傅里叶变换subplot(2,1,1); plot(y); title('原始信号波形'); subplot(2,1,2); plot(abs(Y); title('原始信号频谱'); L=length(y);noise=0.5*randn(L,2);y_z=y+noise;sound(y_z,fs,

21、bits);m=length (y_z); %求出被污染语音信号的长度 Y_Z=fft(y_z,n); %傅里叶变换subplot(3,1,1); plot(y_z); title('被污染信号波形'); subplot(3,1,2); plot(abs(Y_Z); title('被污染的语音信号频谱');运行结果如图: 图5 被污染的信号3.2 切比雪夫低通滤波器程序的调试和运行结果 如图所示为原语音信号的时域图和频谱图。在MATLAB中通过wavresd(filename)读取语音信号数据。其程序如下: y,fs,nbits=wavread('C:U

22、sersacerDesktop邓紫棋-你把我灌醉.wav') 图6 原始信号 如图所示为加入噪声后信号的时域图和频谱图。其主要程序如下:x1=x+zs' 图7 加入噪声后信号 如图所示为低通滤波器的幅频图。设计指标:wpz=1000Hz; wsz=1200Hz; rp=1; rs=100;其设计程序如下:图8 切比雪夫低通滤波器如图所示为滤波后语音信号的时域图和频谱图。其滤波程序如下:yd=filter(az,bz,x1); 图9 滤波后信号3.3切比雪夫高通滤波器程序的调试和运行结果如图所示为原语音信号的时域图和频谱图。在MATLAB中通过wavplay()读取语音信号数据。

23、其程序如下:x,fs,nbits=wavread(C:UsersacerDesktop邓紫棋-你把我灌醉.wav) 图10 原语音信号的时域图和频谱图如图所示为被污染语音信号的时域图和频谱图。其加噪信号程序如下:x1=x+zs1; 图11 被污染语音信号的时域图和频谱图如图所示为高通滤波器的幅频图。设计指标:wpz=500Hz; wsz=700Hz; rp=1; rs=100;其设计程序如下:wpz=2*700/fs;wsz=2*500/fs;wp=2*fs*tan(wpz*pi/2);ws=2*fs*tan(wsz*pi/2);rp=1;rs=100;N,wc=cheb2ord(wp,ws,

24、rp,rs,'s');b,a=cheby2(N,rs,wc,'high','s');bz,az=bilinear(b,a,fs);Hk=freqz(bz,az,16384,fs); 图12 高通滤波器的幅频图 如图所示为滤波后语音信号的时域图和频谱图。其滤波程序如下:yd=filter(az,bz,x1); 图13 滤波后语音信号的时域图和频谱图 3.4 切比雪夫带通程序的调试和运行结果如图所示为原语音信号的时域图和频谱图。在MATLAB中通过wavplay(filename)读取语音信号数据。其程序如下:x,Fs,bits=wavread(&#

25、39;C:UsersacerDesktop64ca9e36e190eb780c00b59c4459a6d5.wav'); 图14 原语音信号的时域图和频谱图如图所示为被污染语音信号的时域图和频谱图。其加噪信号程序如下:x1=x+zs1; 图15 被污染语音信号的时域图和频谱图 如图所示为带通滤波器的幅频图。设计指标:fp1=1200 Hz,fp2=3000 Hz,fc1=1000 Hz,fc2=3200 Hz,As=100dB,Ap=1dB;其设计程序如下:wpz=2*1200/fs,2*3000/fs;wsz=2*1000/fs,2*3200/fs;wp=2*fs*tan(wpz*p

26、i/2);ws=2*fs*tan(wsz*pi/2);rp=1;rs=100;N,wc=cheb2ord(wp,ws,rp,rs,'s');b,a=cheby2(N,rs,wc,'s');bz,az=bilinear(b,a,fs);Hk=freqz(bz,az,16384,fs); 图16 带通滤波器的幅频图如图所示为滤波后语音信号的时域图和频谱图。其滤波程序如下:yd=filter(az,bz,x1); 图17 滤波后语音信号的时域图和频谱图. hamming低通程序的调试和运行结果如图所示为原语音信号的时域图和频谱图。在MATLAB中通过wavplay(f

27、ilename)读取语音信号数据。其程序如下:y,fs,nbits=wavread('C:UsersacerDesktop邓紫棋-你把我灌醉.wav'); 图18 原语音信号的时域图和频谱图如图所示为被污染语音信号的时域图和频谱图。其加噪信号程序如下:z=x+y; 图19 被污染语音信号的时域图和频谱图如图所示为低通滤波器的幅频图和相频图。设计指标:wpz=1000Hz; wsz=1200Hz; rs=100;其设计程序如下:wpz=2*1000*pi/fs;wsz=2*1200*pi/fs;rs=100;Bt=wsz-wpz;N0=ceil(6.6*pi/Bt);N=N0+m

28、od(N0+1,2);wc=(wpz+wpz)/2/pi;hn=fir1(N-1,wc,hamming(N);figure(3)freqz(hn,1,32678); 图20 低通滤波器的幅频图和相频图如图所示为滤波后语音信号的时域图和频谱图。其滤波程序如下:hn=filter(hn,1,z); 图21 滤波后语音信号的时域图和频谱图. hamming高通程序的调试和运行结果如图所示为原语音信号的时域图和频谱图。在MATLAB中通过wavplay(filename)读取语音信号数据。其程序如下:y,fs,nbits=wavread('C:UsersacerDesktop邓紫棋-你把我灌醉

29、.wav'); 图22 原语音信号的时域图和频谱图如图所示为被污染语音信号的时域图和频谱图。其加噪信号程序如下:z=x+y; 图23 被污染语音信号的时域图和频谱图如图所示为高通滤波器的幅频图和相频图。设计指标:wpzl=2800Hz; wszl=3200Hz; rs=100;其设计程序如下:wpz=2*3000*pi/fs;wsz=2*2800*pi/fs;rs=150;Bt=wpz-wsz;N0=ceil(6.6*pi/Bt);N=N0+mod(N0+1,2);wc=(wpz+wpz)/2/pi;hn=fir1(N-1,wc,'high',hamming(N); 图

30、24 高通滤波器的幅频图和相频图如图所示为滤波后语音信号的时域图和频谱图。其滤波程序如下:hn=filter(Hn,1,z); 图25 滤波后语音信号的时域图和频谱图. hamming带通程序的调试和运行结果如图所示为原语音信号的时域图和频谱图。在MATLAB中通过wavplay(filename)读取语音信号数据。其程序如下:y,fs,nbits=wavread('C:UsersacerDesktop邓紫棋-你把我灌醉.wav'); 图26 原语音信号的时域图和频谱图如图所示为被污染语音信号的时域图和频谱图。其加噪信号程序如下:t=0:0.000045:0.90855;x1=

31、0.1*sin(2*pi*10*t)+0.2*sin(2*pi*20*t)+0.07*sin(2*pi*6000*t);x=rot90(x1,2),rot90(x1,2);x=x(1:32768);z=x+y; 图27 被污染语音信号的时域图和频谱图如图所示为带通滤波器的幅频图和相频图。设计指标:wpz=4500Hz; wsz=4700Hz; wpzl=700Hz; wszl=500Hz; rp=20; rs=50;其设计程序如下:wpzl=1200*pi/fs;wpzu=3000*pi/fs;wszl=1000*pi/fs;wszu=3200*pi/fs;rs=100;Bt=wpzl-wsz

32、l;N0=ceil(6.6*pi/Bt);N=N0+mod(N0+1,2);wc=(wpzl+wszl)/2/pi,(wpzu+wszu)/2/pi;Hn=fir1(N-1,wc,hamming(N); 图28 带通滤波器的幅频图和相频图如图所示为滤波后语音信号的时域图和频谱图。其滤波程序如下:hn=filter(hn,1,z); 图29 滤波后语音信号的时域图和频谱图 总结及心得体会近一周的课程设计终于接近尾声,在这一周里,我感觉到了自己很多的不足,同时也有着诸多的辛酸与收获。首先,这次的课程设计与以往的课程设计有着很大的不同之处,在时间上相对于以往两周的课设,这次的时间仅仅为一个星期,或者

33、说4天,这个对我们来说时间上还是比较紧的,需要合理的安排分配时间才能够及时的完成;在分组上,此次的设计采用一人一组的形式,和以往一组23人的形式相比,这次的实习就缺乏了组员之间的分工与讨论,对个人独立解决问题的能力还是要求相对比较高的。总的来说,这次的实习对我来说是一项挑战吧,需要我迎难而上认真独立完成。在课设的过程中让我感受很深的还是自己能力的不足,让自己觉得挺失望的。这次的实习主要是以数字信号处理的知识为理论基础,以MATLAB编程为工具完成对信号的处理。可是自我反省,觉得首先在数字信号的理论基础这一点上,那些理论知识基本上是学过之后便忘记了,不会付诸于应用,然后再课设的过程中需要自己去花

34、费大量的时间学习,所以就会想要啥自己的理论知识足够扎实就好了。其次对于MATLAB的应用,觉得以前对于MATLAB的学习还是不够深入,基本上是依样画葫芦的设计一些较为基础简单的程序,不能灵活的运用于自我独立编程。可是现在的课设和以往的平时的学习就不一样了,需要自己灵活的运用所学的知识进行编程,不得不说让我觉得很烧脑,有时候一个程序调试了大半天都没有得到想要的结果,那种感觉确实很不好。虽说课设烧脑那是肯定的,但是收获也不少。我觉得课设的目的之一就是以课程设计来实践完善平时理论知识的不足,同时锻炼动手操作能力,可以说课程设计和理论学习是一个相辅相成的过程。我也确实对MATLAB这样一个强大的工具有

35、了更深刻的理解,比如其对声音信号的提取,加入噪声的过程以及滤除噪声的过程。若联系实际生活我想这与我们生活中的声音、图像等方面信息的处理也是有着很大的关联的,不得不说其实在大学里若认真去学,还是可以学到很多精彩的东西。我很清楚的知道自己是本科毕业以后将要就要面临找工作的人,通过这样一次课程设计来补充自己理论知识的不足,提高自己的动手操作能力,为自己以后的就业夯实基础,我觉得这是一个很有效的途径。虽然自己现在的能力与以后就业所需要的能力相比还存在着较大的差距,但是我也不可以因此而自暴自弃,不能让自己的能力不足成为我停滞不前的借口。学习是一个终身的的过程,虽然这次的课设已经结束,我想其在我以后学习生

36、活道路上的影响必定是深远的。参考文献1 刘卫国MATLAB程序设计应用M北京:高等教育出版社,20082 赵红怡数字信号处理及MATLAB实现M北京:化学工业出版社,20023 高西全,丁玉美数字信号处理(第三版)M陕西:西安电子科技大学出版社,20104 何强,何英MATLAB扩展编程M北京:清华大学出版社,2002 附录A 切比雪夫滤波器完整程序I切比雪夫低通滤波器x,Fs,bits=wavread('C:UsersacerDesktop邓紫棋-你把我灌醉.wav');x=x(:,1);figure(1);subplot(2,1,1);plot(x);sound(x,Fs,

37、bits);title('语音信号时域波形图');y=fft(x,3260);f=(Fs/1630)*1:1630;subplot(2,1,2);plot(f(1:1630),abs(y(1:1630);title('语音信号频谱图');t=0:length(x)-1;zs=0.05*cos(2*pi*10000*t/22050);zs0=0.05*cos(2*pi*10000*t/22050000);figure(2);subplot(2,1,1)plot(zs0)title('噪声信号波形');zs1=fft(zs,1200);sound(z

38、s,Fs,bits); %回放噪音 subplot(2,1,2)plot(f(1:600),abs(zs1(1:600);title('噪声信号频谱');%加噪声之后的语音x1=x+zs' %sound(x1,Fs,bits); 回放加入噪声后的语音y1=fft(x1,1200);figure(3);subplot(3,1,1);plot(x1);title('加入噪声后的信号波形');subplot(3,1,2);plot(f(1:600),abs(y1(1:600);title('加入噪声后的信号频谱')%低通滤波器wpz=2*450

39、0/fs;wsz=2*4700/fs;wp=2*fs*tan(wpz*pi/2);ws=2*fs*tan(wsz*pi/2);rp=2;rs=35;N,wc=cheb2ord(wp,ws,rp,rs,'s');b,a=cheby2(N,rs,wc,'s');bz,az=bilinear(b,a,fs);H,W=freqz(bz,az);figure(4); plot(w,abs(h);title('切比雪夫低通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid on;yd=fi

40、lter(az,bz,x1);figure(5);subplot(2,1,1);plot(yd);title('滤波后的时域波形图');ydd=fft(yd,800);subplot(2,1,2);plot(f(1:600),abs(ydd(1:600);title('滤波后的频域波形图');sound(yd,Fs,bits);II切比雪夫高通滤波器x,Fs,bits=wavread('C:UsersacerDesktop邓紫棋-你把我灌醉.wav');x=x(:,1);figure(1);subplot(2,1,1);plot(x);sound

41、(x,Fs,bits);title('语音信号时域波形图');y=fft(x,3260);f=(Fs/1630)*1:1630;subplot(2,1,2);plot(f(1:1630),abs(y(1:1630);title('语音信号频谱图');%被污染的语音L=length(x);zs0=0.5*randn(L,2);figure(2);subplot(2,1,1)plot(zs0)title('噪声信号波形');zs1=fft(zs,1200);sound(zs,Fs,bits); %回放噪音 subplot(2,1,2)plot(f(1

42、:600),abs(zs1(1:600);title('噪声信号频谱');%加噪声之后的语音x1=x+zs'%sound(x1,Fs,bits); %回放加入噪声后的语音y1=fft(x1,1200);figure(3);subplot(3,1,1);plot(x1);title('加入噪声后的信号波形');subplot(2,1,2);plot(f(1:600),abs(y1(1:600);title('加入噪声后的信号频谱');%高通fp=3000;fs=2800;Fs=22050;rp=1;rs=100;wp=2*pi*fp/Fs;

43、ws=2*pi*fs/Fs;Fs=Fs/Fs;wap=2*tan(wp/2);was=2*tan(ws/2);N,wc=cheb1ord(wp,ws,rp,rs,'s');B,A=cheby1(N,rp,wc,'high','s');Bz,Az=bilinear(B,A,Fs);figure(4);h,w=freqz(Bz,Az,512,Fs*22050);plot(w,abs(h);title('切比雪夫高通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid

44、on;yd=filter(Bz,Az,x1);figure(5);subplot(3,1,2);plot(yd);title('滤波后的时域波形图');ydd=fft(yd,800);subplot(3,1,3);plot(f(1:600),abs(ydd(1:600);title('滤波后的频域波形图');切比雪夫带通滤波器x,Fs,bits=wavread('C:UsersacerDesktop64ca9e36e190eb780c00b59c4459a6d5.wav');x=x(:,1);figure(1);subplot(2,1,1);pl

45、ot(x);sound(x,Fs,bits);title('语音信号时域波形图');y=fft(x,3260);f=(Fs/1630)*1:1630;subplot(2,1,2);plot(f(1:1630),abs(y(1:1630);title('语音信号频谱图');%被污染的语音t=0:length(x)-1;zs=0.05*cos(2*pi*10000*t/22050);zs0=0.05*cos(2*pi*10000*t/22050000);figure(2);subplot(2,1,1)plot(zs0)title('噪声信号波形');

46、zs1=fft(zs,1200);sound(zs,Fs,bits); %回放噪音 subplot(2,1,2)plot(f(1:600),abs(zs1(1:600);title('噪声信号频谱');%加噪声之后的语音x1=x+zs'%sound(x1,Fs,bits); %回放加入噪声后的语音y1=fft(x1,1200);figure(3);subplot(2,1,1);plot(x1);title('加入噪声后的信号波形');subplot(2,1,2);plot(f(1:600),abs(y1(1:600);title('加入噪声后的信

47、号频谱');fs1=500;fp1=800;fpu=1500;fsu=2000;Fs=22050'rp=1;rs=100;wp=2*pi*fp1,fpu/Fs;ws=2*pi*fs1,fsu/Fs;Fs=Fs/Fs;wap=2*tan(wp/2);was=2*tan(ws/2);N,wc=cheb1ord(wp,ws,rp,rs,'s');B,A=cheby1(N,rp,wc,'s');Bz,Az=bilinear(B,A,Fs);h,w=freqz(Bz,Az,512,Fs*22050);figure(4);plot(w,abs(h);titl

48、e('切比雪夫带通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid on;yd=filter(Bz,Az,x1);figure(5);subplot(2,1,1);plot(yd);title('滤波后的时域波形图');ydd=fft(yd,800);subplot(2,1,2);plot(f(1:600),abs(ydd(1:600);title('滤波后的频域波形图');sound(yd,Fs,bits);附录加窗滤波器完整程序I hamming窗低通滤波器完整程序fs=

49、22050;y,fs,nbits=wavread('C:UsersacerDesktop邓紫棋-你把我灌醉.wav');y=y(1:32768)+0.5;figure(1)subplot(2,1,1);plot(abs(y);xlabel('n');ylabel('y');title('原语音信号时域波形')y=y-0.5;Y=fft(y,32768);f=22050*(0:16384)/32768;subplot(2,1,2);plot(f,abs(Y(1:16385);xlabel('f');ylabel(&#

50、39;Y');title('原语音信号频谱图')t=0:0.000045:0.90855;x1=0.06*sin(2*pi*5500*t)+0.07*sin(2*pi*6000*t);x=rot90(x1,2),rot90(x1,2);x=x(1:32768);z=x+y;figure(2)subplot(2,1,1);plot(z);xlabel('n');ylabel('z');title('被污染语音信号时域波形')Z=fft(z,32768);f=22050*(0:16384)/32768;subplot(2,1,

51、2);plot(f,abs(Z(1:16385);xlabel('f');ylabel('Z');title('被污染语音信号频谱图')wpz=2*1000*pi/fs;wsz=2*1200*pi/fs;rs=100;Bt=wsz-wpz;N0=ceil(6.6*pi/Bt);N=N0+mod(N0+1,2);wc=(wpz+wpz)/2/pi;hn=fir1(N-1,wc,hamming(N);figure(3)freqz(hn,1,32678);figure(4)hn=filter(hn,1,z);H=fft(hn,32768);f=2205

52、0*(0:16382)/32768;sound(H,fs,nbits);subplot(2,1,2);plot(f,abs(H(1:16383);xlabel('f');ylabel('H');title('滤波后语音信号频谱图')subplot(2,1,1);hn=hn+0.5;plot(abs(hn);xlabel('n');ylabel('hn');title('滤波后语音信号时域波形')hamming高通滤波器完整程序fs=22050;y,fs,nbits=wavread('C:Us

53、ersacerDesktop邓紫棋-你把我灌醉.wav');y=y(1:32768);figure(1)subplot(2,1,1);plot(y);xlabel('n');ylabel('y');title('原语音信号时域波形')Y=fft(y,32768);f=22050*(0:16384)/32768;subplot(2,1,2);plot(f,abs(Y(1:16385);xlabel('f');ylabel('Y');title('原语音信号频谱图')t=0:0.000045:0.90855;x1=0.1*sin(2*pi*100*t)+0.2*sin(2*pi*220*t);x=rot90(x1,2),rot90(x1,2);x=x(1:32768);z=x+y;figure(2)subplot(2,1,1);plot(z);xlabel('n');ylabel('z');title('被污染语音信号时域波形')Z=fft(z

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论