
clear all,close all,clc
syms  gds2 gm2 gmb2 gds1 Cn gds4 gm4 gmb4 Cp gds3 s gm1 CL
Yn=gds2*(gds1+s*Cn)/(gds2+gm2+gmb2+gds1+s*Cn);
Yp=gds4*(gds3+s*Cp)/(gds4+gm4+gmb4+gds3+s*Cp);
Gm=gm1*(gm2+gmb2+gds2)/(gds2+gm2+gmb2+gds1+s*Cn);
Yn=gds2*(gds1+s*Cn)/(gds2+gm2+gds1+s*Cn);
Yp=gds4*(gds3+s*Cp)/(gds4+gm4+gds3+s*Cp);
Gm=gm1*(gm2+gds2)/(gds2+gm2+gds1+s*Cn);
Yn=gds2*(gds1+s*Cn)/(gds2+gm2+s*Cn);
Yp=gds4*(gds3+s*Cp)/(gds4+gm4+s*Cp);
Gm=gm1*(gm2)/(gds2+gm2+s*Cn);
% Yn=gds2*(gds1+s*Cn)/(gm2+s*Cn)
% Yp=gds4*(gds3+s*Cp)/(gm4+s*Cp)
% Gm=gm1*(gm2)/(gm2+s*Cn)
tfota=collect(Gm/(Yn+Yp+s*CL),s)
dcgain=subs(tfota,s,0)
tfota_gds0=subs(tfota,{gds1,gds2,gds4,gds3},{gds1*0,gds2*1,gds4*1,gds3*0});
tmp=subs(collect(s*tfota_gds0),s,0);
p1 = tmp/dcgain; 
tfota_appro1 = collect(tfota_gds0*s,s)*1/(s+p1);
disp('tfota_appro1')
pretty(tfota_appro1)
[ntfota_gds0,dtfota_gds0]=numden(tfota_gds0);
%subs(ans,{gds2,gds4},{0,0})
% collect((s*Cn+gm2+gds2)*(s*Cp+gm4+gds4),s)
% expand((gm2*Cp+gds2*Cn)*(gm4+gds4))
% 
% Cn*Cp*gds2/( CL*Cp*gm2 )
% Cn*gds2*gm4/(CL*gm2*gm4)
 
%根据 dtfota_gds0 二次项的形式,猜测分母有两个跟如下
dtfota_guess0=(s*(s*Cn+gm2+gds2+gds2*Cn/CL)*(s*Cp+gm4+gds4+gds4*Cp/CL)*CL);
dtfota_guess=expand(dtfota_guess0);
dtfota_guess=collect(dtfota_guess,s);
diff_between_dtfota_gds0_dtfota_guess = simplify(dtfota_gds0-dtfota_guess) 
disp('tfota_appro')
tfota_appro2 = factor(ntfota_gds0)/dtfota_guess0;
pretty(tfota_appro2)