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

📄 call_l2bs6.m

📁 绘制带通滤波器的图形 坐标的变换,低通到高通
💻 M
字号:
%call_l2bs6.m 绘制带阻滤波器的图形 坐标的对应关系已改  同时绘图  data:12.12

function  []=call_l2bs6(h1,h2);
axes(h1);hold off;
axes(h2);hold off;

%这里设低通滤波器的通带衰减频率为fc=1,阻带衰减频率为fs=2;带通或带阻滤波器的中心频率f0 可以更改这些值
%给定的参数如下:(根据给定的设计其他滤波器的转化公式得出fc ,fs,f0
%如果有必要的话,这些参数可以从主函数传递过来,这样子函数的原形变为: call_l2bs6(h1,h2,dt,T,fc,fs,f0)
%还可以在图形上加edit控件,在调用本函数时得到其值 ,如: hedit1=uicontrol('style','edit',position',[ ]);  dt=get(hedit1,'values'); 

dt=0.1;T=3; fc=1; fs=1.5; f0=5;omegac=2;

ws1=(T-fs)/dt+1; wc1=(T-fc)/dt+1; wc2=(T+fc)/dt+2; ws2=(T+fs)/dt+2; w0=T/dt+1;
pl2=[0:dt:T];  %原始低通滤波器所选的坐标范围,可以改变!
pl1=[-T:dt:T];
p1=pl1*j;
plp5=transform(pl2,f0,omegac,'lp2lp');
p5 =plp5*j;
php2=transform(pl2,f0,omegac,'lp2hp');  %从低通滤波器坐标范围变换来的高通滤波器的范围,一一对应的关系
p2=php2*j;
pbp3=transform(pl2,f0,omegac,'lp2bp');
p3=j*pbp3;
pbs4=transform(pl2,f0,omegac,'lp2bs');  %在作为带阻滤波器设计时可以用到
p4=j*pbs4;
for i=1:length(p1)
    hl1(i)=1/abs((p1(i)^2 + 0.6180*p1(i) + 1)*(p1(i)^2 + 1.6180*p1(i) + 1)*(p1(i)+1));
end
    hh1=hl1;
    hbp1=hl1;
    hbs1=hl1;

p1=[-T:dt:T];  %在定坐标时要把虚号去掉
mark1=1;mark2=1;

for j=1:2
for i=2:length(p2)
    %低通滤波器
    axes(h1);
    if (j==2 & mark1==1)
        mark1=0;
        hold off;
    end
    if (i<=ws1 | i>=ws2)  %这里10表示 1/0.1;
        plot([p1(i-1),p1(i)],[hl1(i-1),hl1(i)],'color','r');axis([-T,T,0,1.2]);hold on
    elseif ((i>ws1 & i<=wc1)|(i>=wc2 & i<ws2)) %这里24表示2.4/0.1;
        plot([p1(i-1),p1(i)],[hl1(i-1),hl1(i)],'color','b');axis([-T,T,0,1.2]);hold on
    else
       plot([p1(i-1),p1(i)],[hl1(i-1),hl1(i)],'color','c');axis([-T,T,0,1.2]);hold on
   end
     
        
    if (j==1)
               
      %带阻滤波器的绘制
      axes(h2);
      if (i<=ws1 | i>=ws2)  %这里10表示 0.5/0.1;带通滤波器关于中心频率处对称,具体计算参见p166
         plot([-pbs4(i-1),-pbs4(i)],[hbs1(i-1),hbs1(i)],'color','r');axis([-f0-T,f0+T,0,1.2]);hold on
     elseif ((i>ws1 & i<=wc1) | (i>=wc2 & i<ws2))  %这里13表示(6.3-5)/0.1;
         plot([-pbs4(i-1),-pbs4(i)],[hbs1(i-1),hbs1(i)],'color','b');axis([-f0-T,f0+T,0,1.2]);hold on
     elseif (i==w0)
         plot([-pbs4(i),-pbs4(i)],[hbs1(i),hbs1(i)],'color','c');axis([-f0-T,f0+T,0,1.2]);hold on
     else
         plot([-pbs4(i-1),-pbs4(i)],[hbs1(i-1),hbs1(i)],'color','c');axis([-f0-T,f0+T,0,1.2]);hold on
     end
 else
           
     %带阻滤波器的绘制
       axes(h2);
      if (i<=ws1| i>=ws2)  %这里10表示 0.5/0.1;带通滤波器关于中心频率处对称,具体计算参见p166
         plot([pbs4(i-1),pbs4(i)],[hbs1(i-1),hbs1(i)],'color','r');axis([-f0-T,f0+T,0,1.2]);hold on
    elseif ((i>ws1 & i<=wc1) | (i>=wc2 & i<ws2))  %这里13表示(6.3-5)/0.1;
        plot([pbs4(i-1),pbs4(i)],[hbs1(i-1),hbs1(i)],'color','b');axis([-f0-T,f0+T,0,1.2]);hold on
    elseif (i==w0)
         plot([pbs4(i),pbs4(i)],[hbs1(i),hbs1(i)],'color','c');axis([-f0-T,f0+T,0,1.2]);hold on
     else
         plot([pbs4(i-1),pbs4(i)],[hbs1(i-1),hbs1(i)],'color','c');axis([-f0-T,f0+T,0,1.2]);hold on
     end
 end
     pause(0.1);
 end
 pause(1);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -