资源描述:
《广东工业大学《数字滤波器的设计》自动化学院卢佛滔》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计课程名称数字信号处理题目名称数字滤波器的设计学生学院自动化学院专业班级电子信息科学与技术2班学号3107001575学生姓名卢佛滔指导教师徐迎晖2010年5月23日5目录1设计任务目的与要求12原理介绍13设计方案14实验结果与数据分析1信号通过IIR滤波器的数据1信号通过FIR滤波器的数据25结论与问题讨论46源程序4摘要本设计主要通过IIR和FIR实现对音频文件人声的滤除,由MATLAB程序实现,FIR与IIR相比,有一定的优点。FIR:有限脉冲响应滤波器。有限说明其脉冲响应是有限的。与IIR相比,它具有线性相位、容易设计的优点。关键词:IIRFIRMATLAB51设计任务目的与
2、要求1.1设计并编程实现数字滤波器,对一个单声道的歌曲文件,尽可能地消除其中的人声,获得该歌曲的乐器伴奏版。2原理介绍2.1基本原理:人声中,对可懂度和清晰度起主要影响的频率成分,位于数百hz~数千hz频率范围。而各种乐器音所覆盖的频率范围很广,在数十hz~十几khz。因此可利用带阻滤波器,抑制人声。3设计方案运用IIR和FIR滤波器实现带阻滤波器,确定通带截止频率,通过设置阻带带宽数十hz~十几khz,以及滤波器的阶数,从而基本实现对人声音的过滤,进而对参数进行细微调整,从而更好的达到设计要求。4实验结果与数据分析4.1课程设计的要求与数据歌曲文件格式:单声道wav文件;模拟滤波器的技术指
3、标:带阻滤波器的阻带可先设为400hz~4000hz,阻带相对于通带衰减20dB以上;相应的数字滤波器技术指标:带阻滤波器的阻带可先设为Ts•400hz~Ts•4000hz(Ts为采样间隔),阻带相对于通带衰减20dB倍以上;数字滤波器的类型:IIR和FIR数字滤波器分别设计一种;最终实现方式:编写C语言程序或Matlab程序实现,输入一个带人声的单声道歌曲文件(wav格式),处理结果保存至另一个单声道wav文件(该歌曲的乐器伴奏版);5IIR滤波器的数据滤波前后的波形和频谱IIR带阻滤波器的幅频相频特性:5FIR滤波器的数据一.滤波前后的波形和频谱二、FIR带阻滤波器的幅频相频特性:5II
4、R滤波器的零点0.0227-0.29051.7500-6.582817.2655-33.390849.0918-55.732049.0918-33.390817.2655-6.58281.7500-0.29050.0227IIR滤波器的极点1.0000-6.764120.7807-39.293352.6715-54.290844.5112-29.090515.1458-6.31282.0646-0.49810.0860-0.01070.0004参考文献[1]赵健李勇编著数字信号处理[M].北京大学出版社,2007:103-157[2]SanjitK.Mitra著数字信号处理实验指导书[M]北
5、京:电子工业出版社,2005-90-99.56源程序5IIR滤波器源程序[y,f,bit]=wavread('d:chenglongzuiquan.wav');Y=fft(y);ws=[0.040.4];wp=[0.0050.5];rp=3;rs=22;[nl,wnl]=buttord(wp,ws,rp,rs);[num,den]=butter(nl,wnl,'stop');disp('fenzi');disp(num);disp('fenmu');disp(den);freqz(num,den,10000,f);c=filter(num,den,y);B=fft(c);figure;su
6、bplot(221);plot(y);title('源信号波形');subplot(222);plot(abs(Y));title('源信号频谱');subplot(223);plot(c);;title('滤波后波形');subplot(224);plot(abs(B));title('滤波后频谱');sound(c,f);FIR滤波器源程序[y,fs,nbit]=wavread('d:chenglongzuiquan.wav');Y=fft(y);N=length(y);%文件长度t=(0:N-1)/fs;%时间长度Wp1=2*470/fs;Wp2=2*3500/fs;Wc1=2*45
7、0/fs;Wc2=2*3700/fs;Ap=1;As=21;W1=(Wp1+Wc1)/2;W2=(Wp2+Wc2)/2;wdth=min((Wp1-Wc1),(Wc2-Wp2));N=ceil(11*pi/wdth)+1;b=fir1(N,[W1W2],'stop');freqz(b,1,512,fs)y2=filter(b,1,y);B=fft(y2);figure;subplot(221);plot(y)