You are on page 1of 1

%###########s-para##############

s11 = 0.641*exp(1i*-171.3*pi/180);
s21 = 2.058*exp(1i*28.5*pi/180);
s12 = 0.057*exp(1i*16.3*pi/180);
s22 = 0.572*exp(1i*-95.7*pi/180);
%###########stability check##############
delta=s11*s22-s12*s21;
[delta_theta,delta_rho]=cart2pol(real(delta),imag(delta));
fprintf("mag of delta--> %f\n",delta_rho)
k=(1+abs(delta)^2-abs(s11)^2-abs(s22)^2)/(2*abs(s12*s21));
fprintf("K--> %f\n",k)
mu=(1-abs(s11)^2)/(abs(s22-conj(s11)*delta)+abs(s21*s12));
fprintf("mu--> %f\n",mu)
fprintf("\n")
%################Unilateral Design check ##################
U=abs(s11*s12*s21*s22)/((1-abs(s11)^2)*(1-abs(s22)^2));
fprintf("Value of U--> %f\n",U)
range1=1/((1+U)^2);
range1=10*log10(range1);
range2=1/((1-U)^2);
range2=10*log10(range2);
fprintf("Error due to unilateral assumsion in the range %f %f\n",range1,range2)
%###################Simulatenous conjugate matching ###############
B1=1+abs(s11)^2-abs(s22)^2-abs(delta)^2;
B2=1+abs(s22)^2-abs(s11)^2-abs(delta)^2;
C1= s11-delta*conj(s22);
C2= s22-delta*conj(s11);
gamaMS_Positive=(B1+sqrt(B1^2-4*abs(C1)^2))/(2*C1);
gamaMS_Negative=(B1-sqrt(B1^2-4*abs(C1)^2))/(2*C1);
gamaML_Positive=(B2+sqrt(B2^2-4*abs(C2)^2))/(2*C2);
gamaML_Negative=(B2-sqrt(B2^2-4*abs(C2)^2))/(2*C2);
[gamaMS_Positive_theta,gamaMS_Positive_rho]=cart2pol(real(gamaMS_Positive),imag(gam
aMS_Positive));
[gamaMS_Negative_theta,gamaMS_Negative_rho]=cart2pol(real(gamaMS_Negative),imag(gam
aMS_Negative));
[gamaML_Positive_theta,gamaML_Positive_rho]=cart2pol(real(gamaML_Positive),imag(gam
aML_Positive));
[gamaML_Negative_theta,gamaML_Negative_rho]=cart2pol(real(gamaML_Negative),imag(gam
aML_Negative));
fprintf("gamaMS_Positive--> %f %f\
n",gamaMS_Positive_rho,gamaMS_Positive_theta*180/pi)
fprintf("gamaMS_Negative--> %f %f\
n",gamaMS_Negative_rho,gamaMS_Negative_theta*180/pi)
fprintf("gamaML_Positive--> %f %f\
n",gamaML_Positive_rho,gamaML_Positive_theta*180/pi)
fprintf("gamaML_Negative--> %f %f\
n",gamaML_Negative_rho,gamaML_Negative_theta*180/pi)
%###################Maximum GT possible ###############
GTmax=10*log10(abs(s21)/abs(s12)*(k-sqrt(k^2-1)));
fprintf("Maximum tranducer gain--> %f\n",GTmax)

You might also like