📄 extrfilt.m
字号:
'B','bt',...
'C','ct',...
'D','dt',...
'Mask Display','plot(w,mag)',...
'Mask Type','cheb1ap,lp2hp')
set_param([sys,'/',['Analog',13,'Highpass/Chebychev Type ',13,'HP Filter']],...
'Mask Dialogue',' Chebyshev type I high pass filter.\n\n(Requires Signal Processing Toolbox)|Cutoff frequency (rad/sec):|Order:|Db ripple in passband:')
set_param([sys,'/',['Analog',13,'Highpass/Chebychev Type ',13,'HP Filter']],...
'Mask Translate','[at,bt,ct,dt,w,mag]=filtm(''cheb1ap'',''lp2hp'',@1,[],50,@2,@3);')
set_param([sys,'/',['Analog',13,'Highpass/Chebychev Type ',13,'HP Filter']],...
'Mask Help','Analog Chebychev type I high pass filter using MATLAB''s cheb1ap and lp2hp commands.',...
'Mask Entries','50\/4\/3\/')
set_param([sys,'/',['Analog',13,'Highpass/Chebychev Type ',13,'HP Filter']],...
'position',[80,139,145,191])
add_block('built-in/Note',[sys,'/',['Analog',13,'Highpass/Analog Highpass Filters']])
set_param([sys,'/',['Analog',13,'Highpass/Analog Highpass Filters']],...
'position',[110,15,115,20])
% Subsystem ['Analog',13,'Highpass/Elliptic',13,'HP Filter'].
new_system([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter']])
set_param([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter']],'Location',[8,51,250,269])
add_block('built-in/State-Space',[sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter/Elliptic',13,'HP Filter']])
set_param([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter/Elliptic',13,'HP Filter']],...
'A','at',...
'B','bt',...
'C','ct',...
'D','dt',...
'Mask Display','plot(w,mag)',...
'Mask Type','ellip, lp2hp')
set_param([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter/Elliptic',13,'HP Filter']],...
'Mask Dialogue','Elliptic band stop filter.\n\n(Requires Signal Processing Toolbox)|Center frequency (rad/sec):|Order:|Db ripple in passband:|Db ripple in stopband:')
set_param([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter/Elliptic',13,'HP Filter']],...
'Mask Translate','[at,bt,ct,dt,w,mag]=filtm(''ellipap'',''lp2hp'',@1,[],60,@2,@3,@4);')
set_param([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter/Elliptic',13,'HP Filter']],...
'Mask Help','Elliptic high pass filter using MATLAB''s ellipap and lp2hp commands.',...
'Mask Entries','20\/2\/3\/20\/')
set_param([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter/Elliptic',13,'HP Filter']],...
'position',[90,75,145,125])
add_block('built-in/Note',[sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter/(May take some time to draw icon)']])
set_param([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter/(May take some time to draw icon)']],...
'position',[115,20,120,25])
% Finished composite block ['Analog',13,'Highpass/Elliptic',13,'HP Filter'].
set_param([sys,'/',['Analog',13,'Highpass/Elliptic',13,'HP Filter']],...
'position',[95,340,125,390])
% Finished composite block ['Analog',13,'Highpass'].
set_param([sys,'/',['Analog',13,'Highpass']],...
'position',[320,73,350,127])
add_block('built-in/Note',[sys,'/','These blocks require the Signal Processing Toolbox'])
set_param([sys,'/','These blocks require the Signal Processing Toolbox'],...
'position',[195,35,200,40])
add_block('built-in/Note',[sys,'/','Filters'])
set_param([sys,'/','Filters'],...
'position',[193,9,198,15])
% Subsystem ['Double click',13,'on this block',13,'for demo.'].
new_system([sys,'/',['Double click',13,'on this block',13,'for demo.']])
set_param([sys,'/',['Double click',13,'on this block',13,'for demo.']],'Location',[-10,380,117,533])
set_param([sys,'/',['Double click',13,'on this block',13,'for demo.']],...
'Mask Display','DEMO',...
'Mask Dialogue','eval(''spectf'')')
% Finished composite block ['Double click',13,'on this block',13,'for demo.'].
set_param([sys,'/',['Double click',13,'on this block',13,'for demo.']],...
'position',[256,282,311,316])
% Subsystem ['Special Discrete-',13,'Time Filters'].
new_system([sys,'/',['Special Discrete-',13,'Time Filters']])
set_param([sys,'/',['Special Discrete-',13,'Time Filters']],'Location',[8,75,152,405])
add_block('built-in/Note',[sys,'/',['Special Discrete-',13,'Time Filters/(May take some time ',13,'to draw icons)']])
set_param([sys,'/',['Special Discrete-',13,'Time Filters/(May take some time ',13,'to draw icons)']],...
'position',[75,25,80,30])
add_block('built-in/Filter',[sys,'/',['Special Discrete-',13,'Time Filters/Remez FIR']])
set_param([sys,'/',['Special Discrete-',13,'Time Filters/Remez FIR']],...
'Numerator','b',...
'Denominator','a',...
'Sample time','ts',...
'Mask Display','plot(1:128,abs(h))',...
'Mask Type','remez')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/Remez FIR']],...
'Mask Dialogue','Parks-McClellan linear phase FIR filter.\n\n(Requires Signal Processing Toolbox)|Frequencies (0 to 1):|Magnitudes:|Order:|Sample time:')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/Remez FIR']],...
'Mask Translate','[b,a]=remez(@3,@1,@2); ts=@4; h=freqz(b,a,128); ',...
'Mask Help','Parks-McClellan filter using MATLAB''s remez command.')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/Remez FIR']],...
'Mask Entries','[0 .55 .65 1]\/[1 1 0 0]\/4\/1\/',...
'position',[50,243,100,297])
add_block('built-in/Filter',[sys,'/',['Special Discrete-',13,'Time Filters/FIR Filter']])
set_param([sys,'/',['Special Discrete-',13,'Time Filters/FIR Filter']],...
'Numerator','b',...
'Denominator','1',...
'Sample time','ts',...
'Mask Display','plot(1:64,abs(h))',...
'Mask Type','fir2')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/FIR Filter']],...
'Mask Dialogue','FIR filter using inverse ffts.\n\n(Requires Signal Processing Toolbox)|Frequencies (0 to 1):|Magnitudes:|Order:|Sample time:')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/FIR Filter']],...
'Mask Translate','[b]=fir2(@3,@1,@2); ts=@4; h=freqz(b,1,64); ',...
'Mask Help','Finite impulse response filter using MATLAB''s fir2 command.')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/FIR Filter']],...
'Mask Entries','[0, 0.6, 0.6, 1]\/[1 1 0 0]\/4\/1\/',...
'position',[50,162,100,208])
add_block('built-in/Filter',[sys,'/',['Special Discrete-',13,'Time Filters/Yulewalk IIR']])
set_param([sys,'/',['Special Discrete-',13,'Time Filters/Yulewalk IIR']],...
'Numerator','b',...
'Denominator','a',...
'Sample time','ts',...
'Mask Display','plot(1:128,abs(h))',...
'Mask Type','yulewalk')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/Yulewalk IIR']],...
'Mask Dialogue','Yulewalker filter.\n\n(Requires Signal Processing Toolbox)|Frequencies (0 to 1):|Magnitudes:|Order:|Sample time:')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/Yulewalk IIR']],...
'Mask Translate','[b,a]=yulewalk(@3,@1,@2); ts=@4; h=freqz(b,a,128); ',...
'Mask Help','Yulewalker filter using MATLAB''s yulewalk command.')
set_param([sys,'/',['Special Discrete-',13,'Time Filters/Yulewalk IIR']],...
'Mask Entries','[0 .6 .6 1]\/[1 1 0 0]\/2\/1\/',...
'position',[50,73,100,127])
% Finished composite block ['Special Discrete-',13,'Time Filters'].
set_param([sys,'/',['Special Discrete-',13,'Time Filters']],...
'position',[125,273,155,327])
add_block('built-in/Note',[sys,'/',['NOTES',13,'Discrete-time filters will simulate faster.',13,'Discrete-time filters of order 8 or less are implemented',13,'in controller canonical form for improved efficiency.']])
set_param([sys,'/',['NOTES',13,'Discrete-time filters will simulate faster.',13,'Discrete-time filters of order 8 or less are implemented',13,'in controller canonical form for improved efficiency.']],...
'position',[190,355,195,360])
% Subsystem ['Analog',13,'Lowpass'].
new_system([sys,'/',['Analog',13,'Lowpass']])
set_param([sys,'/',['Analog',13,'Lowpass']],'Location',[8,75,228,499])
% Subsystem ['Analog',13,'Lowpass/Elliptic',13,'LP Filter'].
new_system([sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter']])
set_param([sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter']],'Location',[8,51,294,299])
add_block('built-in/Note',[sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter/(May take some time to draw icon)']])
set_param([sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter/(May take some time to draw icon)']],...
'position',[160,55,165,60])
add_block('built-in/Zero-Pole',[sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter/Elliptic Filter']])
set_param([sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter/Elliptic Filter']],...
'Zeros','z',...
'Poles','p',...
'Gain','k',...
'Mask Display','plot(20*log10(w),20*log10(abs(h)))',...
'Mask Type','ellip')
set_param([sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter/Elliptic Filter']],...
'Mask Dialogue','Elliptic low pass filter.\n\n(Requires Signal Processing Toolbox)|Cutoff frequency (rad/sec):|Order:|Db ripple in passband|Db ripple in stopband:')
set_param([sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter/Elliptic Filter']],...
'Mask Translate','[z,p,k]=ellipap(@2,@3,@4); z=@1*z; p=@1*p; k=real(prod(-p)/prod(-z)); [num,den]=zp2tf(z,p,k); w=logspace(log10(@1/10),log10(10*@1),50); h=freqs(num,den,w); ')
set_param([sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter/Elliptic Filter']],...
'Mask Help','Elliptic low pass filter using MATLAB''s ellipap command.',...
'Mask Entries','0.0001\/4\/2\/30\/',...
'position',[130,99,185,151])
% Finished composite block ['Analog',13,'Lowpass/Elliptic',13,'LP Filter'].
set_param([sys,'/',['Analog',13,'Lowpass/Elliptic',13,'LP Filter']],...
'position',[95,340,125,390])
add_block('built-in/Zero-Pole',[sys,'/',['Analog',13,'Lowpass/Chebychev Type II',13,'LP Filter']])
set_param([sys,'/',['Analog',13,'Lowpass/Chebychev Type II',13,'LP Filter']],...
'Zeros','z',...
'Poles','p',...
'Gain','k',...
'Mask Display','plot(20*log10(w),20*log10(abs(h)))',...
'Mask Type','cheb2ap')
set_param([sys,'/',['Analog',13,'Lowpass/Chebychev Type II',13,'LP Filter']],...
'Mask Dialogue','Chebyshev type II low pass filter.\n(Requires Signal Processing Toolbox)|Cutoff frequency (rad/sec):|Order:|Db ripple down in stopband:')
set_param([sys,'/',['Analog',13,'Lowpass/Chebychev Type II',13,'LP Filter']],...
'Mask Translate','[z,p,k]=cheb2ap(@2,@3); z=@1*z; p=@1*p; k=real(prod(-p)/prod(-z)); [num,den]=zp2tf(z,p,k); w=logspace(log10(@1/10),log10(10*@1),50); h=freqs(num,den,w); ')
set_param([sys,'/',['Analog',13,'Lowpass/Chebychev Type II',13,'LP Filter']],...
'Mask Help','Analog Chebychev type II low pass filter using MATLAB''s cheb2ap command.',...
'Mask Entries','0.0001\/6\/40\/',...
'position',[85,249,145,301])
add_block('built-in/Zero-Pole',[sys,'/',['Analog',13,'Lowpass/Chebychev Type I',13,'LP Filter']])
set_param([sys,'/',['Analog',13,'Lowpass/Chebychev Type I',13,'LP Filter']],...
'Zeros','z',...
'Poles','p',...
'Gain','k',...
'Mask Display','plot(20*log10(w),20*log10(abs(h)))',...
'Mask Type','cheb1ap')
set_param([sys,'/',['Analog',13,'Lowpass/Chebychev Type I',13,'LP Filter']],...
'Mask Dialogue','Chebyshev type I low pass filter.\n\n(Requires Signal Processing Toolbox)|Cutoff frequency (rad/sec):|Order:|Db ripple in passband:')
set_param([sys,'/',['Analog',13,'Lowpass/Chebychev Type I',13,'LP Filter']],...
'Mask Translate','[z,p,k]=cheb1ap(@2,@3); z=@1*z; p=@1*p; k=real(prod(-p)); [num,den]=zp2tf(z,p,k); w=logspace(log10(@1/10),log10(10*@1),50); h=freqs(num,den,w); ')
set_param([sys,'/',['Analog',13,'Lowpass/Chebychev Type I',13,'LP Filter']],...
'Mask Help','Analog Chebychev type I low pass filter using MATLAB''s cheb1ap command.',...
'Mask Entries','40\/4\/3\/',...
'position',[85,155,145,205])
add_block('built-in/Zero-Pole',[sys,'/',['Analog',13,'Lowpass/Analog Butterworth',13,'LP Filter']])
set_param([sys,'/',['Analog',13,'Lowpass/Analog Butterworth',13,'LP Filter']],...
'Zeros','z',...
'Poles','p',...
'Gain','k',...
'Mask Display','plot(20*log10(w),20*log10(abs(h)))',...
'Mask Type','buttap')
set_param([sys,'/',['Analog',13,'Lowpass/Analog Butterworth',13,'LP Filter']],...
'Mask Dialogue','Analog Butterworth low pass filter.\n\n(Requires Signal Processing Toolbox)|Cutoff frequency (rad/sec)|Order')
set_param([sys,'/',['Analog',13,'Lowpass/Analog Butterworth',13,'LP Filter']],...
'Mask Translate','[z,p,k]=buttap(@2); z=@1*z; p=@1*p; k=real(prod(-p)); [num,den]=zp2tf(z,p,k); w=logspace(log10(@1/10),log10(10*@1),20); h=freqs(num,den,w); ')
set_param([sys,'/',['Analog',13,'Lowpass/Analog Butterworth',13,'LP Filter']],...
'Mask Help','Butterworth low pass filter using MATLAB''s butter command.',...
'Mask Entries','40\/4\/',...
'position',[85,63,145,107])
add_block('built-in/Note',[sys,'/',['Analog',13,'Lowpass/Analog Lowpass Filters']])
set_param([sys,'/',['Analog',13,'Lowpass/Analog Lowpass Filters']],...
'position',[115,15,120,20])
% Finished composite block ['Analog',13,'Lowpass'].
set_param([sys,'/',['Analog',13,'Lowpass']],...
'position',[90,73,120,127])
drawnow
% Return any arguments.
if (nargin | nargout)
% Must use feval here to access system in memory
if (nargin > 3)
if (flag == 0)
eval(['[ret,x0,str,ts,xts]=',sys,'(t,x,u,flag);'])
else
eval(['ret =', sys,'(t,x,u,flag);'])
end
else
[ret,x0,str,ts,xts] = feval(sys);
end
else
drawnow % Flash up the model and execute load callback
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -