- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MATLAB的有噪声的语音信号处理的课程设计
DSP实验课程设计实验报告
姓名: 学号: 班级:
课程设计题目:
基于MATLAB的有噪声的语音信号处理的课程设计。
课程设计的目的:
综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,再利用MATLAB做为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
课程设计的要求:
(1)熟悉离散信号和系统的时域特性。
(2)掌握序列快速傅里叶变换FFT方法。
(3)学会MATLAB的使用,掌握MATLAB的程序设计方法。
(4)利用MATLAB对语音信号进行频谱分析。
(5)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法。
课程设计的内容:
录制一段语音信号,对语音信号进行频谱分析,利用MATLAB中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析,设计FIR和IIR数字滤波器,并对噪声污染的语音信号进行滤波,分析滤波后的信号的时域和频域特征,回放语音信号。
课程设计的步骤:
(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([ 00000 80000 -1 1]); %通过尝试确定合适的坐标参数
grid;
subplot(2,1,2); %绘出频域频谱
plot(abs(Y));
title(原始信号频谱,fontweight,bold);
axis([ 0 150000 0 4000]); %通过尝试确定合适的坐标参数
grid;
结果如下:
可以看到,语音信号的频率集中在低频部分。
(3)产生噪声信号
在MATLAB中,通过使用randn函数产生随机噪声信号,并加到语音信号中得到被污染的语音信号,回放语音信号。
产生随机噪声:
Noise=0.2*randn(n,1);
其中用0.2倍乘噪声用来适当削减噪声的作用,便于对语音信号进行处理并比较效果。
(4)污染信号频谱分析
对被污染的加噪信号进行时域和频域分析。
加噪声并分析信号波形频谱的模块程序及说明如下:
[y,fs,nbits]=wavread(OriSound.wav); %语音信号采集
sound(y,fs,nbits); %回放语音信号便于比较效果
n = length (y) ; %计算语音信号长度
Noise=0.2*randn(n,1); %产生随机噪声信号Noise
s=y+Noise; %将Noise添加到原始信号,得到污 染信号s
sound(s); %回放污染信号s
figure;
subplot(2,1,1); %绘制加噪信号时域波形
plot(s);
title(加噪语音信号的时域波形,fontweight,bold);
axis([ 00000 80000 -1 1]);
grid;
S=fft(s); %对s进行快速傅里叶变换得到频谱
subplot(2,1,2); %绘制加噪信号频域频谱
plot(abs(S));
title(加噪语音信号的时域波形,fontweight,bold);
axis([ 0 150000 0 4000]);
grid;
结果如下:
可以看到,随机噪声均匀的分布在整个频谱范围内。
(5)设计FIR和IIR数字滤波器
在MATLAB中,根据频谱特征设计FIR和II
文档评论(0)