📄 dfdcheck.m
字号:
function goodspec = dfdcheck(speca,filnumb)
% dfdcheck.m DFD check specification
% 0:56 9/3/99
%
% Authors: Dejan V. Tosic, Miroslav D. Lutovac, 1999.03.08
% tosic@telekom.etf.bg.ac.yu
% lutovac@galeb.etf.bg.ac.yu
%
% Copyright (c) 1999 by Tosic & Lutovac
% $Revision: 1.0 $ $Date: 1999/03/08 03:07:42 $
%
% References:
% Miroslav D. Lutovac, Dejan V. Tosic, Brian L. Evans
% Advanced Filter Design for Signal Processing
% Using MATLAB and Mathematica
goodspec = 1;
if any(speca-abs(speca))
goodspec = 0;
disp('AFD ERROR in filter specification: Negative data.')
return
end
if filnumb==1
if speca(1)>=speca(2)
goodspec = 0;
disp('AFD ERROR in lowpass spec: Fpass >= Fstop.')
end
if speca(2)>=0.5
goodspec = 0;
disp('AFD ERROR in lowpass spec: Fstop >= 0.5.')
end
if speca(3)>=speca(4)
goodspec = 0;
disp('AFD ERROR in lowpass spec: Apass >= Astop.')
end
elseif filnumb==2
if speca(1)>=speca(2)
goodspec = 0;
disp('AFD ERROR in highpass spec: Fstop >= Fpass.')
end
if speca(2)>=0.5
goodspec = 0;
disp('AFD ERROR in highpass spec: Fpass >= 0.5.')
end
if speca(3)>=speca(4)
goodspec = 0;
disp('AFD ERROR in highpass spec: Apass >= Astop.')
end
elseif filnumb==3
if speca(1)>=speca(2)
goodspec = 0;
disp('AFD ERROR in bandpass spec: Fstop1 >= Fpass1.')
end
if speca(2)>=speca(3)
goodspec = 0;
disp('AFD ERROR in bandpass spec: Fpass1 >= Fpass2.')
end
if speca(3)>=speca(4)
goodspec = 0;
disp('AFD ERROR in bandpass spec: Fpass2 >= Fstop2.')
end
if speca(4)>=0.5
goodspec = 0;
disp('AFD ERROR in bandpass spec: Fstop2 >= 0.5.')
end
if speca(6)>=speca(5)
goodspec = 0;
disp('AFD ERROR in bandpass spec: Apass >= Astop1.')
end
if speca(6)>=speca(7)
goodspec = 0;
disp('AFD ERROR in bandpass spec: Apass >= Astop2.')
end
elseif filnumb==4
if speca(1)>=speca(2)
goodspec = 0;
disp('AFD ERROR in bandreject spec: Fpass1 >= Fstop1.')
end
if speca(2)>=speca(3)
goodspec = 0;
disp('AFD ERROR in bandreject spec: Fstop1 >= Fstop2.')
end
if speca(3)>=speca(4)
goodspec = 0;
disp('AFD ERROR in bandreject spec: Fstop2 >= Fpass2.')
end
if speca(4)>=0.5
goodspec = 0;
disp('AFD ERROR in bandreject spec: Fpass2 >= 0.5.')
end
if speca(5)>=speca(6)
goodspec = 0;
disp('AFD ERROR in bandreject spec: Apass1 >= Astop.')
end
if speca(7)>=speca(6)
goodspec = 0;
disp('AFD ERROR in bandreject spec: Apass2 >= Astop.')
end
else
error(['AFD ERROR: Unsupported filter type ', num2str(filnumb), '.'])
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -