?? call_dlp2bs.m
字號:
% 《數字信號處理教程——MATLAB釋義與實現》第四章演示程序
% 電子工業出版社出版 陳懷琛編著 2004年8月
% 數字濾波器頻帶變換演示
% call_dlp2bs.m 數字低通濾波器到數字帶阻濾波器
%
function []=call_dlp2bs(h1,h2)
axes(h1);hold off
plot([0,0],[-1.2,1.2],'linestyle','-.','color','g');hold on
plot([-2,2],[0,0],'linestyle','-.','color','g');axis([-1.2,1.2,-1.2,1.2]);
axes(h2);hold off
plot([0,0],[-1.2,1.2],'linestyle','-.','color','g');hold on
plot([-2,2],[0,0],'linestyle','-.','color','g');axis([-1.2,1.2,-1.2,1.2]);
w0=0.2*pi; %低通濾波器的截止頻率(指過渡濾波器,而非最終要設計的濾波器,它的截止頻率在wc(dtransform.m中)設置
w=0:0.1:2*pi; %在這里可以更改其間隔,如果改成0:0.1:2*pi,則下面的判斷要改成abs(w(i))<w0 | abs(w(i))>2*pi-w0
zlp=exp(j*w);
[zbs0,zbs1]=dtransform(w,'lp2bs');
mark1=1;
for k=1:2
%注意加下面這幾行語句的作用,因為對于w=0 時,zlp=1,此時用plot(zlp)繪出來的點為(1,1)點,
%可以考慮去除這幾行語句,同時把i改為從i=1:length(w),看看實驗的結果,
axes(h1);
plot(zlp(1)+0.0001j,'linestyle','o','color','r');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
axes(h2);
if k==2
plot(zbs0(1)+0.001j,'linestyle','o','color','r');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
else
plot(zbs1(1)+0.001j,'linestyle','o','color','r');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
end
pause(0.5);
for i=2:length(w)
%繪制低通濾波器
axes(h1);
if (k==2 & mark1==1)
mark1=0;
hold off;
plot([0,0],[-1.2,1.2],'linestyle','-.','color','g');hold on
plot([-2,2],[0,0],'linestyle','-.','color','g');axis([-1.2,1.2,-1.2,1.2]);
plot(zlp(1)+0.0001j,'linestyle','o','color','r');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on %
end
if (abs(w(i))<w0 | abs(w(i)>2*pi-w0))
plot(zlp(i),'linestyle','o','color','r');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
else
plot(zlp(i),'linestyle','o','color','b');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
end
%繪制帶阻濾波器
axes(h2);
if (k==2)
if (abs(w(i))<w0 | abs(w(i)>2*pi-w0))
plot(zbs0(i),'linestyle','o','color','r');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
else
plot(zbs0(i),'linestyle','o','color','b');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
end
else
if (abs(w(i))<w0 | abs(w(i)>2*pi-w0))
plot(zbs1(i),'linestyle','o','color','r');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
else
plot(zbs1(i),'linestyle','o','color','b');axis([-1.2,1.2,-1.2,1.2]);axis('equal');hold on
end
end
pause(0.2);
end
pause(0.5);
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -