1、G:song.wav);%读取并采样处理音频信号disp(fs);disp(bits);N=length(x);t=0:N-1;subplot(2,1,1)plot(t,x);% x的时域波形sound(x,11025);k=0:subplot(2,1,2)X=fft(x);plot(k,abs(X);%X的频谱分析Fs=input(fs=%输入抽样频率%双线性设计低通DF fp=2000;fs=3200;WpLd=fp*2*pi/Fs;WsLd=fs*2*pi/Fs; RpLd=1;RsLd=100;Wap=2*Fs*tan(WpLd/2);Was=2*Fs*tan(WsLd/2); %频率
2、预畸变:低通DF指标变成低通AF指标NL,WnL=buttord(Wap,Was,RpLd,RsLd,s%由AF指标得到AF阶数和三DB截止频率disp(NL);ZL,RL,KL=buttap(NL);%由阶数得到零极点BapL,AapL=zp2tf(ZL,RL,KL);%由零极点得到分子分母bL,aL=lp2lp(BapL,AapL,Wap);%由低通到低通的变换bzL,azL=bilinear(bL,aL,Fs);%用双线性把低通AF分子分母变成低通DF分子分母HL,WL=freqz(bzL,azL);%求DF的频响figure(1)plot(WL/pi,20*log10(abs(HL)y
3、=filter(bzL,azL,x);%使x通过滤波器滤波输出为yfigure(3);plot(t,y);%分析y的时域波形figure(4);subplot(4,1,1)subplot(4,1,2)subplot(4,1,3)subplot(4,1,4)Y=fft(y);%对y进行时域分析plot(k,abs(Y);%对Y进行频谱分析sound(y,11025);(2) 结果图形:原信号的时域和频域分析 低通滤波器的特性经过滤波器输出信号的时域和频域分析2、巴特沃兹-双线性变换法-设计高通IIR DF:(1)程序:%双线性设计高通DF fp=3000;fs=2000;Wphd=fp*2*pi
4、/Fs;Wshd=fs*2*pi/Fs;RpLd=1;Wap=2*Fs*tan(Wphd/2);Was=2*Fs*tan(Wshd/2);Zh,Rh,Kh=buttap(NL);Baph,Aaph=zp2tf(Zh,Rh,Kh);bh,ah=lp2hp(Baph,Aaph,Wap);bzh,azh=bilinear(bh,ah,Fs);HL,WL=freqz(bzh,azh);figure(2)plot(WL/pi,20*log10(abs(HL);y=filter(bzh,azh,x);(3) 结果图形:3、巴特沃兹-双线性变换法-设计带通IIR DF:%双线性设计带通DFfp=1200 3
5、000;fs=300 4000;Wpbp=fp*2*pi/Fs;Wsbp=fs*2*pi/Fs;%带通DF的期望指标Wap=2*Fs*tan(Wpbp/2);Was=2*Fs*tan(Wsbp/2);%预畸变:DF频率到AF频率的转换Nbp,Wnbp=buttord(Wap,Was,RpLd,RsLd,%用M文件BUTTORD由带通AF指标得到阶数disp(Nbp);Zbp,Rbp,Kbp=buttap(Nbp);%由阶数得到零极点及系数Bapbp,Aapbp=zp2tf(Zbp,Rbp,Kbp);%由零极点得到低通AF分子分母bw=Wap(2)-Wap(1);%通带带宽w0=sqrt(Wap
6、(1)*Wap(2);%?bp,ap=lp2bp(Bapbp,Aapbp,w0,bw);%由低通AF分子分母得到带通AF分子分母bzp,azp=bilinear(bp,ap,Fs);%经过双线性变换把带通AF分子分母变成带通DF分子分母Hp,Wp=freqz(bzp,azp);%求带通DF的频率响应plot(Wp/pi,20*log10(abs(Hp);y=filter(bzp,azp,x);4、凯泽窗-设计低通FIR DF:%设计低通DFwpl=2*1000/fs;wsl=2*1200/fs;as=100;ap=1;%期望的低通DF指标p=0.1087487;s=0.00001;fptsl
7、= wpl wsl;mag = 1 0;dev =p s;N,Wn,beta,ftype = kaiserord(fptsl,mag,dev)%参数得到凯泽窗的阶数截止频率等kw = kaiser(N+1,beta);%阶数得到凯泽窗的系数b = fir1(N,Wn, kw);%由凯泽窗的阶数和系数得到传输函数的系数h,omega = freqz(b,1,512);%分析传输函数的频谱figure(1);plot(omega/pi,20*log10(abs(h);grid;xlabel(omega/pi ylabel(Gain, dBy=fftfilt(b,x);(2)结果图形:5、凯泽窗-设
8、计高通FIR DF:%设计高通DFwph=2*5000/fs;wsh=2*4800/fs;fptsh = wsh wph;mag = 0 1;dev =s p;N,Wn,beta,ftype = kaiserord(fptsh,mag,dev)%注意凯泽窗长度为N+1b = fir1(N,Wn,high, kw);%注意函数参数要加HIGHfigure(2);6、凯泽窗-设计带通FIR DF:%设计带通DFwp1=2*1200/fs;wp2=2*3000/fs;ws1=2*1000/fs;ws2=2*3200/fs;fptsh = wp1 wp2;b = fir1(N,0.5 0.75, kw
9、);结果分析和结论总结:(1)原始音频信号经过滤波器后输出的信号基本和原信号相似,不过有的已失真,实验过程中有的滤波器输出没有信号, 这说明滤波器设计的有问题。信号经过滤波器后应该受到滤波器的滤波作用,把高频或低频或高频和低频分量滤掉,出来的信号应该是带限信号,频带在一定范围内的,从理论上讲信号应该比较好,音质比较。但实际中并不是像理论中的那样,而是有些失真。我们可以得出结论:如果要对一信号进行加工处理的话,滤波器是必不可少的,它可以滤除多余的杂波分量,使输出的信号比较清晰。针对不同的信号,我们可以选择不同类型的滤波器,设置不同的参数,最终使对信号的滤波作用达到最佳。(2)设计滤波器进行编程时对一些基本M文件不熟悉其用法,不熟悉其参数含义。经查询资料才可慢慢看懂并应用。设计IIR滤波器时用BUTTER、CHEBY、ELLIP及双线性变换法设计低通、高通、带通数字滤波器时对其之间变换关系不熟悉。需反复查阅课本实例才能稍加改换。设计FIR滤波器时用各种窗函数直接设计低通、高通、带通数字滤波器时对窗函数的参数的求法及关系不懂,不知其内含是什么,不过看着资料能应用。对带通滤波器的参数的变换关系不是很懂,以及低通、高通、带通之间的变换关系不熟悉。 经查阅资料稍微有些懂之。后面窗函数法设计时使信号经过滤波器时用的M文件的参数不是很懂,后面的输出信号图形可能有些不对。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1