ZIP with MATLAB scripts and note:
exercise 6.8
exercise 6.8 notes:
syms C L R Z0 w
ZL=R+1j*L*w+1/(1j*C*w) % series tank load
Zin=Z0^2/ZL % lambda/4 impedance transformer input impedance
formula(Zin) % check
[N,D]=numden(Zin)
l/4 inverts each circuit Load component, effectively turning C into L, R into Z0^2/R,
L into R, therefore behaving as reactance mirror and allowing energy storage as well as resonance.
D1=D/N
% same as
% D1=D/(C*w*Z0^2)
D1=expand(D1)
% collect(D1,w);collect(D1,1/w);collect(D1,1) % doesn't work
solve(D1==0,w)
% symbolic roots of Zin denominator: input admittance Yin
%%
clear all
syms w
C1=10^-12;L1=10^-7;R1=10;Z01=50 % numeric example
ZL1=R1+1j*L1*w+1/(1j*C1*w)
Zin1=Z01^2/ZL1
% simplifyFraction(Zin1)
%
[N_1,D_1]=numden(Zin1)
D_2=D_1/N_1
D_2=expand(D_2)
double(solve(D_2==0,w))
% symbolic roots of Zin denominator: input admittance Yin
resonant frequency cannot be far from these roots.
MATLAB does not recognize [w 1 1/w] as polynomial despite same coefficients are applied to same polynomial just shifted one w^-1 down.
a way around is to apply w* just at the sym2poly step:
coeffs_D_2=sym2poly(w*D_2) % [1j*L R 1/(1j*C)]
coeff_L1=coeffs_D_2(1)/1j
coeff_R1=coeffs_D_2(2)
coeff_C1=1/(1j*coeffs_D_2(3))
% equivalent parallel tank:
C2=coeff_L1*Z01^2
R2=Z01^2/coeff_R1
L2=coeff_C1/Z01^2
ZL =
R + L*w*1i - 1i/(C*w)
Zin =
Z0^2/(R + L*w*1i - 1i/(C*w))
ans =
Z0^2/(R + L*w*1i - 1i/(C*w))
N =
C*Z0^2*w
D =
C*L*w^2*1i + C*R*w - 1i
D1 =
(C*L*w^2*1i + C*R*w - 1i)/(C*Z0^2*w)
D1 =
R/Z0^2 - 1i/(C*Z0^2*w) + (L*w*1i)/Z0^2
ans =
(((C*(- C*R^2 + 4*L))^(1/2)*1i + C*R)*1i)/(2*C*L)
-(((C*(- C*R^2 + 4*L))^(1/2)*1i - C*R)*1i)/(2*C*L)
ZL1 =
(w*1i)/10000000 - 1000000000000i/w + 10
Zin1 =
2500/((w*1i)/10000000 - 1000000000000i/w + 10)
N_1 =
25000000000*w
D_1 =
w^2*1i + 100000000*w - 10000000000000000000i
D_2 =
(w^2*1i + 100000000*w - 10000000000000000000i)/(25000000000*w)
D_2 =
(w*1i)/25000000000 - 400000000i/w + 1/250
=
1.0e+09 *
-3.161882350752475 + 0.050000000000000i
3.161882350752475 + 0.050000000000000i
coeffs_D_2 =
1.0e+08 *
Column 1
0.000000000000000 + 0.000000000000000i
Column 2
0.000000000040000 + 0.000000000000000i
Column 3
0.000000000000000 - 4.000000000000000i
coeff_L1 =
4.000000000000000e-11
coeff_R1 =
0.004000000000000
coeff_C1 =
2.500000000000000e-09
C2 = 1.000000000000000e-07
R2 = 625000
L2 = 1.000000000000000e-12
f1=.1e9;f2=.9e9;
Nf=1e7 % amount frequency points between f1 f2
df=abs(f1-f2)/(Nf+1) % frequency resolution
f=[f1:df:f2];
Z0=50
ZL1num=R1+1j*L1*2*pi*f+1./(1j*C1*2*pi*f);
Zin1num=Z0^2./ZL1num;
Gamma1=(Zin1num-Z0)./(Zin1num+Z0);
absG1=abs(Gamma1);
figure(1);plot(f,absG1);grid on;title('series tank + \lambda/4')
nf01=find(absG1==min(absG1));
f01=f(nf01)
ZL2num=1./(1/R2+1./(1j*2*pi*f*L2)+1j*2*pi*f*C2);
Gamma2=(ZL2num-Z0)./(ZL2num+Z0);
absG2=abs(Gamma2);
figure(2);plot(f,absG2);grid on;title('equivalent parallel tank')
nf02=find(absG2==min(absG2));
f02=f(nf02)
Exactly same single resonant frequency despite the parallel tank is far sharper.
Nf =
10000000
df =
79.999992000000802
Z0 =
50
f01 =
5.032921196707881e+08
f02 =
5.032921196707881e+08