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

📄 afdedit.m

📁 AFD - Advanced Filter Design using MATLABMiroslav D. Lutovac, Dejan V. Tosicversion 1.00 released 15
💻 M
📖 第 1 页 / 共 2 页
字号:
% afdedit.m  AFD specification editor (script)
% 3:59  31/1/99
%
%   Authors: Dejan V. Tosic, Miroslav D. Lutovac, 1999.02.08
%                 tosic@telekom.etf.bg.ac.yu
%                 lutovac@galeb.etf.bg.ac.yu
%
%   Copyright (c) 1999 by Tosic & Lutovac
%   $Revision: 1.0 $  $Date: 1999/02/08 03:07:42 $
%
%   References:
%        Miroslav D. Lutovac, Dejan V. Tosic, Brian L. Evans
%           Advanced Filter Design for Signal Processing
%                   Using MATLAB and Mathematica

%% calls:
%% afdcheck.m, afdorder.m, afda2k.m

if fig2 & find(get(0,'Children')==fig2)
 figure(fig2)
 delete(ebt)
else
 fig2 = figure;
 set(fig2, 'Name', 'Edit Specification' ...
        , 'NumberTitle', 'off' ...
        , 'Position', initsize+[340,-50,-300,-200] ...
        , 'Color',[0.25,0,0.50])
end

delete(gca);
axis off;

ebb0close = uicontrol('String', 'close', 'Units', 'normalized' ...
     , 'Position', [0.85 0.9 0.15 0.06] ...
     , 'CallBack', 'close(fig2); fig2=0; clear ebt');

ebb1save = uicontrol('String', 'save', 'Units', 'normalized' ...
     , 'Position', [0.85 0.8 0.15 0.06] ...
     , 'CallBack', ['tmpspeca=[filnumb,speca];', ...
                    '[savefile,savepath]=uiputfile(''tmpspec.dat'',''Save specification'');', ...
                    'if savefile~=0;', ...
                    'eval([''save '',savepath,savefile,'' tmpspeca -ascii'']);', ...
                    'end;']);

 et8 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.1 0.15 0.06] ...
     , 'String',   'ninc');

 eb8 = uicontrol('Style', 'edit' ...
     , 'String', num2str(ninc) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.1 0.15 0.06] ...
     , 'CallBack', ['ninc1=eval(get(eb8,''String''));', ...
                    'if ninc1>nincmax;', ...
                    'ninc=nincmin;', ...
                    'elseif ninc1<nincmin;', ...
                    'ninc=nincmax;', ...
                    'else;', ...
                    'ninc=ninc1;', ...
                    'end;', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);']);

 et9 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.13 0.02 0.35 0.06] ...
     , 'String',   [num2str(nincmin),'<=ninc<=',num2str(nincmax)]);

if     filnumb==1

 text(0,1.0, 'Lowpass');

 et1 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.8 0.15 0.06] ...
     , 'String',   'Fpass');

 eb1 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(1)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.8 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb1,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(1)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(1)=newspeca;', ...
                    'speck(1)=speca(1);', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb1,''String'',num2str(speca(1)));']);
 et2 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.7 0.15 0.06] ...
     , 'String',   'Fstop');

 eb2 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(2)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.7 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb2,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(2)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(2)=newspeca;', ...
                    'speck(2)=speca(2);', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb2,''String'',num2str(speca(2)));']);

 et3 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.6 0.15 0.06] ...
     , 'String',   'Apass');

 eb3 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(3)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.6 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb3,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(3)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(3)=newspeca;', ...
                    'speck(3)=afda2k(speca(3));', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb3,''String'',num2str(speca(3)));']);

 et4 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.5 0.15 0.06] ...
     , 'String',   'Astop');

 eb4 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(4)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.5 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb4,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(4)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(4)=newspeca;', ...
                    'speck(4)=afda2k(speca(4));', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb4,''String'',num2str(speca(4)));']);

 ebt = [eb1, eb2, eb3, eb4, ...
        et1, et2, et3, et4, ...
        eb8, et8, ...
        ebb0close, ebb1save];

elseif filnumb==2

 text(0,1.0, 'Highpass');

 et1 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.8 0.15 0.06] ...
     , 'String',   'Fstop');

 eb1 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(1)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.8 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb1,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(1)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(1)=newspeca;', ...
                    'speck(1)=speca(1);', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb1,''String'',num2str(speca(1)));']);

 et2 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.7 0.15 0.06] ...
     , 'String',   'Fpass');

 eb2 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(2)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.7 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb2,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(2)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(2)=newspeca;', ...
                    'speck(2)=speca(2);', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb2,''String'',num2str(speca(2)));']);

 et3 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.6 0.15 0.06] ...
     , 'String',   'Apass');

 eb3 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(3)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.6 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb3,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(3)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(3)=newspeca;', ...
                    'speck(3)=afda2k(speca(3));', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb3,''String'',num2str(speca(3)));']);

 et4 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.5 0.15 0.06] ...
     , 'String',   'Astop');

 eb4 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(4)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.5 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb4,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(4)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(4)=newspeca;', ...
                    'speck(4)=afda2k(speca(4));', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb4,''String'',num2str(speca(4)));']);

 ebt = [eb1, eb2, eb3, eb4, ...
        et1, et2, et3, et4, ...
        eb8, et8, ...
        ebb0close, ebb1save];

elseif filnumb==3

 text(0,1.0, 'Bandpass');

 et1 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.8 0.15 0.06] ...
     , 'String',   'Fstop1');

 eb1 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(1)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.8 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb1,''String''));', ...
                    'speca1=speca;', ...
                    'speca1(1)=newspeca;', ...
                    'if afdcheck(speca1,filnumb);', ...
                    'speca(1)=newspeca;', ...
                    'speck(1)=speca(1);', ...
                    '[nmin,nmax,nincmin,nincmax] = afdorder(speck,filnumb);', ...
                    'ninc=0;', ...
                    'set(b16n,''String'',[''n='',num2str(nmin+ninc)]);', ...
                    'set(eb8,''String'',num2str(ninc));', ...
                    'set(et9,''String'',[num2str(nincmin),''<=ninc<='',num2str(nincmax)]);', ...
                    'end;', ...
                    'set(eb1,''String'',num2str(speca(1)));']);

 et2 = uicontrol('Style', 'text' ...
     , 'Units',    'normalized' ...
     , 'Position', [0.15 0.7 0.15 0.06] ...
     , 'String',   'Fpass1');

 eb2 = uicontrol('Style', 'edit' ...
     , 'String', num2str(speca(2)) ...
     , 'Units',    'normalized' ...
     , 'Position', [0.31 0.7 0.15 0.06] ...
     , 'CallBack', ['newspeca=eval(get(eb2,''String''));', ...

⌨️ 快捷键说明

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