资源描述:
《基于MATLAB的语音信号分析与处理的课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于MATLAB的语音信号分析与处理的课程设计一.课程设计目的综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。二.课程设计基本要求1.学会MATLAB的使用,掌握MATLAB的程序设计方法。2.掌握在Windows环境下语音信号采集的方法。3.掌握数字信号处理的基本概念、基本理论和基本方法。4.掌握MATLAB设计FIR和IIR数字滤波器的方法。5.学会用MATLAB对信号进行分析和处理。三.设计过程实验按照录制采集语音信号,对录制的信号进行采样
2、,绘制采样后语音信号的时域波形和频谱图,设计滤波器,运用所设计的滤波器对采集的信号进行滤波,绘制滤波后信号的时域波形和频谱的思路进行。首先录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,用MATLAB设计一信号处理系统界面。实现波形的程序如下:clear;clc;[y,Fs,bits]=wavread
3、('lc.wav',[2205010000]);ws=0.125*pi;wp=0.075*pi;rp=0.25;rs=50;[N,wc]=buttord(wp/pi,ws/pi,rp,rs);[B,A]=butter(N,wc);[Bz,Az]=bilinear(B,A,Fs);[Rows,Cols]=size(y);y(:,1)=y(:,1)-mean(y(:,1));Y=abs(fft(y)+eps);%为防止出现0值Y(1)=Y(2);L=Rows;w=0:(L-1);w=2*pi/Rows*w;x=filter(B,A,y);X=abs(fft(x)+
4、eps);%为防止出现0值X(1)=X(2);figure(1);subplot(2,2,1);plot(y);title('滤波前信号波形');subplot(2,2,2);plot(w/pi,Y(1:L));title('滤波前信号频谱');xlabel('w(单位pi)');ylabel('幅值');subplot(2,2,3);plot(x);title('滤波后信号波形');subplot(2,2,4);plot(w/pi,X(1:L));title('低通滤波后信号频谱');xlabel('w(单位pi)');ylabel('幅值');figure
5、(2);[H,w]=freqz(B,A);plot(w/pi,abs(H));图形为:四.结果分析与体会:利用sound函数重放滤波后的声音,低通滤波后的声音跟原始声音差别不大,通过观察频谱及过渡带的衰减特性,可知此时最优的为椭圆型数字低通滤波器。通过此次实验,我掌握了一定的数字信号的分析方法,了解了MATLAB的使用,收获颇丰。附录:参考资料《数字信号处理(第三版)》西安电子科技大学出版社《基于MATLAB的系统分析与设计—信号处理》西安电子科技大学出版社