1、 编 号编 号 课程设计报告课程设计报告 题目:题目: 基于基于 MATLAB 的语音信号处理的语音信号处理 信 机 系系 电 子 信 息 工 程 专 业专 业 1 课程名称:数字信号处理课程名称:数字信号处理 1.实验目的实验目的 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计, 通过理论推 导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深 对所学知识的理解,建立概念。 2.实验基本要求实验基本要求 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。 掌握在 Windows 环境下语音信号采集的方法。 掌握数字信号处理的基本概念、基本理论和基本
2、方法。 掌握 MATLAB 设计 FIR 和 IIR 数字滤波器的方法。 学会用 MATLAB 对信号进行分析和处理。 3.实验仪器及设备实验仪器及设备 计算机 4.实验内容和步骤实验内容和步骤 录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号 的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计 滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号 进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比, 分析信号的变化;回放语音信号;最后,用 MATLAB 设计一信号处理系统界 面。 (一)(一)基于基于 MATLAB 的
3、的语音滤波实验设计语音滤波实验设计 1.1.1 语音的时域低通滤波语音的时域低通滤波 程序: x=wavread(G:htt.wav); h=ones(1,220); y=conv(x,h); wavwrite(y,22050,htt2.wav); Hw=fft(h,length(y); Xw=fft(x); Yw=fft(y); nx=length(Xw);ny=length(Yw); nh=length(Hw); wh=0:2*pi/nh:2*pi*(nh-1)/nh; wx=0:2*pi/nx:2*pi*(nx-1)/nx; wy=0:2*pi/ny:2*pi*(ny-1)/ny; su
4、bplot(3,1,1);plot(wh,abs(Hw);title(系统函数频谱); subplot(3,1,2);plot(wx,Xw);title(原始信号的频谱); 2 subplot(3,1,3);plot(wh,Yw);title(滤波后的信号频谱); 图: 1.1.2 时域高通滤波时域高通滤波 程序: x=wavread(G:htt.wav); h=1,-2,1; y=conv(x,h); wavwrite(y,22050,htt3.wav); Hw=fft(h,length(y); Xw=fft(x); Yw=fft(y); nx=length(Xw);ny=length(Yw
5、); nh=length(Hw); wh=0:2*pi/nh:2*pi*(nh-1)/nh; wx=0:2*pi/nx:2*pi*(nx-1)/nx; wy=0:2*pi/ny:2*pi*(ny-1)/ny; subplot(3,1,1);plot(wh,abs(Hw); title(系统函数频谱); subplot(3,1,2);plot(wx,Xw); title(原始信号的频谱); subplot(3,1,3);plot(wh,Yw); title(滤波后的信号频谱); 3 图: 1.2.1 语音的频域低通滤波语音的频域低通滤波 程序: x=wavread(G:hua.wav); Xw=
6、fft(x); N=length(Xw); fs=22050; fL=1000; Hw=ones(1,fix(N*fL/fs),zeros(1,N-2*fix(N*fL/fs),ones(1,fix(N*fL/fs); Yw=Xw.*Hw; y=ifft(Yw); wavwrite(y,fs,hua4.wav); nx=length(Xw);nh=length(Hw); ny=length(Yw); wx=0:2*pi/nx:2*pi*(nx-1)/nx; wh=0:2*pi/nh:2*pi*(nh-1)/nh; wy=0:2*pi/ny:2*pi*(ny-1)/ny; subplot(3,1,1);plot(wx,Xw); ylabel(Xw); subplot(3,1,2);plot(wh,Hw); ylabel(Hw); axis(0,7,-0.2,1.2); subplot(3,1,3);plot(wy,Yw); ylabel(Yw); 4