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

📄 untitledqwyt.m

📁 matla窗口制作
💻 M
📖 第 1 页 / 共 2 页
字号:
%ys1=[0.5 0.5 0.5];
%ys=[0.9 0.9 0.9];
%ys2=[0.7 0.8 0.8];
mm=2;
hyh=1;
N=50;
b1=1;   %窗函数法的滤波类型
Ws=0.3;
Wp=0.4;
Wph=0.5;
Wsh=0.6;
b2=1;   %约束最小二乘法的滤波类型
w1=0.2;
w2=0.7;
up1=1.02;
up2=0.02;
up3=1.01;
b3=1; %Remez扩展算法的滤波类型
ww1=1;  
ww2=1;
ww3=1;
c=1;
a=1;   %优化设置
b=1;
d=1;   %滤波器类型选择
%figure函数创建一个图形窗口并将其设置为当前图形窗口;
%units(normalized)表示归一化坐标,屏幕左下角映射到【0,0】,右上角映射到【1,1】
%menubar将matlab菜单的图形窗口在顶部显示,none表示不显示默认的matlab菜单
n=figure('name','FIR滤波器模拟界面','units','normalized','position',...
    [0.15 0.1 0.6 0.6],'menubar','none','numbertitle','off','color',[1 1 1]);
%对界面属性的定义(界面字体大小,归一化设置,字体大小,字体类型)
set(n,'defaultuicontrolfontsize',11);
set(n,'defaultuicontrolunits','normalized');
set(n,'defaultuicontrolfontunits','pixels');
set(n,'defaultuicontrolfontname','宋体');

%h_menu1=uimenu(n,'label','相频特性','callback','zadjs');
%h_menu2=uimenu(n,'label','冲击响应','callback','sjry');
%h_menu3=uimenu(n,'label','等波纹滤波器');
%h_submenu31=uimenu(h_menu3,'label','基于Parks-McClellan算法的等波纹滤波器',...
%    'callback','close,dbw');
%h_submenu32=uimenu(h_menu3,'label',' 窗函数克服吉布斯效应');
%h_menu4=uimenu(n,'label','退出','callback','jsy2');

%调用坐标轴对象函数axes()
%位置前2个数据是坐标轴左下角的坐标,后面是框的大小;
%visble表示轴线,刻度标记和标志的可视性(on:坐标轴在屏幕上可见)
h_pixels1=uipanel('position',[0.325 0.55 0.66 0.45],...
    'Title','Filter Specifications','FontSize',10,'fontWeight','bold',...
    'ForegroundColor',[0 0 1],'HighlightColor',[0 0 0]);
 
h_axes1=axes('position',[0.4 0.62 0.55 0.3],'visible','on','box','on'); 
grid on;
%滑块设置
%窗函数法的滑动条(最后改成键入,并且两个滑动条不能同时出现) 
h_edit00=uicontrol(n,'style','edit','position',[0.16 0.12 0.08 0.045],...
    'string',50,'backgroundcolor',[0 0 0],'back',[1 1 1],...
    'Callback',['NN=get(h_edit00,''string'');'...
    'N=str2num(NN);'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    'ht4(h_axes1,N,w1,w2,up1,up2,up3,b2);'...
    'ht6(h_axes1,N,ww1,ww2,ww3,Ws,Wp,Wph,Wsh,b3);']);
%可编辑文档
%窗函数
h_edit1=uicontrol(n,'style','edit','position',[0.79 0.43 0.12 0.038],'string',0.3,...
    'back','w','callback',...
    ['Wss=get(h_edit1,''string'');'...
    'Ws=str2num(Wss);'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    'ht6(h_axes1,N,ww1,ww2,ww3,Ws,Wp,Wph,Wsh,b3);'...                 %第三种方法的函数
    'if Ws>=Wp|Ws>1;'...
    'msgbox(''输入参数错误'',''消息对话框'',''warn'');'...
    'end;']);
h_edit2=uicontrol(n,'style','edit','position',[0.79 0.38 0.12 0.038],'string',0.4,...
    'back','w','callback',...
    ['Wpp=get(h_edit2,''string'');'...
    'Wp=str2num(Wpp);'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    'ht6(h_axes1,N,ww1,ww2,ww3,Ws,Wp,Wph,Wsh,b3);']);
h_edit3=uicontrol(n,'style','edit','position',[0.79 0.33 0.12 0.038],'visible','off',...
    'back','w','string',0.5,'callback',...
    ['WWph=get(h_edit3,''string'');'...
    'Wph=str2num(WWph);'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    'ht6(h_axes1,N,ww1,ww2,ww3,Ws,Wp,Wph,Wsh,b3);']);
h_edit4=uicontrol(n,'style','edit','position',[0.79 0.28 0.12 0.038],'visible','off',...
    'back','w','string',0.6,'callback',...
    ['WWsh=get(h_edit4,''string'');'...
    'Wsh=str2num(WWsh);'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    'ht6(h_axes1,N,ww1,ww2,ww3,Ws,Wp,Wph,Wsh,b3);']);
%约束最小二乘法参数(高通N必须是偶数)
h_edit5=uicontrol(n,'style','edit','position',[0.8 0.43 0.12 0.038],'string',0.2,...
    'back','w','visible','off','callback',...
    ['ww1=get(h_edit5,''string'');'...
    'w1=str2num(ww1);'...
    'ht4(h_axes1,N,w1,w2,up1,up2,up3,b2);']);
h_edit6=uicontrol(n,'style','edit','position',[0.8 0.35 0.12 0.038],'string',0.7,...
    'back','w','visible','off','callback',...
    ['ww2=get(h_edit6,''string'');'...
    'w2=str2num(ww2);'...
    'ht4(h_axes1,N,w1,w2,up1,up2,up3,b2);']);  %w2
h_edit7=uicontrol(n,'style','edit','position',[0.8 0.27 0.12 0.038],'string',0.03,...
    'back','w','visible','off','callback',...
    ['uup1=get(h_edit7,''string'');'...
    'up1=str2num(uup1);'...
    'ht4(h_axes1,N,w1,w2,up1,up2,up3,b2);']);  %up1
h_edit8=uicontrol(n,'style','edit','position',[0.8 0.19 0.12 0.038],'string',0.02,...
    'back','w','visible','off','callback',...
     ['uup2=get(h_edit8,''string'');'...
      'up2=str2num(uup2);'...
     'ht4(h_axes1,N,w1,w2,up1,up2,up3,b2);']);  %up2
h_edit9=uicontrol(n,'style','edit','position',[0.8 0.11 0.12 0.038],'string',0.01,...
    'back','w','visible','off','callback',...
    ['uup3=get(h_edit9,''string'');'...
     'up3=str2num(uup3);'...
     'ht4(h_axes1,N,w1,w2,up1,up2,up3,b2);']);   %up3
 %第三种方法
h_edit10=uicontrol(n,'style','edit','position',[0.79 0.23 0.12 0.038],'string',1,...
    'back','w','visible','off','callback',...
    ['www1=get(h_edit10,''string'');'...
    'ww1=str2num(www1);'...
    'ht6(h_axes1,N,ww1,ww2,ww3,Ws,Wp,Wph,Wsh,b3);']);  %ww1
h_edit11=uicontrol(n,'style','edit','position',[0.79 0.18 0.12 0.038],'string',1,...
    'back','w','visible','off','callback',...
    ['www2=get(h_edit11,''string'');'...
     'ww2=str2num(www2);'...
     'ht6(h_axes1,N,ww1,ww2,ww3,Ws,Wp,Wph,Wsh,b3);']);  %ww2
h_edit12=uicontrol(n,'style','edit','position',[0.79 0.13 0.12 0.038],'string',1,...
    'back','w','visible','off','callback',...
    ['www3=get(h_edit12,''string'');'...
     'ww3=str2num(www3);'...
     'ht6(h_axes1,N,ww1,ww2,ww3,Ws,Wp,Wph,Wsh,b3);']);  %ww3
    
%静态文本
h_text1=uicontrol(n,'style','text','position',[0.02 0.87 0.1 0.04],'string',...
    'Designer: ','fontsize',14);
h_text2=uicontrol(n,'style','text','position',[0.02 0.77 0.1 0.04],'string',...
    'Advisor:','fontsize',14); 
h_text33=uicontrol(n,'style','text','position',[0.02 0.67 0.1 0.04],'string',...
    'Structure:','fontsize',14);
h_text11=uicontrol(n,'style','text','position',[0.12 0.87 0.1 0.04],'string',...
    'YuanZhiYe ','fontsize',14);
h_text22=uicontrol(n,'style','text','position',[0.12 0.77 0.1 0.04],'string',...
    'YaoLan ','fontsize',14);
h_text333=uicontrol(n,'style','text','position',[0.12 0.67 0.1 0.04],'string',...
    'FIR Fitler ','fontsize',14);
%面板设置
h_pixels2=uipanel('position',[0.01 0.55 0.31 0.45],...
    'Title','Filter Information','FontSize',10,'fontWeight','bold',...
    'ForegroundColor',[0 0 1],'HighlightColor',[0 0 0]);
%低通
h_text3=uicontrol(n,'style','text','position',[0.71 0.435 0.08 0.03],'string',...
    'Fpass');
h_text4=uicontrol(n,'style','text','position',[0.71 0.385 0.08 0.03],'string',...
    'Fstop');
%高通
h_text5=uicontrol(n,'style','text','position',[0.71 0.435 0.08 0.03],'string',...
    'Fstop','visible','off' );
h_text6=uicontrol(n,'style','text','position',[0.71 0.385 0.08 0.03],'string',...
    'Fpass','visible','off');
%带通
h_text7=uicontrol(n,'style','text','position',[0.71 0.435 0.08 0.03],'string',...
    'Fstop1','visible','off' );
h_text8=uicontrol(n,'style','text','position',[0.71 0.385 0.08 0.03],'string',...
    'Fpass1','visible','off' );
h_text9=uicontrol(n,'style','text','position',[0.71 0.33 0.08 0.03],'string',...
    'Fpass2','visible','off');
h_text10=uicontrol(n,'style','text','position',[0.71 0.28 0.08 0.03],'string',...
    'Fstop2','visible','off');
%带阻
h_text11=uicontrol(n,'style','text','position',[0.71 0.435 0.08 0.03],'string',...
    'Fpass1','visible','off');
h_text12=uicontrol(n,'style','text','position',[0.71 0.385 0.08 0.03],'string',...
    'Fstop1','visible','off' );
h_text13=uicontrol(n,'style','text','position',[0.71 0.33 0.08 0.03],'string',...
    'Fstop2','visible','off');
h_text14=uicontrol(n,'style','text','position',[0.71 0.28 0.08 0.03],'string',...
    'Fpass2','visible','off');
%第2中方法的注释
h_text15=uicontrol(n,'style','text','position',[0.72 0.43 0.07 0.03],'string',...
    'Fcut-off1','visible','off');
h_text16=uicontrol(n,'style','text','position',[0.72 0.35 0.07 0.03],'string',...
    'Fcut-off2','visible','off');
h_text17=uicontrol(n,'style','text','position',[0.72 0.27 0.07 0.03],'string',...
    'FPattern1','visible','off');
h_text18=uicontrol(n,'style','text','position',[0.72 0.19 0.07 0.03],'string',...
    'FPattern2','visible','off');
h_text19=uicontrol(n,'style','text','position',[0.72 0.11 0.07 0.03],'string',...
    'FPattern3','visible','off');
%第3张方法
h_text20=uicontrol(n,'style','text','position',[0.72 0.23 0.07 0.03],'string',...
    'WVector1','visible','off');
h_text21=uicontrol(n,'style','text','position',[0.72 0.18 0.07 0.03],'string',...
    'WVector2','visible','off');
h_text22=uicontrol(n,'style','text','position',[0.72 0.13 0.07 0.03],'string',...
    'WVector3','visible','off');
%外加
%h_text15=uicontrol(n,'style','text','position',[0.08 0.09 0.12 0.03],'string',...
%    '(Better be even)'); 
%radiobutton 按钮
h_radio1=uicontrol(n,'style','radio','position',[0.3 0.43 0.08 0.04],'value',1,...
    'string','Lowpass','callback',['set(h_radio1,''value'',1);'...
    'set(h_radio2,''value'',0);'...
    'set(h_radio3,''value'',0);'...
    'set(h_radio4,''value'',0);'...
    'if (a==1)|(a==3);'...
    'set(h_edit3,''visible'',''off'');'...
    'set(h_edit4,''visible'',''off'');'...
    'set(h_text3,''visible'',''on'');'...
    'set(h_text4,''visible'',''on'');'...
    'set(h_text5,''visible'',''off'');'...
    'set(h_text6,''visible'',''off'');'...
    'set(h_text7,''visible'',''off'');'...
    'set(h_text8,''visible'',''off'');'...
    'set(h_text9,''visible'',''off'');'...
    'set(h_text10,''visible'',''off'');'...
    'set(h_text11,''visible'',''off'');'...
    'set(h_text12,''visible'',''off'');'...
    'set(h_text13,''visible'',''off'');'...
    'set(h_text14,''visible'',''off'');'...
    'end;'...
    'b=1;'...
    'b1=1;'...
    'b2=1;'...
    'b3=1;'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    ]);
h_popup1=uicontrol(n,'style','popup','string','I型|II型',...      %有问题 ,居然没反应,郁闷~
    'position',[0.39 0.37 0.06 0.1] ,'back','w','callback',...
    ['ttt=get(h_popup1,''string'');'...
    'tt=str2num(ttt);'...
    'if tt==1;'...
    'd=1;'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    'elseif tt==2;'...
    'd=2;'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    'end;']);
h_radio2=uicontrol(n,'style','radio','position',[0.3 0.33 0.08 0.04],'value',0,...
    'string','Highpass','callback',['set(h_radio1,''value'',0);'...
    'set(h_radio2,''value'',1);'...
    'set(h_radio3,''value'',0);'...
    'set(h_radio4,''value'',0);'...
    'if (a==1)|(a==3);'...
    'set(h_edit3,''visible'',''off'');'...
    'set(h_edit4,''visible'',''off'');'...
    'set(h_text5,''visible'',''on'');'...
    'set(h_text6,''visible'',''on'');'...
    'set(h_text3,''visible'',''off'');'...
    'set(h_text4,''visible'',''off'');'...
    'set(h_text7,''visible'',''off'');'...
    'set(h_text8,''visible'',''off'');'...
    'set(h_text9,''visible'',''off'');'...
    'set(h_text10,''visible'',''off'');'...
    'set(h_text11,''visible'',''off'');'...
    'set(h_text12,''visible'',''off'');'...
    'set(h_text13,''visible'',''off'');'...
    'set(h_text14,''visible'',''off'');'...
    'end;'...
    'b=2;'...
     'b1=2;'...
     'b2=2;'...
     'b3=2;'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
     ]); 
h_popup2=uicontrol(n,'style','popup','string','I型|II型',...
    'position',[0.39 0.27 0.06 0.1] ,'back','w');
h_radio3=uicontrol(n,'style','radio','position',[0.3 0.23 0.08 0.04],'value',0,...
    'string','Bandpass','callback',['set(h_radio1,''value'',0);'...
    'set(h_radio2,''value'',0);'...
    'set(h_radio3,''value'',1);'...
    'set(h_radio4,''value'',0);'...
    'if (a==1)|(a==3);'...
    'set(h_edit3,''visible'',''on'');'...
    'set(h_edit4,''visible'',''on'');'...
    'set(h_text7,''visible'',''on'');'...
    'set(h_text8,''visible'',''on'');'...
    'set(h_text9,''visible'',''on'');'...
    'set(h_text10,''visible'',''on'');'...
    'set(h_text3,''visible'',''off'');'...
    'set(h_text4,''visible'',''off'');'...
    'set(h_text5,''visible'',''off'');'...
    'set(h_text6,''visible'',''off'');'...
    'set(h_text11,''visible'',''off'');'...
    'set(h_text12,''visible'',''off'');'...
    'set(h_text13,''visible'',''off'');'...
    'set(h_text14,''visible'',''off'');'...
    'end;'...
    'b=3;'...
    'b1=3;'...
    'b2=3;'...
    'b3=3;'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
    ]); 
h_popup3=uicontrol(n,'style','popup','string','I型|II型',...
    'position',[0.39 0.17 0.06 0.1] ,'back','w');
h_radio4=uicontrol(n,'style','radio','position',[0.3 0.13 0.08 0.04],'value',0,...
    'string','Bandstop','callback',['set(h_radio1,''value'',0);'...
    'set(h_radio2,''value'',0);'...
    'set(h_radio3,''value'',0);'...
    'set(h_radio4,''value'',1);'...
    'if (a==1)|(a==3);'...
    'set(h_edit3,''visible'',''on'');'...
    'set(h_edit4,''visible'',''on'');'...
    'set(h_text11,''visible'',''on'');'...
    'set(h_text12,''visible'',''on'');'...
    'set(h_text13,''visible'',''on'');'...
    'set(h_text14,''visible'',''on'');'...
    'set(h_text3,''visible'',''off'');'...
    'set(h_text4,''visible'',''off'');'...
    'set(h_text5,''visible'',''off'');'...
    'set(h_text6,''visible'',''off'');'...
    'set(h_text7,''visible'',''off'');'...
    'set(h_text8,''visible'',''off'');'...
    'set(h_text9,''visible'',''off'');'...
    'set(h_text10,''visible'',''off'');'...
    'end;'...
    'b=4;'...
    'b1=4;'...
    'b2=4;'...
    'b3=4;'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...
     ]);

h_radio5=uicontrol(n,'style','radio','position',[0.56 0.28 0.10 0.05],'value',1,...
    'string','Bartlett','callback',['set(h_radio5,''value'',1);'...
    'set(h_radio6,''value'',0);'...
    'set(h_radio7,''value'',0);'...
    'set(h_radio8,''value'',0);'...
     'mm=1;'...
    'ht2(h_axes1,N,mm,b1,Ws,Wp,Wph,Wsh,d);'...

⌨️ 快捷键说明

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