1 / 7
文档名称:

基于matlab的声音信号处理.doc

格式:doc   大小:95KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于matlab的声音信号处理.doc

上传人:fr520520 2018/6/25 文件大小:95 KB

下载得到文件列表

基于matlab的声音信号处理.doc

文档介绍

文档介绍:基于MATLAB的有噪声的语音信号处理
一、课程设计题目: 
基于MATLAB的有噪声的语音信号处理。
 
二、课程设计的目的: 
综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,再利用MATLAB做为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
 
三、课程设计的要求: 
(1)熟悉离散信号和系统的时域特性。 
(2)掌握序列快速傅里叶变换FFT方法。 
(3)学会MATLAB的使用,掌握MATLAB的程序设计方法。 
(4)利用MATLAB对语音信号进行频谱分析。 
(5)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法。
 
四、课程设计的内容: 
录制一段语音信号,对语音信号进行频谱分析,利用MATLAB中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析,设计FIR数字滤波器,并对噪声污染的语音信号进行滤波,分析滤波后的信号的时域和频域特征,回放语音信号。
 
五、课程设计的步骤:
(1) 语音信号的采集及分析
通过录音软件录制一段语音“数字信号处理”,命名为“120”,时长大约1到2秒,在 Matlab软件平台下可以利用函数wavread对语音信号进行采样:
[y,fs,nbits]=wavread('120'); %语音信号的采集 采样值放在向量y中,采样频率为fs,采样位数为nbits。
(2) 语音信号的频谱分析
画出语音信号的时域波形,然后对语音信号进行频谱分析,在MATLAB中,通过使用fft函数对信号进行快速傅里叶变换,得到信号的频谱特性。 
 
因此采集语音并绘出波形和频谱的模块程序如下:
[y,fs,nbits] =wavread(' ') ;
n=length(y); %求出声音长度
t=0:1/fs:(n-1)/fs; %时间t 从0到n-1
sound(y,fs) ; %对加载的语音信号进行回放
subplot(2,1,1);
plot(y); %做原始语音信号的时域图形
title('原始语音信号时域波形');
grid;
%傅里叶变换
y1=fft(y,n); %做原始语音信号的傅里叶变换

%对原始信号频域分析
%y2=fftshift(y1);
subplot(2,1,2);
plot(abs(y1)); %原始信号的频谱图像
title('原始信号的频谱图像');
grid;
结果如下:
可以看到,语音信号的频率集中在低频部分。
(3)给原始信号加上一个随机噪声
在MATLAB中,通过使用randn函数产生随机噪声信号在,把语音信号与噪声信号进行叠加,并对其进行播放,然后对加入噪声后的语音信号进行频谱分析,在MATLAB中可以利用函数FFT对信号进行快速傅里叶变换。
产生随机噪声: Noise=*randn(n,2);
,便于对语音信号进行处理并比较效果。
将原语音信号与noise叠加,调用的形式为:
s=y+noise;
其中,y为原语音信号,noise为所构造的随机高斯噪声,s即为两者的叠加后的语音信号。
(4) 噪声频谱分析
产生噪声并绘出波形