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

📄 lbqsjbtns.m

📁 信号实验常用的simulink模型和mfile,可直接在matlan下运行。
💻 M
字号:
function BtnHandles=lbqsjBtns
% LbqsjBtn initialize the checkboxes in every step of the filter design.
%   When completed, all the checkboxes is invisible.There handles is place in the gcf's 'UserData'
%   property which could be available later in evrey step when the corresponing ones need to be 
%   displayed.

Checked=1;
UnChecked=0;
O_x=0.05;
O_y=0.55;
X=0.7;
Y=0.3;
%spacing=0.07;
uiX=O_x+0.05;
uiY=O_y+Y-0.07;
uiWidth=0.66;
uiHeight=0.06;
dfOriginalIndex=16; %it is a temp variable for connecting the work by Wei Guo
%radioStyle='RadioButton';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Initialize the doi+29 slides
default=ones(1,dfOriginalIndex+29);
for i=1:dfOriginalIndex+29,
   myslide(i).LblStr={};
   myslide(i).CBStr={};
   myslide(i).radioStyle='radiobutton';   
   myslide(i).position=[uiX uiY uiWidth uiHeight];
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
% 1st slide
myslide(1).LblStr={'//模拟滤波器';'数字滤波器'};
myslide(1).CBStr={'';''};

default(1)=2;

%myslide(1).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 2nd slide
myslide(2).LblStr={'低通滤波器';'高通滤波器';'带通滤波器'};
myslide(2).CBStr={'';'';''};

%myslide(2).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3rd slide
myslide(3).LblStr={'巴特沃思(Butterworth)';...
                   '切比雪夫I型(Chebyshev type I)';...
                   '切比雪夫II型(Chebyshev type II)'}; 
myslide(3).CBStr={'';'';''};

%myslide(3).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 4th slide---dfOriginalIndex slide
for i=4:dfOriginalIndex-1
   myslide(i).LblStr={'';''};
   myslide(i).CBStr={'';''};
   
%   myslide(i).default=1;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 1st slide in DF--dfOriginalIndex
doi=dfOriginalIndex;

myslide(doi).LblStr={'有限冲激响应数字滤波器的设计(FIR DF)';...
                     '无限冲激响应数字滤波器的设计(IIR DF)'};
myslide(doi).CBStr={'';''};

%myslide(doi).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 2nd slide in DF--dfOriginalIndex+1
myslide(doi+1).LblStr={'窗口法(傅利叶级数法)';' 频率采样法'};
myslide(doi+1).CBStr={'';''};

%myslide(doi+1).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3rd slide in DF-dfOriginalIndex+2
myslide(doi+2).radioStyle='edit';
myslide(doi+2).position=[0.3,0.8,0.16,0.05];
myslide(doi+2).LblStr={'0.25pi'};
myslide(doi+2).CBStr={'mytext1(18)'};

%myslide(doi+2).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 4th slide in DF-dfOriginalIndex+3
myslide(doi+3).radioStyle='edit';
myslide(doi+3).position=[0.3,0.8,0.16,0.05];
myslide(doi+3).LblStr={'0.75pi'};
myslide(doi+3).CBStr={'mytext1(19)'};

%myslide(doi+3).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 5th slide in DF-dfOriginalIndex+4
myslide(doi+4).radioStyle='edit';
myslide(doi+4).position=[0.44,0.8,0.26,0.05];
myslide(doi+4).LblStr={'[0.25pi,0.75pi]'};
myslide(doi+4).CBStr={'mytext1(20)'};

%myslide(doi+4).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 6th slide in DF-dfOriginalIndex+5
%myslide(doi+5).LblStr={};
%myslide(doi+5).CBStr={};

%myslide(doi+5).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 7th slide in DF-dfOriginalIndex+6
myslide(doi+6).LblStr={'矩形窗(Rectangular Window)';...
                       '升余弦窗(海宁窗,Hanning Window)';...
                       '改进的升余弦窗(汉明窗,Hamming Window)';...                       
                       '二阶升余弦窗(不莱克曼窗,Blackman Window)';...
                       '凯撒窗(Kaiser Window), Beta=';...
                                              '7.865'};
myslide(doi+6).CBStr={'winplot(gcf,''boxcar'');';...
                      'winplot(gcf,''hanning'');';...
                      'winplot(gcf,''hamming'');';...
                      'winplot(gcf,''blackman'');';...
                      'winplot(gcf,''kaiser'');';...
                   %'betaBtn=findobj(''style'',''edit'',''visible'',''on'');set(betaBtn,''enable'',''on''); beta=get(betaBtn,''string''); winplot(gcf,''kaiser'',beta);';...
                      'winplot(gcf,''kaiser'');'};

%myslide(doi+6).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 			
% 8th slide in DF-dfOriginalIndex+7
myslide(doi+7).LblStr={'10'};
myslide(doi+7).position=[0.1,0.8,0.16,0.05];
myslide(doi+7).CBStr={'mytext1(23)'};
myslide(doi+7).radioStyle='edit';

%myslide(doi+7).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 9th slide in DF-dfOriginalIndex+8
%myslide(doi+8).LblStr={};
%myslide(doi+8).CBStr={};

%myslide(doi+8).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 10th slide in DF-dfOringinalIndex+9
%myslide(doi+9).LblStr={};
%myslide(doi+9).CBStr={};

%myslide(doi+9).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 11th slide in DF-dfOriginalIndex+10
myslide(doi+10).LblStr={'h(n)偶对称:h(n)=h(N-1-n); N为奇数; 相位: -w(N-1)/2';...
                        'h(n)偶对称:h(n)=h(N-1-n); N为偶数; 相位: -w(N-1)/2';...
                        'h(n)奇对称:h(n)=-h(N-1-n); N为奇数; 相位: -w(N-1)/2-pi/2';...
                        'h(n)奇对称:h(n)=-h(N-1-n); N为偶数; 相位: -w(N-1)/2-pi/2'};
myslide(doi+10).CBStr={'';'';'';''};

%myslide(doi+10).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 12th slide in DF-dfOriginal+11
myslide(doi+11).LblStr={'20'};
myslide(doi+11).CBStr={'mytext1(27)'};
myslide(doi+11).position=[0.25,0.8,0.16,0.05];
myslide(doi+11).radioStyle='edit';

%myslide(doi+11).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 13th slide in DF-dfOriginalIndex+12
%myslide(doi+12).LblStr={};
%myslide(doi+12).CBStr={};

%myslide(doi+12).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 14th slide in DF-dfOriginalIndex+13
%myslide(doi+13).LblStr={};
%myslide(doi+13).CBStr={};

%myslide(doi+13).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 15th slide in DF-dfOriginalIndex+14
%myslide(doi+14).LblStr={};
%myslide(doi+14).CBStr={};

%myslide(doi+14).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 16th slide in DF-dfOriginalIndex+15, 1st in IIR
myslide(doi+15).LblStr={'100';'3';'150';'15';'1000'};
CBtemp='mytext1(31)';
myslide(doi+15).CBStr={CBtemp;CBtemp;CBtemp;CBtemp;CBtemp};
myslide(doi+15).radioStyle='edit';
myslide(doi+15).position=[0.35,0.8,0.16,0.05];

%myslide(doi+15).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 17th slide in DF-dfOriginalIndex+16
myslide(doi+16).LblStr={'150';'3';'100';'15';'1000'};
CBtemp='mytext1(32)';
myslide(doi+16).CBStr={CBtemp;CBtemp;CBtemp;CBtemp;CBtemp};
myslide(doi+16).radioStyle='edit';
myslide(doi+16).position=[0.35,0.8,0.16,0.05];

%myslide(doi+16).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 18th slide in DF-dfOriginalIndex+17
myslide(doi+17).LblStr={'[300 700]','3','[200 800]','18','2000'};
CBtemp='mytext1(33)';
myslide(doi+17).CBStr={CBtemp;CBtemp;CBtemp;CBtemp;CBtemp};
myslide(doi+17).radioStyle='edit';
myslide(doi+17).position=[0.37,0.8,0.16,0.05];

%myslide(doi+17).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 19th slide in DF-dfOriginalIndex+18
myslide(doi+18).LblStr={'巴特沃思(Butterworth)';...
                        '切比雪夫I型(Chebyshev type I)';...
                        '切比雪夫II型(Chebyshev type II)'}; 
myslide(doi+18).CBStr={'';'';''};

%myslide(doi+18).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 20th slide in DF-dfOriginalIndex+19
%myslide(doi+19).LblStr={};
%myslide(doi+19).CBStr={};

%myslide(doi+19).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 21th slide in DF-dfOriginalIndex+20
%yslide(doi+20).LblStr={};
%yslide(doi+20).CBStr={};

%myslide(doi+20).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 22th slide in DF-dfOriginalIndex+21
myslide(doi+21).LblStr={'双线性变换法(Bilinear Transformation)';...
                        '脉冲响应不变法(Impulse Invariance Method)'};
myslide(doi+21).CBStr={'';''};

%myslide(doi+21).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 23th slide in DF-dfOriginalIndex+22
%myslide(doi+22).LblStr={};
%myslide(doi+22).CBStr={};

%myslide(doi+22).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 24th slide in DF-dfOriginalIndex+23
%myslide(doi+23).LblStr={};
%myslide(doi+23).CBStr={};

%myslide(doi+23).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 25th slide in DF-dfOriginalIndex+24
%myslide(doi+24).LblStr={};
%myslide(doi+24).CBStr={};

%myslide(doi+24).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 26th slide in DF-dfOriginalIndex+25
%myslide(doi+25).LblStr={};
%myslide(doi+25).CBStr={};

%myslide(doi+25).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 27th slide in DF-dfOriginalIndex+26
%myslide(doi+26).LblStr={};
%myslide(doi+26).CBStr={};

%myslide(doi+26).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 28th slide in DF-dfOriginalIndex+27
%myslide(doi+27).LblStr={};
%myslide(doi+27).CBStr={};

%myslide(doi+27).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 29th slide in DF-dfOriginalIndex+28
%myslide(doi+28).LblStr={};
%myslide(doi+28).CBStr={};

%myslide(doi+28).default=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 30th slide in DF-dfOriginalIndex+29
%myslide(doi+29).LblStr={};
%myslide(doi+29).CBStr={};

%myslide(doi+29).default=1;







for i=1:length(myslide)
   % if the radiostyle is not 'edit', it is radioButton
   %if ~strcmp(myslide(i).radioStyle,'edit')
   %   myslide(i).radioStyle='radiobutton';   
   %   myslide(i).position=[uiX uiY uiWidth uiHeight];
   %end;   
   for j=1:length(myslide(i).LblStr),
      if j==default(i),
         myslide(i).radio(j)=LocBldUI(myslide(i).radioStyle,char(myslide(i).LblStr(j)),...
            char(myslide(i).CBStr(j)),Checked,j,'',myslide(i).position);
      else,
         myslide(i).radio(j)=LocBldUI(myslide(i).radioStyle,char(myslide(i).LblStr(j)),...
            char(myslide(i).CBStr(j)),UnChecked,j,'',myslide(i).position);
      end;
   end;
   if i==doi+6
      %adjust the setting of the doi+6 's button, the last button should be edit
     set(myslide(doi+6).radio(6),'style','edit','position',[0.45,0.50,0.16,0.05],'enable','off','Backgroundcolor',[1 1 1]);
     betaPos=get(myslide(doi+6).radio(5),'position');
     betaPos(3)=0.45-betaPos(1);
     set(myslide(doi+6).radio(5),'position',betaPos);
   end
   GroupRadioBtns(myslide(i).radio);   
end

%adjust the setting of the doi+6 's button, the last button should be edit
%set(myslide(doi+6).radio(6),'style','edit','position',[0.45,0.50,0.16,0.05],'enable','off');
%betaPos=get(myslide(doi+6).radio(5),'position');
%betaPos(3)=0.45-betaPos(1);
%set(myslide(doi+6).radio(5),'position',betaPos);
% adjust the properties of those edit uicontrols
editHndls=findobj(gcf,'style','edit');
set(editHndls,'HorizontalAlignment','left');         

for i=1:length(myslide)
   if ~length(myslide(i).radio)
      BtnHandles(i,:)=0;
   else   
      for j=1:length(myslide(i).radio)
         BtnHandles(i,j)=myslide(i).radio(j);
      end;
   end;    
end;
%end lbqsjBtns


function uiHandle=LocBldUI(uiStyle,LblStr,CBStr,Value,uiNo,uiTag,uiPos)
% Build UI Controls

%O_x=0.05;
%O_y=0.55;
%X=0.7;
%Y=0.3;

%spacing=0.07;

%uiX=O_x+0.05;
%uiY=O_y+Y-uiNo*spacing;
%uiWidth=0.56;
%uiHeight=0.06;

bkgrndClr=get(gcf,'Color');

if strcmp(uiStyle,'edit')
   spacing=0.08;
else
   spacing=0.07;
end   
position=uiPos;
position(2)=position(2)-(uiNo-1)*spacing;

if strcmp(uiStyle,'edit')
%   position=uiPos;
  % uiX=uiX+0.2;
  % uiWidth=0.16;
  % uiHeight=0.05;
  % uiY=0.80;
   bkgrndClr=[1 1 1];
  %disp('this is for edit')
   %disp(get(gca,'position'))
end


uiHandle=uicontrol(...
   'Style',uiStyle,...
   'String',LblStr,...
   'CallBack',CBStr,...
   'Unit','Normalized',...
   'Position',position,...
   'BackgroundColor',bkgrndClr,...
   'Value',[Value],...
   'Visible','off',...
   'Tag',uiTag);
%end LocBldUI


function GroupRadioBtns(RadioBtns)
% Make those radiobuttons referred in RADIOBTNS mutual excluded
RadioBtns=findobj(RadioBtns,'flat','style','radiobutton');
if ~isempty(RadioBtns)
   for i=1:length(RadioBtns)
   CallBack=get(RadioBtns(i),'CallBack');
   if ~isempty(CallBack)
      CallBack=strcat(CallBack,';');
   end   
   set(RadioBtns(i),'UserData',RadioBtns);
   AddedCB=['Group=get(gco,''UserData'');'...
         'set(Group,''Value'',0);'...
         'set(gco,''Value'',1);'];
   if ~isempty(CallBack)
      CallBack=strcat(CallBack,AddedCB);
   else
      CallBack=AddedCB;
   end   
   set(RadioBtns(i),'CallBack',CallBack);
   end
end %GroupRadioBtns

⌨️ 快捷键说明

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