基于MATLAB的有噪声的语音信号处理的课程设计 下载本文

内容发布更新时间 : 2024/10/2 5:47:35星期一 下面是文章的全部内容请认真阅读。

蒀DSP实验课程设计实验报告

葿姓名:学号:班级:

1.

2.课程设计题目:

薃基于MATLAB的有噪声的语音信号处理的课程设计。

3.

4.课程设计的目的:

羇综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,再利用

MATLAB做为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

5.

6.课程设计的要求:

蚂(1)熟悉离散信号和系统的时域特性。

羈(2)掌握序列快速傅里叶变换FFT方法。

虿(3)学会MATLAB的使用,掌握MATLAB的程序设计方法。

蚅(4)利用MATLAB对语音信号进行频谱分析。

螂(5)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法。

7.

8.课程设计的内容:

膇录制一段语音信号,对语音信号进行频谱分析,利用MATLAB中的随机函数产生噪声加入到语音信号中,使

语音信号被污染,然后进行频谱分析,设计FIR和IIR数字滤波器,并对噪声污染的语音信号进行滤波,分析滤波后的信号的时域和频域特征,回放语音信号。

9.

10.课程设计的步骤:

袂(1)语音信号的获取

螀通过录音软件录制一段语音“数字信号处理”,命名为“OriSound”,时长大约1到2秒,在MATLAB中,通

过使用wavread函数,对语音进行采样:

衿[y,fs,nbits]=wavread('OriSound');%语音信号的采集

蒇采样值放在向量y中,采样频率为fs,采样位数为nbits。

袂(2)语音信号的频谱分析

膁画出语音信号的时域波形,然后对语音信号进行频谱分析,在MATLAB中,通过使用fft函数对信号进行快

速傅里叶变换,得到信号的频谱特性。

芆因此采集语音并绘出波形和频谱的模块程序如下:

膆[y,fs,nbits]=wavread('OriSound'); %语音信号的采集 sound(y,fs,nbits); %语音信号的播放 n=length(y);

%计算语音信号的长度

羈Y=fft(y,n); %快速傅里叶变换 figure; subplot(2,1,1);

%绘出时域波形

蚈plot(y);

title('原始信号波形','fontweight','bold'); axis([0000080000-11]); grid; subplot(2,1,2); plot(abs(Y));

title('原始信号频谱','fontweight','bold'); axis([015000004000]); grid;

%通过尝试确定合适的坐标参数

%绘出频域频谱

%通过尝试确定合适的坐标参数

莂结果如下:

可以看到,语音信号的频率集中在低频部分。

肇(3)产生噪声信号

蚇在MATLAB中,通过使用randn函数产生随机噪声信号,并加到语音信号中得到被污染的语音信号,回放语

音信号。

肄产生随机噪声:

肀Noise=0.2*randn(n,1);

膇其中用0.2倍乘噪声用来适当削减噪声的作用,便于对语音信号进行处理并比较效果。

肈(4)污染信号频谱分析

薂对被污染的加噪信号进行时域和频域分析。

肃加噪声并分析信号波形频谱的模块程序及说明如下: