126710100电子信息工程专业 课程设计、实验报告、毕业设计、
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
福建农林大学金山学院
电子信息工程类
课程设计报告
课程名称:数字信号处理课程设计
课程设计题目:基于MATLAB的语音信号滤波处理姓名:陈振韦
系:信息与机电工程系
专业:电子信息工程
年级:2012级
学号:126710100
指导教师:范群贞
职称:助教
2015年1 月9 日
福建农林大学金山学院电子信息工程类
课程设计结果评定
目录
1.课程设计的目的 (4)
2.课程设计的要求 (4)
3. 课程设计报告内容 (4)
3.1 采集信号 (4)
3.2 频谱分析 (4)
3.3干扰信号构建 (5)
3.4合成信号 (6)
3.5用数字滤波器对加噪的语音信号进行滤波 (7)
4.总结 (9)
5.设计体会 (10)
基于MATLAB的语音信号滤波处理
1.课程设计的目的
随着信息技术的发展,信号处理正朝着数字化、软件化方向发展。数字信号处理的主要研究对象是语音信号和图像信号,语音信号的研究可以从时域和频域两个方面来进行。在语音信号处理方面,人们经常是从频域上进行的,并且普遍采用数字滤波器对语音信号进行滤波处理。数字滤波器主要有无限长脉冲响应(IIR)滤波器和有限长脉冲响应(FIR)滤波器两大类,其设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和切比雪夫逼近法等等[2],但如何在语音的滤波处理上找到一种最佳的滤波方案确是一个重要的问题。随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅方便于数字滤波器的设计,而且还可以使设计达到最优化。本文介绍了IIR及FIR数字滤波器的原理,在MATLAB中实现了用双线性变换法设计的IIR及窗函数设计的FIR滤波器的设计,通过对语音信号进行仿真分析,在语音的滤波处理上找到一种最佳的滤波方案。
2.课程设计的要求
1、掌握在MATLAB环境下语音信号的采集方法。
2、构建的干扰信号为f(t)=10sin(4000t)。
3、掌握数字信号处理的基本概念、基本理论、基本方法。
4、利用MATLAB设计滤波器对干扰的语音信号进行滤波。
5、掌握MATLAB的程序设计方法。
3.课程设计报告内容
3.1 采集信号
利用Windows下的录音机,录制一句自己的话,保存为“a.wav”文件。
3.2 频谱分析
[y,fs,bits]=wavread('C:\Users\Administrator\Desktop\a.wav');
n=length(y)
y_p=fft(y,n); %对n点进行傅里叶变换到频域 f=fs*(0:n/2-1)/n; %
对应点的频率
figure(1)
subplot(2,1,1);
plot(y); %语音信号的时域波形图title('原始语音信号时域波形');
xlabel('时间')
ylabel('幅度')
subplot(2,1,2);
plot(f,abs(y_p(1:n/2))); %语音信号的频谱图axis([0 20000 0 600]);
title('原始语音信号频谱图');
xlabel('频率Hz');
ylabel('幅度');
3.3干扰信号构建
[y,fs,bits]=wavread('C:\Users\Administrator\Desktop\a.wav');
n=1000
t=(0:n-1)/100000;
f=fs*(0:n/2-1)/n;
y1=10*sin(2*pi*2000*t );
y2=fft(y1,10*n);
subplot(2,1,1);
plot(y1) %干扰信号的时域图 title('干扰信号时域图'); xlabel('时间')
ylabel('幅度')
subplot(2,1,2);
plot(f,abs(y2(1:n/2))); % 干扰信号的频谱图
title('干扰信号频谱图');
xlabel('频率');
ylabel('幅度');
3.4合成信号
程序: L=length(y) t=(0:L-1)/30000;
A=10;
f=4000;
noise=[A*sin(f*pi*t)]';
y_z=y+[noise noise] sound(y_z,fs);
y_zp=fft(y_z,n);
f=fs*(0:n/2-1)/n;
figure(2)
subplot(2,1,1);
plot(y_z);
axis([0 50 -12 12]);
title('加噪信号时域波形');
xlabel('时间')
ylabel('幅度')
subplot(2,1,2);
plot(f,abs(y_zp(1:n/2)));
%加噪语音信号的频谱图 axis([0 5000 0 1000]);
title('加噪信号频谱图');
xlabel('频率');
ylabel('幅度');
3.5用数字滤波器对加噪的语音信号进行滤波
这里采用FIR数字滤波器,设计FIR数字滤波器的基本方法有窗函数法、频率抽样法、波纹切比雪夫逼近法等,在此使用基于窗函数法设计FIR数字滤波器及其