5.3用滤波器对信号进行滤波 1)FIR低通滤波:
图4 FIR低通滤波前后的频谱
2)IIR低通滤波:
图5 IIR低通滤波前后的频谱
5.4回放语音信号
经过加噪声处理后,可在Matlab中用函数sound对声音进行回放。其调用格式:sound(y,Fs),sound(y)和sound(y,Fs,bits)。可以察觉滤波前后的声音有明显的变化。
5.5对语音信号加入噪声后的频谱分析和滤波
加入噪声后的波形和频谱如下图:
图6 加噪声后波形和频谱
六、课程设计总结
数字滤波器是一种对数字信号进行滤波处理以得到期望的响应特性的离散时间系统。它能够有效的对数字信号进行过滤,过滤数字信号中的干扰和多余成分,保证通信过程的正常实现。
在这次的数字信号处理课程设计里,比较重要的函数有wavread函数、sound函数等,通过上网和翻阅相关书籍,我了解了它们的基本用法。关于滤波也是很重要的一部分,有FIR滤波器和IIR滤波器的设计。通过自主学习,我很快地掌握了编程方法。
在设计过程中,我也遇到了理论知识的忘记、编程过少导致的不熟练、软件运用不自如等问题,但是经过思考、请教同学和老师、查阅相关资料,最终这些问题都得到了解决,最终设计出了符合要求的滤波器并通过相关信号进行了验证。
总的来说,通过这次的课程设计,我对MATLAB这个软件有了更深的认识,也进一步熟悉了MATLAB的使用,感觉到MATLAB软件功能的强大,大大增加了我对MATLAB的兴趣。
经过这次的课程设计,使我发现了自己的一些不足,为了在今后的学习和生活中注意改进自己的不足,我要更加努力,学习好专业知识并注重运用到实际,同时,这次课程设计还提高了自己的动手能力、思维能力和学习的积极性,为我今后的学习和工作都提供了不小的帮助,让我受益匪浅。
七、主要参考文献
[1]《数字信号处理》 季秀霞 国防工业出版社2013
[2]《数字信号处理与应用》 李正周 清华大学出版社2008
[3]《数字信号处理教程—MATLAB释义与实现》 陈怀琛 电子工业出版社 2004. [4]《数字信号处理原理及MATLAB实现》 丛玉良 电子工业出版社2009 [5]百度文库
附录: MATLAB程序:
1. 语音采集部分:
[y,fs,nbits]=wavread ('D:\\UserData\\lenovo\\Desktop\\cc\\cc.wav'); sound(y,fs,nbits); N= length (y) ; Y=fft(y,N); subplot(2,1,1);
plot(y);title('原始信号波形'); subplot(2,1,2); plot(abs(Y));
title('原始信号频谱') 2. FIR滤波器设计部分: Ft=10000; Fp=2670; Fs=3300; wp=2*Fp/Ft; ws=2*Fs/Ft; rp=1; rs=40;
p=1-10.^(-rp/5); s=10.^(-rs/15); fpts=[wp ws]; mag=[1 0]; dev=[p s];
[n,wn,beta,ftype]=kaiserord(fpts,mag,dev); b=fir1(n,wn,Kaiser(n+1,beta)); [h,w]=freqz(b,1); plot(w/pi,abs(h));
title('FIR低通滤波器'); grid;
3. FIR滤波部分: ws=2*Fs/Ft; rp=1; rs=30;
p=1-10.^(-rp/5); s=10.^(-rs/15); fpts=[wp ws]; mag=[1 0]; dev=[p s];
[n,wn,beta,ftype]=kaiserord(fpts,mag,dev); b=fir1(n,wn,Kaiser(n+1,beta)); [h,w]=freqz(b,1);