|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
利用脉冲响应不变法设计数字低通滤波器
%
%数字滤波器指标
wp=0.2*pi; %数字通带频率(弧度)
ws=0.3*pi; %数字阻带频率(弧度)
Rp=1; %通带波动(dB)
As=15; %阻带衰减(dB)
%模拟原型指标的频率逆映射
T=1;Fs=1/T; %置T=1
OmegaP=(2/T)*tan(wp/2); %预修正原型通带频率
OmegaS=(2/T)*tan(ws/2); %预修正阻带通带频率
ep=sqrt(10^(Rp/10)-1); %通带波动参数
Ripple=sqrt(1/(1+ep*ep)); %通带波动
Attn=1/(10^(As/20)); %阻带衰减
%模拟巴特沃斯原型滤波器计算:
[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As);
%%***巴特沃斯滤波器阶次= 6
%脉冲恒定变换
[b,a]=imp_inr(cs,ds,T);
[C,B,A]=dir2par(b,a)
%%C=5.7969e-004
%%B=1.0000 2.0183 1.0186
%% 1.0000 1.9814 0.9817
%% 1.0000 2.0004 1.0000
%%A 1.0000 -0.9459 0.2342
%% 1.0000 -1.0541 0.3753
%% 1.0000 -1.3143 0.7149
%Plotting
figure(1);subplot(1,1,1)
[db,mag,pha,grd,w]=freqz_m(b,a);
subplot(2,2,1);plot(w/pi,mag);title('幅度响应')
xlabel('');ylabel('|H|');axis([0,1,0,1.1])
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,Ripple,1]);grid
subplot(2,2,3);plot(w/pi,db);title('模值(dB)');
xlabel('频率:(单位: pi)');ylabel('分贝');axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid
set(gca,'YTickLabelMode','manual','YTickLabels',['50';'15';'1';'0'])
subplot(2,2,2);plot(w/pi,pha/pi);title('相位响应');
xlabel('');ylabel('单位:pi');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid
subplot(2,2,4);plot(w/pi,grd);title('群延迟');
xlabel('频率:(单位: pi)');ylabel('样本');axis([0,1,0,10]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]);
set(gca,'YTickMode','manual','YTick',[0:2:10]);grid
运行后出现
?? Undefined command/function 'afd_butt'
Error in ==> Untitled at 17
[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As);
为啥???各位高手帮看看 现在再做毕业设计 急用!!!!!
[ 本帖最后由 ChaChing 于 2009-5-13 11:59 编辑 ] |
|