⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 call_dlp2bs.m

📁 数字信号处理_matlab实现程序,上面有全套的实验代码
💻 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 + -