Code covered by the BSD License
-
GuiBuildActiveCircuit(varargi...
GUIBUILDACTIVECIRCUIT M-file for GuiBuildActiveCircuit.fig
-
GuiBuildStageInformation(vara...
GUIBUILDSTAGEINFORMATION M-file for guiBuildStageInformation.fig
-
GuiFilterOrder(varargin)
GUIFILTERORDER M-file for guiFilterOrder.fig
-
GuiListFrequencyResponse(vara...
GUILISTFREQUENCYRESPONSE M-file for GuiListFrequencyResponse.fig
-
GuiListTransferFunction(varar...
GUILISTTRANSFERFUNCTION M-file for guiListTransferFunction.fig
-
GuiPlotFrequencyResponse(vara...
GUIPLOTFREQUENCYRESPONSE M-file for GuiPlotFrequencyResponse.fig
-
GuiPlotUserData(varargin)
GUIPLOTUSERDATA M-file for GuiPlotUserData.fig
-
GuiSpecifyFilter(varargin)
GUISPECIFYFILTER M-file for GuiSpecifyFilter.fig
-
GuiTimeResponse(varargin)
GUITIMERESPONSE M-file for GuiTimeResponse.fig
-
BuildCircuit_FindZ1P1K1(curSt...
BuildCircuit_FindZ1P1K1 is a subfile of the AnalogFilter GUI collection
-
BuildCircuit_LastStage(strCir...
BuildCircuit_LastStage is a subfile of the AnalogFilter GUI collection
-
BuildCircuit_SelectCircuit(st...
BuildCircuit_SelectCircuit is a subfile of the AnalogFilter GUI collection
-
BuildCircuit_StageInformation...
BuildCircuit_StageInformation is a subfile of the AnalogFilter GUI collection
-
BuildCircuit_UpdateComponents...
BuildCircuit_UpdateComponents is a subfile of the AnalogFilter GUI collection
-
BuildCircuit_Zpk2Circuit(strF...
Zpk2Circuit is a subfile of the AnalogFilter GUI collection
-
FilterOrder_HelpContext
FilterOrder_HelpContext is a subfile of the AnalogFilter GUI collection
-
MenuAnalyzePoleZeroPlot
MenuAnalyzePoleZeroPlot is a subfile of the AnalogFilter GUI collection
-
MenuFileNew(handles)
MenuFileNew is a subfile of the AnalogFilter GUI collection
-
MenuFileOpen
MenuFileOpen is a subfile of the AnalogFilter GUI collection
-
MenuFileSave(handles)
MenuFileSave is a subfile of the AnalogFilter GUI collection
-
MenuFileSaveAs(handles)
MenuFileSaveAs is a subfile of the AnalogFilter GUI collection
-
MenuHelpAbout
MenuHelpAbout is a subfile of the AnalogFilter GUI collection
-
SpecifyFilter_HelpContext
SpecifyFilter_HelpContext is a subfile of the AnalogFilter GUI collection
-
SpecifyFilter_LoadPicture(han...
SpecifyFilter_LoadPicture is a subfile of the AnalogFilter GUI collection
-
SpecifyFilter_LoadStrFilterOb...
SpecifyFilter_LoadStrFilterObject is a subfile of the AnalogFilter GUI collection
-
SpecifyFilter_SaveStrFilterOb...
SpecifyFilter_SaveStrFilterObject is a subfile of the AnalogFilter GUI collection
-
SpecifyFilter_uipmType(handle...
SpecifyFilter_uipmType is a subfile of the AnalogFilter GUI collection
-
Utility_CalculateTime(z,p,k,t...
Utility_CalculateTime is a subfile of the AnalogFilter GUI collection
-
Utility_EngOutput(num, arg1,a...
Utility_EngOutput is a subfile of the AnalogFilter GUI collection
-
Utility_GetDefaultFilterObjec...
Utility_GetDefaultFilterObject is a subfile of the AnalogFilter GUI collection
-
Utility_Round2Tolerance(in,nT...
Utility_Round2Tolerance is a subfile of the AnalogFilter GUI collection
-
[a,b,c,d]=Utility_zpk2ss(z,p,...
Utility_zpk2ss is a subfile of the AnalogFilter GUI collection
-
strFilterObject=Utility_zpk(s...
Utility_zpk is a subfile of the AnalogFilter GUI collection
-
afd.m
-
View all files
from
Analog Filter Design Toolbox
by James Squire
GUI to design and simulate active (opamp) LP and HP Bessel, Butter, Cheby, and Elliptic filters.
|
| BuildCircuit_SelectCircuit(strCircuit, curStage, schTitle)
|
function strCircuit = BuildCircuit_SelectCircuit(strCircuit, curStage, schTitle)
% BuildCircuit_SelectCircuit is a subfile of the AnalogFilter GUI collection
%
% BuildCircuit_SelectCircuit recalculates strCircuit biquad with a new given circuit type.
% Because the new circuit may require a different/new/deleted final circuit gain stage,
% the entire strCircuit structure must be passed to it.
%
% James C. Squire, Assistant Professor, Virginia Military Institute
% ver 1.0
sPurpose = strCircuit.sPurpose; % LP, HP, or Notch
k = abs(strCircuit.vStage(curStage).k);
switch sPurpose
case 'LP'
switch schTitle
case 'Sallen-Key'
% kDC = k / pp* for LP or k otherwise - important because SK uses a different
% configuration for kDC <=1 and >1
kDC = abs(k/(abs(strCircuit.vStage(curStage).p(1))^2));
if abs(kDC-1) < 0.00001 % make it exact
kDC = 1;
end
if kDC <= 1
schName = 'SK_LP_kLE1';
else
schName = 'SK_LP_kGT1';
end
case 'Multiple Feedback'
schName = 'MFB_LP';
case 'Ackerberg-Mossberg (+)'
schName = 'AM_LP_N';
case 'Ackerberg-Mossberg (-)'
schName = 'AM_LP_I';
otherwise, error(['Unrecognized schTitle ' schTitle])
end
case 'HP'
switch schTitle
case 'Sallen-Key'
if k<=1
schName = 'SK_HP_kLE1';
else
schName = 'SK_HP_kGT1';
end
case 'Ackerberg-Mossberg'
schName = 'AM_HP';
otherwise, error(['Unrecognized schTitle ' schTitle])
end
case 'Notch'
switch schTitle
case 'Multiple Feedback'
if isempty(strCircuit.vStage(curStage).z)
error('Not a Notch if no zeros present')
end
z=strCircuit.vStage(curStage).z(1);
p=strCircuit.vStage(curStage).p(1);
if abs(z) > abs(p) %LP
schName = 'MFB_Z_LP';
else %HP
schName = 'MFB_Z_HP';
end
case 'Ackerberg-Mossberg'
schName = 'AM_Z';
otherwise, error(['Unrecognized schTitle ' schTitle])
end
otherwise error(['Unrecognized sPurpose ' sPurpose] )
end
% save the new schName, schTitle in strCircuit
strCircuit.vStage(curStage).schName = schName;
strCircuit.vStage(curStage).schTitle = schTitle;
% update the components in this stage
nCTol = strCircuit.nCTol;
nRTol = strCircuit.nRTol;
strCircuit.vStage(curStage) = BuildCircuit_UpdateComponents(strCircuit.vStage(curStage),nRTol,nCTol);
strCircuit = BuildCircuit_LastStage(strCircuit); % possible gain stage has changed
|
|
Contact us at files@mathworks.com