当前位置:文档之家› 基于MATLAB有噪声语音信号处理

基于MATLAB有噪声语音信号处理

课程设计报告
课程设计题目:基于matlab的语音信号处理
学号:201420130119
学生姓名:冯叶青
专业:通信工程
班级:1421301
指导教师:吴有用
2016年12月18日
基于MATLAB 有噪声语音信号处理
题目一:基于Matlab 的语音信号处理 设计内容:
录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;根据给定的低通滤波器,对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。

设计步骤:
(1)语音信号的采集
利用Windows 下的录音机,录制一段自己的话音,时间在1 s 内。

然后在Matlab 软件平台下,利用函数wavread 对语音信号进行采样,记住采样频率和采样点数。

通过wavread 函数的使用,使学生理解采样频率、采样位数等概念。

(2)语音信号的频谱分析
画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,加深学生对频谱特性的理解。

(3)给定某IIR 数字低通滤波器如下:
1
1
0.330.33()10.33z
H z z --+=-
即滤波器的分子系数b=[0.33,0.33],分母系数a=[1,-0.33]。

(4)用滤波器对信号进行滤波
用给定的低通滤波器对采集的信号进行滤波,在Matlab中, IIR 滤波器利用函数filter对信号进行滤波。

(5)比较滤波前后语音信号的波形及频谱
在一个窗口同时画出滤波前后的波形及频谱。

(6)回放语音信号
在Matlab中,函数sound可以对声音进行回放。

其调用格式:sound(x,fs,bits);感觉滤波前后的声音变化。

一设计内容
选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析;利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计FIR数字滤波器,并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征,回放语音信号。

三设计的具体实现
1语音信号的时频分析
利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。

再对其进行采样,记住采样频率和采样点数。

下面介绍wavread 函数几种调用格式。

(1)y=wavread(file)
功能说明:读取file所规定的wav文件,返回采样值放在向量y中。

(2)[y,fs,nbits]=wavread(file)
功能说明:采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。

接下来,对语音信号kalong.wav进行采样。

其程序如下:
[y,fs,nbits]=wavered (‘kalong’);把语音信号加载入Matlab 仿真软件平台中
然后,画出语音信号的时域波形,再对语音信号进行频谱分析。

MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:
Xk=fft(xn,N)
参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。

当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。

在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。

其程序如下:
[x,fc,nbits]=wavread ('kalong.wav');
sound(x,fc,nbits); %回放语音信号,明显听出有尖锐的单频啸叫声N=length(x); %求出语音信号的长度
t=0:1/fc:(size(x)-1)/fc;
X=abs(fft(x,N)); %傅里叶变换
X=X(1:N/2); f=fc/N*(0:1:(N/2)-1); figure(1) subplot(2,1,1); plot(t,x);
title('原始信号波形');xlabel('s'); subplot(2,1,2);
plot(f,abs(X));%可见声音信号频谱在0~4e3范围之内 title('原始信号频谱');xlabel('Hz');ylabel('幅度'); 程序结果如下图:
2
4
68
10
12
-0.2
-0.100.1
0.2原始信号波形
s
020004000
600080001000012000
5001000
1500原始信号频谱
Hz
幅度
2 语音信号加噪与时谱分析
在本次设计中,我们是利用MATLAB中加入单频率噪声到语音信号中,模仿语音信号被污染,并对其频谱分析。

语音信号添加噪声及其频谱分析的主要程序如下:
4 滤波后语音信号的波形及频谱
a=[0.33,0.33];
b=[1,-0.33];
z=freqz(a,b);系统函数
y=filter(b,a,,y) %用设计好的滤波器对y进行滤波
figure(2);
sound(y_fil,fc,nbits); % 播放消噪之后的声音信号
figure(5);
subplot(2,1,1);plot(t,y_fil);grid on;
title('经过滤波后时域信号');xlabel('s');
subplot(2,1,2);plot(f,Y_fil);grid on;
title('经过滤波后信号频谱'); xlabel('Hz');ylabel('幅度');
得到如图结果:
2
4
6810
12
-0.2
-0.100.1
0.2经过滤波后时域信号
s
020004000
600080001000012000
5001000
1500经过滤波后信号频谱
Hz
幅度
三 小结
“基于MATLAB 的有噪声语音信号处理”是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音及加噪处理。

本设计圆满的完成了对加噪声语音信号的读取与打开,与设计内容的要求十分相符;也较好的完成了对原始语音信号和加噪声后的语音信号的频谱分析,通过fft 变换,得出了语音信号的频谱图;在滤波这一部分,主要用窗函数法设计FIR 滤波器,实现了预期的滤波效果。

东华理工大学
课程设计评分表
学生姓名:冯叶青班级:1412301 学号:201420130119
课程设计题目:基于matlab的语音信号处理
项目内容满分实评
选题能结合所学课程知识、有一定的能力训练。

符合选题要求
(5人一题)
10 工作量适中,难易度合理10
能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10 理论依据充分,数据准确,公式推导正确10
能应用计算机软件进行编程、资料搜集录入、加工、排版、
制图等
10 能体现创造性思维,或有独特见解10
成果质量总体设计正确、合理,各项技术指标符合要求。

10 说明书综述简练完整,概念清楚、立论正确、技术用语准确、
结论严谨合理;分析处理科学、条理分明、语言流畅、结构
严谨、版面清晰
10
设计说明书栏目齐全、合理,符号统一、编号齐全。

格式、
绘图、表格、插图等规范准确,符合国家标准
10 有一定篇幅,字符数不少于5000 10
总分100
指导教师评语:
指导教师签名:
年月日。

相关主题