数字信号处理课程设计--基于 MATLAB 的语音去噪处理 联系客服

发布时间 : 星期五 文章数字信号处理课程设计--基于 MATLAB 的语音去噪处理更新完毕开始阅读9a473157ec630b1c59eef8c75fbfc77da3699777

数字信号处理课程设计报告

工作量,有利于滤波器设计的最优化。

2 课程设计内容

录制一段自己的语音信号(可以录制含有噪音的信号,或者录制语音后再加进噪音信号),

要求:

(1)对语音信号进行采样;

(2)画出采样后语音信号的时域波形和频谱图;

(3)设计一个合适的滤波器,并画出滤波器的频率响应曲线;

(4)用设计的滤波器对语音信号进行滤波,画出滤波后信号的时域波形和频谱图;

(5)对滤波前后的信号进行对比,分析信号的变化; (6)回放语音信号。

3 课程设计的具体实现

3.1 语音信号的采集

利用PC 机上的声卡和WINDOWS 操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说一段话,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。以文件名“speech”保存入D:\\ MATLAB \\ work 中。可以看到,文件存储器的后缀默认为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准。

3.2 语音信号的时频分析

利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。下面介绍Wavread 函数几种调用格式。

(1)y=wavread(file)

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

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

5

数字信号处理课程设计报告

功能说明:读取钱N点的采样值放在向量y中。 (4)y=wavread(file,[N1,N2])

功能说明:读取从N1到N2点的采样值放在向量y中。 接下来,对语音信号speech.wav进行采样。其程序如下:

>> [y,fs,nbits]=wavered (‘speech.wav’); %把语音信号加载入Matlab 仿真软件平台中。

然后,画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:Xk=fft(xn,N)

参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。

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

[y,fs,bits]=wavread('speech.wav'); % sound(y,fs,bits); Y=fft(y,40000);%采样点数

subplot(211);plot(y);title('原始信号波形'); subplot(212);plot(abs(Y));title('原始信号频谱');

程序运行如下:

6

数字信号处理课程设计报告

3.3 语音信号加噪与频谱分析

在原始信号中加入高频噪音,其具体的程序如下:

fc=20000;%载波频率

y1=modulate(y,fc,fs,'fm');%对原语音信号调制 Y1=fft(y1,40000);%采样点数 40000 figure(2);

subplot(211);plot(y1);title('调制后信号波形'); subplot(212);plot(abs(Y1));title('调制后信号频谱'); % sound(y1);

对原信号进行调制得到的波形和频谱图如下:

7

数字信号处理课程设计报告

接着对调制后的信号加入原始信号,其程序为: % 调制信号+原始信号波形 y2=y+y1;

Y2=fft(y2,40000);%采样点数 40000 figure(3)

subplot(211);plot(y2);title('调制信号+原始信号波形'); subplot(212);plot(abs(Y2));title('调制信号+原始信号频谱'); % sound(y2);

得到的图形为: ;

8