资源描述:
《电信科学类dsp课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、武汉轻工大学
DSP课程设计报告姓名学院电气与电子工程学院专业电子信息科学与技术学号班级电信科学091班指导老师方2012年6月18日一、设计题目语音信号处理,进行三种类型的滤波器的设计。二、设计要求(1)IIR低通滤波器性能指标 fc=1000Hz,(通带截止频率)fst=2000Hz,(阻带截止频率)Rst=30dB,Rp=5dB。(2)IIR带阻,双线性变换法设计指标 fst1=2000Hz,fst2=3000Hz,fc1=1000Hz,fc2=4000Hz,Rst=30dB,Rp=5dB。(3)带通滤波器性能指标 fc
2、1=2000Hz,fc2=3000Hz,fst1=1000Hz,fst2=4000Hz,Rst=30dB,%Rp=5dBFIR数字滤波器根据以上的技术指标设计出相应的滤波器,画出滤波器的频率响应曲线。三、设计原理1.语音信号的采集利用Windows下的录音机,录制一段自己的话音,时间在1s内。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,理解采样频率、采样位数等概念。[y,fs]=wavread(‘d:111.wav’,[100060000]);
3、其中y为wav文件的音调数据,长度为60000-1000+1,fs为该文件的播放频率。通过sound函数播放该文件的声音:Sound(y,fs);2.语音信号的频谱分析 首先画出语音信号的时域波形,然后对语音号进行快速傅里叶变换,得到信号的频谱特性,其程序如下:Y=fft(y,59001);Subplot(231);plot(y);title(‘滤波前的信号波形’);Subplot(232);plot(abs(Y));title(‘滤波前的信号频谱’);3.设计数字滤波器和画出其频率响应 给出各滤波器的性能指标:(1)低通
4、滤波器性能指标 fc=1000Hz,(通带截止频率)fst=2000Hz,(阻带截止频率)Rst=30dB,Rp=5dB。(2)带阻,双线性变换法IIR巴特沃斯数字滤波器设计指标 fst1=2000Hz,fst2=3000Hz,fc1=1000Hz,fc2=4000Hz,Rst=30dB,Rp=5dB。(3)带通滤波器性能指标 fc1=2000Hz,fc2=3000Hz,fst1=1000Hz,fst2=4000Hz,Rst=30dB,%Rp=5dBFIR数字滤波器根据以上的技术指标设计出相应的滤波器,画出滤波器的频率响应曲线
5、。4.用滤波器对信号进行滤波 用自己设计的各滤波器分别对采集的信号利用函数filter对信号进行滤波,并比较滤波前后语音信号的波形及频谱:x=filter(b,a,y);X=fft(x,59001);Subplot(235);plot(x);title(‘滤波后的信号波形’);Subplot(236);plot(abs(X));title(‘滤波后的信号频谱’);5.回放语音信号 在Matlab中,函数sound可以对声音进行回放,其调用格式:sound(x,fs);可以感觉滤波前后的声音有变化。6.设计系统界面为了使编制
6、的程序操作方便,有能力的学生设计处理系统的用户界面。在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。四、源程序清单4.1冲击响应不变法,IIR低通滤波器性能指标 fc=1000Hz,(通带截止频率)fst=2000Hz,(阻带截止频率)Rst=30dB,Rp=5dB。[y,fs]=wavread('d:111.wav',[100060000]);Sound(y,fs);Y=fft(y,59001);%时域信号转换为频域的信号Subplot(231);plot(y);title('
7、滤波前的信号波形');Subplot(232);plot(abs(Y));title('滤波前的信号频谱');fs=44100;Wst=[2*pi*3000];Wc=[2*pi*2000];Rp=5;Rst=30;wc=Wc/fs;wst=Wst/fs;[N,Wn]=cheb1ord(Wc,Wst,Rp,Rst,'s');[B,A]=cheby1(N,Rp,Wn,'s');[b,a]=impinvar(B,A,fs);[h,w]=freqz(b,a,256);x1=[wc/pi,wst/pi];y1=[-Rp,-Rp,-Rst
8、,-Rst];Subplot(234);plot(w/pi,20*log10(abs(h)));grid;xlabel('finpi');ylabel('gainindb');axis([0,1,-50,10]);x=filter(b,a,y);X=fft(x,59001);