信息?/p>
14
电信(师范)
实验五:
FIR
数字滤波器设计与软件实现
一、实验指?/p>
1
.实验目?/p>
?/p>
1
)掌握用窗函数法设计
FIR
数字滤波器的原理和方法?/p>
?/p>
2
)掌握用等波纹最佳逼近法设?/p>
FIR
数字滤波器的原理和方法?/p>
?/p>
3
)掌?/p>
FIR
滤波器的快速卷积实现原理?/p>
?/p>
4
)学会调?/p>
MATLAB
函数设计与实?/p>
FIR
滤波器?/p>
2
?/p>
实验内容及步?/p>
?/p>
1
)认真复习第七章中用窗函数法和等波纹最佳逼近法设?/p>
FIR
数字滤波器的原理?/p>
?/p>
2
)调用信号产生函?/p>
xtg
产生具有加性噪声的信号
xt
,并自动显示
xt
及其频谱,如?/p>
1
所?/p>
?/p>
?/p>
1
具有加性噪声的信号
x(t)
及其频谱如图
程序代码?/p>
(信号产生函?/p>
xtg
程序清单?/p>
function
xt=xtg(N)
%ʵÑéÎåÐźÅx(t)²úÉú,²¢ÏÔʾÐźŵķùÆµÌØÐÔÇúÏß
%xt=xtg(N) ²úÉúÒ»¸ö³¤¶ÈΪN,ÓмÓÐÔ¸ßÆµÔëÉùµÄµ¥Æµµ÷·ùÐźÅxt,²ÉÑùƵÂÊFs=1000Hz
%ÔØ²¨ÆµÂÊfc=Fs/10=100Hz,µ÷ÖÆÕýÏÒ²¨ÆµÂÊf0=fc/10=10Hz.
N=1000;Fs=1000;T=1/Fs;Tp=N*T;
t=0:T:(N-1)*T;
fc=Fs/10;f0=fc/10;
%ÔØ²¨ÆµÂÊfc=Fs/10£¬µ¥Æµµ÷ÖÆÐÅºÅÆµÂÊΪf0=Fc/10;
mt=cos(2*pi*f0*t);
%²úÉúµ¥ÆµÕýÏÒ²¨µ÷ÖÆÐźÅmt£¬ÆµÂÊΪf0
ct=cos(2*pi*fc*t);
%²úÉúÔØ²¨ÕýÏÒ²¨ÐźÅct£¬ÆµÂÊΪfc
xt=mt.*ct;
%Ïà³Ë²úÉúµ¥Æµµ÷ÖÆÐźÅxt
nt=2*rand(1,N)-1;
%²úÉúËæ»úÔëÉùnt
%=======Éè¼Æ¸ßͨÂ˲¨Æ÷hn,ÓÃÓÚÂ˳ýÔëÉùntÖÐµÄµÍÆµ³É·Ö,Éú³É¸ßͨÔëÉù=======
fp=150; fs=200;Rp=0.1;As=70;
% Â˲¨Æ÷Ö¸±ê
fb=[fp,fs];m=[0,1];
% ¼ÆËãremezordº¯ÊýËùÐè²ÎÊýf,m,dev
dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];
[n,fo,mo,W]=remezord(fb,m,dev,Fs);
% È·¶¨remezº¯ÊýËùÐè²ÎÊý
hn=remez(n,fo,mo,W);
% µ÷ÓÃremezº¯Êý½øÐÐÉè¼Æ,ÓÃÓÚÂ˳ýÔëÉùntÖÐµÄµÍÆµ³É·Ö
yt=filter(hn,1,10*nt);
%Â˳ýËæ»úÔëÉùÖÐµÍÆµ³É·Ö£¬Éú³É¸ßͨÔëÉùyt
%================================================================
xt=xt+yt;
%ÔëÉù¼ÓÐźÅ
fst=fft(xt,N);k=0:N-1;f=k/Tp;
subplot(3,1,1);plot(t,xt);grid;xlabel(
't/s'
);ylabel(
'x(t)'
);