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

📄 setfiltstruc.m

📁 信号实验常用的simulink模型和mfile,可直接在matlan下运行。
💻 M
字号:
function filtStruc=setFiltStruc
% function setFiltStruc set the preparation data for yhzfiltdes
%
%
%


load yhzfd.mat
filtStruc.tf.num=bz;
filtStruc.tf.den=az;
filtStruc.ss=[];
filtStruc.zpk=[];
filtStruc.sos=[];
filtStruc.imp=[];
filtStruc.step=[];
filtStruc.t=[];
filtStruc.H=[];
filtStruc.G=[];
filtStruc.f=[];
filtStruc.Fs=1;
filtStruc.type='design';
filtStruc.lineinfo=[];
filtStruc.SPTIdentifier.type='Filter';
filtStruc.SPTIdentifier.version='2.0';
filtStruc.needEst=1;
%filter.Fs=fsa;
filtStruc.label=label;
[filtStruc.imp,filtStruc.t] = ...
   impz(bz,az,[],1);
% set default specs value:
specs.ir=[1,0]; % choose FIR
specs.FType=1; %LP
specs.firmethod=1; % Boxcar Window
specs.firN=41; %Window Length
specs.iirmethod=[1,1]; %buttorworth AP with BLT
specs.iirorder=7;
specs.f=[0.25;0.30];
specs.Rp=3;
specs.Rs=18;
specs.Fs=1;
specs.kaiserbeta=0;

% set specs according to the designed DF in fdshow
%showFigNum=findobj('tag','yhzfdshow');
%slideData=get(showFigNum,'UserData');
doi=16;
specs.FType=yhzfindvalue(2,'value');
fiir=yhzfindvalue(doi,'value');
specs.ir=[0,0];
specs.ir(fiir)=1;
if specs.ir(1) %FIR
   firmethod=yhzfindvalue(doi+1,'value'); %WINDOWS or FREQUENCY SAMPLING
   if  firmethod==2
       specs.firmethod=6;
       M=yhzfindvalue(doi+11,'edit');
       specs.firN=2*M+1;
       %Wsf=Ws/(2*pi);  %Load frequency parameters from yhzfd
       %specs.f=[Wsf;(0.5-Wsf)/2+Wsf];
       %% set Rp, Rs, Fs default value
    else %Windows Method
       specs.firmethod=yhzfindvalue(doi+6,'value');
       M=yhzfindvalue(doi+7,'edit');
       specs.firN=2*M+1;
       if specs.firmethod==5 %kaiser, set the beta
          specs.kaiserbeta=str2num(betaS); %from yhzfd.mat
          filtStruc.needEst=0;
       end
    end
    Wsf=Ws/(2*pi);  %Load frequency parameters from yhzfd
    specs.f=[Wsf; Wsf]; %(0.5-Wsf)/2+Wsf];
    % set Rp, Rs, Fs default value
 else %IIR 
    iirmethod1=yhzfindvalue(doi+18,'value');
    iirmethod2=yhzfindvalue(doi+21,'value');
    specs.iirmethod=[iirmethod1,iirmethod2];
    %iirPara=yhzfindvalue(doi+14+specs.FType,'edit');
    specs.Fs=fsa;
    filtStruc.Fs=fsa;
    specs.Rs=Rs; %iirPara(4);
    specs.Rp=Rp; %iirPara(3);
    specs.f=[fp;fs];       %[iirPara(1,:);iirPara(2,:)];
    specs.iirorder=N; %from yhzfd.mat
end   

filtStruc.specs=specs;

function jj=yhzfindvalue(index,style)
% find the choose button in slide(index)
showFigNum=findobj('tag','fdshow','visible','on');
slideData=get(showFigNum,'UserData');
if strcmp(style,'value')
 jj=1;
 while ~get(slideData.BtnHandles(index,jj),'value')
       jj=jj+1;
 end
else % style='edit'
   noneZero=find(slideData.BtnHandles(index,:));
   jjStr=get(slideData.BtnHandles(index,noneZero),'string');
   jj=str2num(jjStr);
end   

⌨️ 快捷键说明

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