GBproductBudget.m

fileName = 'GBproductBudget';

%%

checkCircuit(fileName);

htmlPage('Circuit data');

img2html([fileName, '.svg'], 600);

netlist2html(fileName);

defPar('C_A', CA);

Cf = PR.R7.value*CA/PR.R5.value/(PR.R6.value + PR.R7.value);

defPar('C_f', Cf);

defPar('R_o', PR.R6.value);

defPar('R_ell', PR.R7.value);

params2html();

%%

htmlPage('GB product budgeting');

img2html([fileName, '.svg'], 600);

simType('numeric');

gainType('loopgain');

dataType('laplace');

source('V1');

detector('V_ell');

lgRef('E1');

lg = execute();

lg.laplace = lg.results(1);

%%

head2html('GB with $r_o=0$');

syms('GB_min', 'GB', 'C_i', 'r_o');

lg.laplaceSimple = subs(lg.laplace, r_o, 0);

transferCoeffs = coeffsTransfer(lg.laplaceSimple);

numerCoeffs = transferCoeffs(1);

denomCoeffs = transferCoeffs(2);

orderN = length(numerCoeffs) - 1;

orderD = length(denomCoeffs) - 1;

order = orderD - orderN;

LPproduct = simplify(-numerCoeffs(orderN + 1)/denomCoeffs(orderD + 1));

GBmin = vpa(expand(solve((LPproduct)^(1/order)-2*pi*PR.R4.value, GB)), 3);

text2html('In this case the minimum value of the GB product equals:');

eqn2html(GB_min, GBmin);

text2html(['and the order is: ', num2str(order)]);

%%

head2html('GB as a function of $r_o$ and $C_i$');

text2html(['A nonzero value of $r_o$ introduces a pole with a ', ...

'frequency above $\\frac{1}{2\\pi (R_{\\ell}+R_o)C_f}$']);

text2html(['This is a non-dominant pole and the influence of $r_o$ ', ...

'on the frequency range of interest will be ignored.']);

script2html('GBproductBudget');

stophtml();

Go to main index

SLiCAP: Symbolic Linear Circuit Analysis Program, Version 0.6 © 2009-2020 Anton Montagne

For documentation, examples, support, updates and courses please visit: analog-electronics.eu