exercise 5.16
ZIP with MATLAB scripts and note:
exercise 5.16 notes:
4 section binomial impedance transformer
ZL=12.5;Z0=50;f0=1e9
Fractional bandwidth df/f0 (same as df/f0):
the amount of [0 2*f0] frequency band, percentage of such band below given reflection threshold
|gamma|=(SWR-1)/(SWR+1) or SWR=(1+|gamma|)/(1-|gamma|)
|gamma| or SWR, one of them has to be defined in advance in order to get df/f0.
Characteristic impedances of each section:
ZL=12.5;Z0=50;
A single l/4 impedance transformer section has the following characteristic impedance
Z1=(Z0*ZL)^.5
N=[1:1:4];
for n=N
Zn=Z0;Z_sections1=[0];
for k=0:1:n-1
Ztr=exp(log(Zn)+2^(-n)*nchoosek(n,k)*log(ZL/Z0));
Z_sections1=[Z_sections1 Ztr];
Zn=Ztr;
end
Z_sections1(1)=[]
end
format short;Z_sections1
format long
fractional bandwidth of binomial multi-section transformer
gamma_m=.05; SWR=vswr(gamma_m)
A=2^(-N(end))*(ZL-Z0)/(ZL+Z0) % not using approx A~1/(2^(N(end)+1)*log(ZL/Z0))
A_approx=1/(2^(N(end)+1))*log(ZL/Z0)
df_over_f0=2-4/pi*acos(.5*(gamma_m/abs(A))^(1/N(end)))
df_over_f0_approx=2-4/pi*acos(.5*(gamma_m/abs(A_approx))^(1/N(end)))
Z1 = 25
Z_sections1 = 45.8502 32.4210 19.2776 13.6313
SWR = 1.105263157894737
A = -0.037500000000000
A_approx = -0.043321698784997
df_over_f0 = 0.722200117155431
df_over_f0_approx = 0.693659648388165
df_over_f0 is fractional band approximation 5.30 247pg
df_over_f0_approx : on top of the previous approximation 5.30, df_over_f0_approx also includes approximation 5.53 253pg.
N=4
dD=.0001
D=[0:dD:.5];
A=2^(-N)*(ZL-Z0)/(ZL+Z0)
gamma=A*(1+exp(-1j*2*2*pi*D)).^N
abs_gamma=abs(gamma)
figure(1)
plot(D,abs_gamma);grid on
title(['|\Gamma| , N=' num2str(N)])
xlabel('D')
Showing bow binomial impedance transformer with N improves the passband, 256pg.
c0=2.998*10^8;
df=1e6;
f0=2e9;f1=0;f2=2*f0
dfrel=df/f0;frel=[f1/f0:dfrel:f2/f0];
D1=.25;L1=D1*c0/f0
gamma=zeros(1,numel(frel))
N=[1:1:5]
for k=1:1:numel(N)
A=2^(-N(k))*(ZL-Z0)/(ZL+Z0)
gamma=[gamma;A*(1+exp(-1j*2*2*pi* frel.*f0/c0.*L1)).^N(k)];
end
gamma(1,:)=[];
abs_gamma=abs(gamma);
figure(2);ax2=gca
for k=1:1:numel(N)
plot(frel,abs_gamma(k,:));
hold(ax2,'on')
end
title(['|\Gamma| , N=' num2str(N(1)) ' to ' num2str(N(end))])
Ncell={}
for k=1:1:numel(N)
Ncell=[Ncell ['N=' num2str(N(k))]]
end
legend(Ncell);grid on;xlabel('f/f0')
comment: above, function nchoosek has been used, but don't use function combnk because it's going to be a problem when attempting combnk(3,0) returning empty, not 1 as expected. Alternatively a custom function may be used.
fC=@(N,n) factorial(N)./(factorial(N-n).*factorial(n))
N=3
C3=fC(N*ones(1,N),[0:1:N-1])
N=4
C3=fC(N*ones(1,N),[0:1:N-1])
the weak point of the binomial impedance transformer is that it's not that frequency selective, the sides of the pass band are not as sharp as sometimes may be required, not also that on the band sides, |gamma|=0.6 only, there's no full rejection achieved even when f=2*f0.
= 1×0 empty double row vector
N = 3
C3 = 1 3 3
N = 4
C3 = 1 4 6 4
Now let's plug the obtained characteristic impedances of the binomial transformer in ADS.
Using Zin obtained with ADS TLIN, that are quite the same as the characteristic impedances obtained with MATLAB,
Z0=50;ZL=12.5
Ztr=[45.8502 32.4210 19.2776 13.6313]
D=[0:.0001:.5]
Zin4=Ztr(4)*(ZL+1j*Ztr(4).*tan(2*pi*D))./(Ztr(4)+1j*ZL.*tan(2*pi*D));
Zin3=Ztr(3)*(Zin4+1j*Ztr(3).*tan(2*pi*D))./(Ztr(3)+1j*Zin4.*tan(2*pi*D));
Zin2=Ztr(2)*(Zin3+1j*Ztr(2).*tan(2*pi*D))./(Ztr(2)+1j*Zin3.*tan(2*pi*D));
Zin1=Ztr(1)*(Zin2+1j*Ztr(1).*tan(2*pi*D))./(Ztr(1)+1j*Zin2.*tan(2*pi*D));
gamma=(Zin1-Z0)./(Zin1+Z0) % reflection coefficient
figure(3);plot(D,abs(gamma));grid on;
title('|\Gamma|')
xlabel('D')
figure(4);plot(D,10*log10((abs(gamma)).^2));grid on;
title('|\Gamma| [dB]')
xlabel('D')
D is swept within [0 0.5] because D is the relative length for each l/4 section.
With the characteristic impedances obtained after manual tuning of the circuit with MLine components Ztr=[30.8502 32.524 19.2776 13.6313] the same distorted graphs are obtained in ADS.
Although the theoretical Insertion Loss calculated with MATLAB is not that bad, when attempting to also calculate the effective lengths of the lambda/4 sections directly from the er ee formula, the section lengths look a bit too close each other compared to the ADS manual optimisation results with lambda/4 MLINE.
Importing widths from ADS into MATLAB workspace
W_mm=[2.9914 5.4607 11.5047 17.8366]*1e-3
lambda0=29.98e-3 % mm
d=1.58e-3;er=4.2;Wd=W_mm/d
ee=(er+1)/2+(er-1)/2*1./(1+12*Wd).^.5
lambda=lambda0./ee.^.5
L=lambda/4
W_mm = 0.0029 0.0054 0.0115 0.0178
lambda0 = 0.0299
Wd = 1.8932 3.4561 7.2814 11.2889
ee = 2.9285 2.8455 2.7701 2.7369
lambda = 0.0175 0.0177 0.0180 0.0181
L = 0.0043 0.0044 0.0045 0.0045