语音信号处理与滤波_第1页
语音信号处理与滤波_第2页
语音信号处理与滤波_第3页
语音信号处理与滤波_第4页
语音信号处理与滤波_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、语音信号处理与滤波 班 级: xxxxxx 学 号: xxxxx 姓 名: xxx 指导老师: xxx 成 绩: 二一五年五月二十七目录一、设计要求1二、设计步骤12.1 理论依据12.2 信号采集12.3 构造受干扰信号并对其进行FFT频谱分析12.4 数字滤波器设计12.5 信号处理2三、课程设计实现23.1 语音信号的采集23.2 语音信号的FFT频谱分析23.3 构造受干扰信号并对其进行FFT频谱分析43.4 设计数字滤波器63.5 用滤波器对加噪语音信号进行滤波73.6 比较滤波前后语音信号的波形及频谱7四、心得体会9五、参考文献11六、源程序代码11一、设计要求 本次课程设计要求利

2、用MATLAB对语音信号进行数字信号处理和分析,要求采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。二、设计步骤 2.1 理论依据 根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理; 时域信号的FFT分析;数字滤波器设计原理和方法,各种不同类型滤波器的性能比较),阐明设计原理。 2.2 信号采集采集语音信号,并对其进行FFT频谱分析,画出信号时域波形图和频谱图。 2.3 构造受干扰信号并对其进行FFT频谱分析 对所采集的语音信号加入干扰噪声,对语音

3、信号进行回放,感觉加噪前后声音的变化,分析原因,得出结论。并对其进行FFT频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析,阐明原因,得出结论。 2.4 数字滤波器设计 根据待处理信号特点,设计合适数字滤波器,绘制所设计滤波器的幅频和相频特性。 2.5 信号处理 用所设计的滤波器对含噪语音信号进行滤波。对滤波后的语音信号进行FFT频谱分析。画出处理过程中所得各种波形及频谱图。 对语音信号进行回放,感觉滤波前后声音的变化。比较滤波前后语音信号的波形及频谱,对所得结果和滤波器性能进行频谱分析,阐明原因,得出结论。三、课程设计实现 3.1 语音信号的采集利用PC 机上的声卡和WINDO

4、WS 操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。以文件名“12020.wav”保存入E: 中,将文件以wav格式保存。 3.2 语音信号的FFT频谱分析通过用windows录音之后,将录音的文件导入到MATLAB中,利用wavread函数对语音信号进行采样,并使用MATLAB绘出采样后的语音信号的时域波形和频谱图。 Wavread 函数调用格式y=wavread(file) %读取file所规定的wav文件,返回采样值放在向量y中。y,fs,nbi

5、ts=wavread(file) %采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。y=wavread(file,N) %读取钱N点的采样值放在向量y中。y=wavread(file,N1,N2) %读取从N1到N2点的采样值放在向量y中。对语音信号speech.wav进行采样其程序如下:y,fs,nbits=wavered ('speech'); %把语音信号进行加载入Matlab 仿真软件平台中fs =8000nbits =8然后画出语音信号的时域波形,然后对语音信号进行频谱分析。在matlab中利用fft对信号进行快速傅里叶变换,得到信号的频谱特性。

6、其程序如下:fs=8000,bits=8,T=1,Ts=1/fs;N=T/Ts;x,fs,bits=wavread('E:12020.wav');x=x(:,1);subplot(321);plot(x);sound(x,fs,bits);title('时域波形图')y=fft(x,1024); n=(fs/1024)*1:1024; subplot(322);plot(n(1:512),abs(y(1:512);title('频谱图');程序结果如图3.2:图 3.2 3.3 构造受干扰信号并对其进行FFT频谱分析 在MATLAB软件平台下,给

7、原始的语音信号叠加上噪声。噪声类型分为如下几种:(1)白噪声;(2)单频噪声(正弦干扰);(3)多频噪声(多正弦干扰);(4)其它干扰,可设置为低频、高频、带限噪声,或Chirp干扰、冲激干扰。这里我们叠加单频正弦干扰噪声。 其程序如下:dt=0.01*sin(2*pi*7000*(1:size(x)/fs);%dt1=fft(dt,1024);%plot(n(1:512),abs(dt1(1:512);x1=x+dt'%sound(x1,fs,bits);y1=fft(x1,1024);subplot(223);plot(x1);title('污染信号波形');sub

8、plot(224);plot(n(1:1024),abs(y1(1:1024);axis(0,12000,0,0.4);title('污染信号频谱');程序结果如图3.3:图 3.2之后对语音信号进行回放,感觉加噪前后声音的变化,并对其进行FFT频谱分析,比较加噪前后语音信号的波形及频谱,并对所得结果进行分析。 3.4 设计数字滤波器在设计一个数字滤波器之前,必须首先根据实际的需要来确定滤波器的技术指标,设计合适的数字滤波器,并画出滤波器的幅频特性。这里我们设计了一个切比雪夫滤波器。其程序如下:wp=1000*2*pi;ws=1200*2*pi;fs=2500;Rp=0.3;R

9、s=40; N,Wn=cheb1ord(wp,ws,Rp,Rs,'s');z,p,k=cheb1ap(N,Rp); A,B,C,D=zp2ss(z,p,k); AT,BT,CT,DT=lp2lp(A,B,C,D,Wn);b,a=ss2tf(AT,BT,CT,DT); bz,az=impinvar(b,a,fs); H,W=freqz(bz,az); plot(W*fs/(2*pi),abs(H); grid; title('切比雪夫滤波器幅频特性')xlabel('frequency/Hz'); ylabel('magnitude'

10、;); %切比雪夫滤波器切比雪夫滤波器的幅频特性如图3.4: 图 3.4 3.5 用滤波器对加噪语音信号进行滤波用自己设计的切比雪夫滤波器对加噪的语音信号进行滤波,在Matlab中,IIR滤波器利用函数filter对信号进行滤波。切比雪夫滤波器:X=filter(bz,az,x) 3.6 比较滤波前后语音信号的波形及频谱利用切比雪夫滤波器,程序如下:程序结果如图 3.6wp=1000*2*pi;ws=1200*2*pi;Rp=0.3;Rs=40; N,Wn=cheb1ord(wp,ws,Rp,Rs,'s');z,p,k=cheb1ap(N,Rp); A,B,C,D=zp2ss(

11、z,p,k); AT,BT,CT,DT=lp2lp(A,B,C,D,Wn);b,a=ss2tf(AT,BT,CT,DT); bz,az=impinvar(b,a,fs);H,W=freqz(bz,az); X=filter(bz,az,x)%sound(X,fs,bits);figure(2)X1=fft(X,1024)subplot(221);plot(X);title('处理后的信号波形');subplot(222);plot(n(1:512),abs(X1(1:512); title('处理后的信号频谱');图3.6四、心得体会在本次课程设计的过程中,主要

12、遇到的问题是原始语音信号的采集。有些语音信号在MATLAB中运行时不能达到理想中的状态,后来经过多次实验和对比,发现,一、录音时声音要足够的大,才能采集好的语音信号;二、要将录音后的文件后缀wma转换成wav的格式。其次就是在滤波器参数的选取上,开始时不清楚怎么选取,后来通过查找书本相关知识和与同学讨论才有效的解决这个问题。因此学习的过程是相互讨论共同进步的,多多讨论课题中遇到的问题,可以巩固我们的知识掌握能力,增加熟练运用度。从本次课程设计的中心来看,课题是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音信号的处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将

13、这些离散的量提取出来,就可以对其进行处理了。在这里,用到了处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭起了一座桥梁。课题的特色在于它将采集到的语音看作了一个向量,于是语音数字化了,则可以完全利用数字信号处理的知识来解决。我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。同时改变相关参数,理论结合实际,可以分析出各参数对图形的影响,从而加深对各个参数的理解。在完成这次课程设计过程中我学到了许多东西,进一步理解了滤波器设计的方法和各参数意义,通过分析信号时域和频域的关

14、系等,加深了对滤波性能的理解,而且学会了使用Matlab一些基本函数,增加了进一步学习Matlab软件的兴趣。同时,通过本次课程设计,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正学有所用,从而立锻炼了我的动手能力,和提高了我分析问题,解决问题的能力。五、源程序代码fs=8000,bits=8,T=1,Ts=1/fs;N=T/Ts;x,fs,bits=wavread('E:12020.wav');x=x(:,1);figure(1)subplot(221);plot(x);%sound(x,fs,

15、bits);title('时域波形图')y=fft(x,1024);n=(fs/1024)*1:1024; subplot(222);plot(n(1:512),abs(y(1:512);title('频谱图');dt=0.01*sin(2*pi*7000*(1:size(x)/fs);%dt1=fft(dt,1024);%plot(n(1:512),abs(dt1(1:512);x1=x+dt'%sound(x1,fs,bits);y1=fft(x1,1024);subplot(223);plot(x1);title('污染信号波形')

16、;subplot(224);plot(n(1:1024),abs(y1(1:1024);axis(0,12000,0,0.4);title('污染信号频谱');wp=1000*2*pi;ws=1200*2*pi;Rp=0.3;Rs=40; N,Wn=cheb1ord(wp,ws,Rp,Rs,'s');z,p,k=cheb1ap(N,Rp); A,B,C,D=zp2ss(z,p,k); AT,BT,CT,DT=lp2lp(A,B,C,D,Wn);b,a=ss2tf(AT,BT,CT,DT); bz,az=impinvar(b,a,fs);H,W=freqz(bz,

17、az); X=filter(bz,az,x)%sound(X,fs,bits);figure(2)X1=fft(X,1024)subplot(221);plot(X);title('处理后的信号波形');subplot(222);plot(n(1:512),abs(X1(1:512); title('处理后的信号频谱');%主程序wp=1000*2*pi;ws=1200*2*pi;fs=2500;Rp=0.3;Rs=40; N,Wn=cheb1ord(wp,ws,Rp,Rs,'s');z,p,k=cheb1ap(N,Rp); A,B,C,D=zp2ss(z,p,k); AT,BT,CT,DT=lp2lp(A,B,C,D,Wn);b,a=ss2tf(AT,B

温馨提示

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

评论

0/150

提交评论