数字信号处理 DSP课程设计滤波器.docx
- 文档编号:17792912
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:13
- 大小:107.06KB
数字信号处理 DSP课程设计滤波器.docx
《数字信号处理 DSP课程设计滤波器.docx》由会员分享,可在线阅读,更多相关《数字信号处理 DSP课程设计滤波器.docx(13页珍藏版)》请在冰点文库上搜索。
数字信号处理DSP课程设计滤波器
DSP课程设计
学院:
电气与电子工程学院
专业:
电子信息科学与技术
班级:
电信产业1301班
学号:
姓名:
1、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.设计系统界面
为了使编制的程序操作方便,有能力的学生设计处理系统的用户界面。
在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。
4、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',[1000 40000]);
Sound(y,fs);N=39001
Y=fft(y,39001);
fs1=2000;
fs2=8000;
ft=44100;
wn=kaiser(N)
wcl=2*fs1/ft;
wc2=2*fs2/ft;
b=fir1(N-1,[wcl wc2],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);
5.DSP设计结果及仿真波形频谱
带通FIR数字滤波器
冲击响应不变法带通巴特沃斯滤波器滤波后波形及频谱
双线性变换法低通切比雪夫滤波器滤波后波形及频谱
FIR数字带通滤波器滤波后的波形及频谱
6、收获和体会
1.在编程过程中应该注意一些细节问题,例如中英文符号的区别,往往一些错误都是由于粗心而导致的。
2.设计过程中,进一步巩固了数字信号处理课程中关于数字滤波器的设计的内容,再通过利用参考文献与网络资源,完成了用Matlab进行DSP课程设计。
3.对于MATLAB语句有了更加深刻的理解,也注意到了一些运算符号的使用,例如数组的相乘需用(.*)来表示,而一般数字相乘应用*。
还有当运用数组的加法时,必须保持数组是等长的,否则,不能相加。
4.与其他高级语言的程序设计相比,MATLAB环境下可以更方便、快捷地设计出具有严格线性相位的FIR滤波器,节省大量的编程时间,提高编程效率,且参数的修改也十分方便,还可以进一步进行优化设计。
7.参考文献
(1)数字信号处理丁玉美西安电子科技大学出版社
(2)应用MATLAB实现信号分析和处理张明照科学出版社
(3)数字信号处理及MATLAB实现余成波清华大学出版社
(4)MATLAB7.0在数字信号处理中的应用罗军辉机械工业出版社
(5)MATLAB信号处理刘波电子工业出版社
(6)Matlab信号处理与应用董长虹国防工业出版社
(7)数字信号处理原理及其MATLAB实现从玉良电子工业出版社
(8)数字信号处理基础及MATLAB实现周辉中国林业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号处理 DSP课程设计滤波器 数字信号 处理 DSP 课程设计 滤波器