数字信号处理-DSP课程设计--滤波器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DSP课程设计学院:电气与电子工程学院专业:电子信息科学与技术班级:电信产业1301班学号:姓名:一、DSP设计题目语音信号处理滤波器类型有:1.IIR巴特沃斯数字滤波器:冲击响应不变法,带通.2.IIR切比雪夫数字滤波器:双线性变换法,低通.3.FIR数字滤波器:带通.二、DSP设计目的1.增进对MATLAB的认识,加深对数字信号处理理论方面的理解。2.掌握数字信号处理中IIR和FIR滤波器的设计。3.了解和掌握用MATLAB实现IIR和FIR滤波器的设计方法、过程,为以后的设计打下良好基础。三、DSP设计内容1.语音信号的采集利用Windows下的录音机,录制一段自己的话音,时间在1s内。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,理解采样频率、采样位数等概念。[y,fs]=wavread(‘d:\111.wav’,[100040000]);其中y为wav文件的音调数据,读取范围:1000-40000,长度为40000-1000+1,fs为该文件的播放频率。通过sound函数播放该文件的声音:Sound(y,fs);2.语音信号的频谱分析首先画出语音信号的时域波形,然后对语音号进行快速傅里叶变换,得到信号的频谱特性,其程序如下:Y=fft(y,39001);Subplot(231);plot(y);title(‘滤波前的信号波形’);Subplot(232);plot(abs(Y));title(‘滤波前的信号频谱’);3.设计数字滤波器和画出其频率响应给出各滤波器的性能指标:(1)低通滤波器性能指标fc=3000Hz,fst=6000Hz,Rst=30dB,Rp=5dB。(2)高通滤波器性能指标fst=4000Hz,fc=6000Hz,Rst=30dB,Rp=5dB。(3)带通滤波器性能指标fc1=4000Hz,fc2=6000Hz,fst1=2000Hz,fst2=8000Hz,Rst=30dB,Rp=5dB。(4)带阻滤波器性能指标fst1=4000Hz,fst2=6000Hz,fc1=2000Hz,fc2=8000Hz,Rst=30dB,Rp=5dB。根据以上的技术指标设计出相应的滤波器,画出滤波器的频率响应曲线。上述技术指标仅做参考,学生可根据选定的声音文件自行调整技术指标的值。4.用滤波器对信号进行滤波用自己设计的各滤波器分别对采集的信号利用函数filter对信号进行滤波,并比较滤波前后语音信号的波形及频谱:x=filter(b,a,y);X=fft(x,39001);Subplot(235);plot(x);title(‘滤波后的信号波形’);Subplot(236);plot(abs(X));title(‘滤波后的信号频谱’);5.回放语音信号在Matlab中,函数sound可以对声音进行回放,其调用格式:sound(x,fs);可以感觉滤波前后的声音有变化。6.设计系统界面为了使编制的程序操作方便,有能力的学生设计处理系统的用户界面。在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。四、DSP设计源程序清单1.语音文件波形及频谱代码[y,fs]=wavread('111.wav',[100040000]);Sound(y,fs);Y=fft(y,39001);Subplot(141);plot(y);title('滤波前的信号波形');Subplot(142);plot(abs(Y));title('滤波前的信号频谱');2.冲击响应不变法带通巴特沃斯滤波器(IIR)代码fs=44100;Wc=[2*pi*40002*pi*6000];Wst=[2*pi*2000,2*pi*8000];Rp=5;Rst=30;wc=Wc/fs;wst=Wst/fs;[N,Wn]=buttord(Wc,Wst,Rp,Rst,'s');[B,A]=butter(N,Wn,'s');[b,a]=impinvar(B,A,fs);[h1,w1]=freqz(b,a,256);x=[wc/pi,wst/pi];y=[-Rp,-Rp,-Rst,-Rst];plot(w1/pi,20*log10(abs(h1)),'+');grid;xlabel('finpi');ylabel('gainindb');axis([0,1,-50,10]);legend('巴特沃斯,冲击响应不变法');3.双线性变换法低通切比雪夫滤波器(IIR)代码fs=44100;Wc=[2*pi*3000];Wst=[2*pi*6000];Rp=5;Rst=30;wc=Wc/fs;wst=Wst/fs;[N,Wn]=cheb1ord(wc/pi,wst/pi,Rp,Rst);[B,A]=cheby1(N,Rp,Wn);[h4,w4]=freqz(B,A,256);x=[wc/pi,wst/pi];y=[-Rp,-Rp,-Rst,-Rst];plot(w4/pi,20*log10(abs(h4)),'.');grid;xlabel('finpi');ylabel('gainindb');axis([0,1,-50,10]);legend('切比雪夫,双线性变换法');4.带通FIR数字滤波器代码[y,fs]=wavread('111.wav',[100040000]);Sound(y,fs);N=39001Y=fft(y,39001);fs1=2000;fs2=8000;ft=44100;wn=kaiser(N)wcl=2*fs1/ft;wc2=2*fs2/ft;b=fir1(N-1,[wclwc2],wn)freqz(b,1)x=fftfilt(b,y)X=fft(y,39001)figure(1)subplot(2,3,6);plot(abs(X));title('滤波后信号的频谱');grid;subplot(2,3,5);plot(x);title('滤波后的信号波形');grid;5.滤波器对信号进行滤波的代码x=filter(b,a,y);X=fft(x,5001);Subplot(132);plot(x);title('滤波后的信号波形');Subplot(133);plot(abs(X));title('滤波后的信号频谱');sound(x,fs);五.DSP设计结果及仿真波形频谱带通FIR数字滤波器冲击响应不变法带通巴特沃斯滤波器滤波后波形及频谱双线性变换法低通切比雪夫滤波器滤波后波形及频谱FIR数字带通滤波器滤波后的波形及频谱六、收获和体会1.在编程过程中应该注意一些细节问题,例如中英文符号的区别,往往一些错误都是由于粗心而导致的。2.设计过程中,进一步巩固了数字信号处理课程中关于数字滤波器的设计的内容,再通过利用参考文献与网络资源,完成了用Matlab进行DSP课程设计。3.对于MATLAB语句有了更加深刻的理解,也注意到了一些运算符号的使用,例如数组的相乘需用(.*)来表示,而一般数字相乘应用*。还有当运用数组的加法时,必须保持数组是等长的,否则,不能相加。4.与其他高级语言的程序设计相比,MATLAB环境下可以更方便、快捷地设计出具有严格线性相位的FIR滤波器,节省大量的编程时间,提高编程效率,且参数的修改也十分方便,还可以进一步进行优化设计。七.参考文献(1)数字信号处理丁玉美西安电子科技大学出版社(2)应用MATLAB实现信号分析和处理张明照科学出版社(3)数字信号处理及MATLAB实现余成波清华大学出版社(4)MATLAB7.0在数字信号处理中的应用罗军辉机械工业出版社(5)MATLAB信号处理刘波电子工业出版社(6)Matlab信号处理与应用董长虹国防工业出版社(7)数字信号处理原理及其MATLAB实现从玉良电子工业出版社(8)数字信号处理基础及MATLAB实现周辉中国林业出版社

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功