基于matlab的声音信号处理_第1页
基于matlab的声音信号处理_第2页
基于matlab的声音信号处理_第3页
基于matlab的声音信号处理_第4页
基于matlab的声音信号处理_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、word基于MATLAB的有噪声的语音信号处理一、课程设计题目: 基于MATLAB的有噪声的语音信号处理。 二、课程设计的目的: 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,再利用MATLAB做为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。 三、课程设计的要求: (1)熟悉离散信号和系统的时域特性。 (2)掌握序列快速傅里叶变换FFT方法。 (3)学会MATLAB的使用,掌握MATLAB的程序设计方法。 (4)利用MATLAB对语音信号进行频谱分析。 

2、;(5)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法。 四、课程设计的内容: 录制一段语音信号,对语音信号进行频谱分析,利用MATLAB中的随机函数产生噪声参加到语音信号中,使语音信号被污染,然后进行频谱分析,设计FIR数字滤波器,并对噪声污染的语音信号进行滤波,分析滤波后的信号的时域和频域特征,回放语音信号。 五、课程设计的步骤:1 语音信号的采集及分析通过录音软件录制一段语音“数字信号处理,命名为“120,时长大约1到2秒,在 Matlab软件平台下可以利用函数wavread对语音信号进行采样:y,fs,nbits=wavread('

3、120'); %语音信号的采集 采样值放在向量y中,采样频率为fs,采样位数为nbits。2 语音信号的频谱分析画出语音信号的时域波形,然后对语音信号进行频谱分析,在MATLAB中,通过使用fft函数对信号进行快速傅里叶变换,得到信号的频谱特性。  因此采集语音并绘出波形和频谱的模块程序如下:y,fs,nbits =wavread('120.wav ') ;n=length(y); %求出声音长度t=0:1/fs:(n-1)/fs; %时间t 从0到n-1sound(y,fs) ; %对加载的语音信号进行回放subplot(2,1,1);p

4、lot(y); %做原始语音信号的时域图形title('原始语音信号时域波形'); grid;%傅里叶变换y1=fft(y,n); %做原始语音信号的傅里叶变换 %对原始信号频域分析%y2=fftshift(y1);subplot(2,1,2);plot(abs(y1); %原始信号的频谱图像title('原始信号的频谱图像');grid;结果如下:可以看到,语音信号的频率集中在低频局部。 3给原始信号加上一个随机噪声在MATLAB中,通过使用randn函数产生随机噪声信号在,把语音信号与噪声信号进行叠加,并对其进行播放,然后对参加噪声后的语音信号进行频谱分析,

5、在MATLAB中可以利用函数FFT对信号进行快速傅里叶变换。产生随机噪声: Noise=0.05*randn(n,2);其中用0.05倍乘噪声用来适当削减噪声的作用,便于对语音信号进行处理并比拟效果。将原语音信号与noise叠加,调用的形式为:s=y+noise;其中,y为原语音信号,noise为所构造的随机高斯噪声,s即为两者的叠加后的语音信号。4 噪声频谱分析产生噪声并绘出波形和频谱的模块程序如下:noise=0.05*randn(n,2);subplot(2,1,1);plot(noise); %噪声信号title('噪声信号');grid; %噪声信号傅里叶变

6、换sound(noise,fs) ; %对噪声信号进行回放 noifft=fft(noise); %对噪声信号频域分析noifftsh=fftshift(noifft);subplot(2,1,2);plot(abs(noifftsh); %做噪声信号频谱分析title('噪声信号频域分析');axis(0,30000,0,200);grid;结果如下:可以看到,随机噪声均匀的分布在整个频谱范围内。5污染信号频谱分析对被污染的加噪信号进行时域和频域分析。  加噪声并分析信号波形频谱的模块程序及说明如下:n2=length(noise);s=noise+y;

7、%噪声叠加sound(s,fs);subplot(2,1,1);plot(s); title('叠加信号');grid; %参加噪声的信号频谱分析wavbofft=fft(s,n); %混合信号频谱分析wavbofftshift=(wavbofft);subplot(2,1,2);plot(abs(wavbofftshift); %混合信号的频谱分析title('混合信号频谱分析');axis(0,30000,0,400);grid;结果如下:随机噪声均匀的分布在整个频谱范围内。6设计一个滤波器,滤除高频噪声在 MATLAB中 ,可以利用函数 butterwor

8、th,设计FIR滤波器,用设计好的滤波器对含噪语音信号进行滤波,在Matlab中 ,FIR滤波器利用函数filter对信号进行滤波。模块程序及说明如下:%巴特沃思滤波器-低通滤波器Fp=1200;Fs=20000;wp=Fp/fs;ws=Fs/fs;n11,wn11=buttord(wp,ws,1,50,'s'); %低通滤波器的阶数和截止频率b11,a11=butter(n11,wn11,'s'); %S域频率响应的参数num11,den11=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应S域到Z域的变换wav1=filter(nu

9、m11,den11,s); %得到滤波后的信号sound(wav1,fs,nbits); %回放原信号 %显示滤波后的信号时域图形subplot(3,1,1);plot(wav1); %显示滤波后的信号时域图形title('滤波后的信号频谱分析');grid;subplot(3,1,2);plot(abs(y1); %原始信号的频谱图像title('原始信号的频谱图像');grid; %对滤波后的信号傅里叶变换wav1fft=fft(wav1); %对滤波后的信号进行频谱分析wav1fftsh=fftshift(wav1fft);subplot(3,1,3);%plot(abs(wav1fftsh);plot(abs(wav1fft); %显示波后的信号进行频谱title('滤波后信号的频谱分析');可以看出,滤波后将非低频局部的噪声频率滤掉。六、课程设计总结: 在这次课程设计中,我设计制

温馨提示

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

评论

0/150

提交评论