example 7.2
ZIP with MATLAB scripts and note:
example 7.2 notes:
Contents
-
Ideal Wilkinson splitter/combiner scattering matrix
-
Ideal Wilkinson parameters for single frequency
-
Port 1 to Port 3 S(f)
-
3 port to 2 port: Signal from port 1 to port 2, port 3 loaded with Z0
-
3 port to 2 port: Signal from port 1 to port 2, BUT port 3 OPEN
-
Wilkinson as Combiner: BW 10 times broader
-
Parallel Series Connection [ZWU]
-
N ports to equivalent 2 port General Network Formula [ZWU] [DBR]
-
Enhancing BW: Cp || along Wilkinson Z1 transmission line [ZZHX]
-
Enhancing BW: multi-staged Wilkinson [MNDL]
-
RFTool no floating nodes
-
Comment solutions manual resorting to unknown 'computer aided design tool'
Local Literature References
1.- Ideal Wilkinson splitter/combiner scattering matrix
Wilkinson configuration is a popular signal splitter (divider) or combiner, and in literature it's common to split the circuit into 2, and then apply even odd analysis, [POZAR] shows such analysis, and Torgersen [TT] implements a 'miniature' MMIC Wilkinson, detailing Keysight design steps from circuit to PCB.
At single f0 the scattering matrix of an ideal Wilkinson is S=-1j/2*[0 1 1;1 0 0;1 0 0]
Assuming that because lambda/4 transmission line sections at f0 each generates -1j/2 terms (lambda/4 impedance transformer) and then replacing such value with transmission line impedance
Z0*(ZL+1j*Z0*tan(2*pi*D))/(Z0+1j*ZL*tan(2*pi*D)) is by no means correct.
2.- Ideal Wilkinson parameters for single frequency
c0=229792586; % [m/s] light speed
Z0=50; % [ohm] reference characteristic impedance
D01=.25 % [] electric distance, multiple wavelength at f0, L1=D1*lambda0
D02=.25
Z1=2^.5*Z0 % [ohm] characteristic impedance for TL sections TL1 TL2
R=2*Z0 % [ohm] floating resistor
D01 =
0.250000000000000
D02 =
0.250000000000000
Z1 =
70.710678118654755
R =
100
3.- Port 1 to Port 3 S(f)
Despite at f0 ideal Wilkinson scattering matrix is S=-1j/2*[0 1 1;1 0 0;1 0 0] when varying f then S zero elements are not going to remain null.
df=1e6; % [Hz] frequency resolution
f=[.5e9:df:1.5e9]; % [Hz] band
lambda=c0./f; % [m] wavelength
f0=1e9 % [Hz] nominal carrier
lambda0=c0/f0
L0=lambda0/4 % [m] physical lengths TL1 TL2
D0=L0/lambda0
D=L0./lambda;
ZL=Z0 % 1/(1/Z0+1/(2*Z0))
f0 =
1.000000000000000e+09
lambda0 =
0.229792586000000
L0 =
0.057448146500000
D0 =
0.250000000000000
ZL =
50
What happens when just replacing terms -1j/2 (lambda/4 impedance transformer) with following TL expression:
s31=.5*(ZL+1j*Z0*tan(2*pi*D))./(Z0+1j*ZL*tan(2*pi*D));
figure(1)
plot(f,10*log10(abs(s31)))
grid on
xlabel('f');ylabel('|s21|')
Conventional Wilkinson Insertion Loss over frequency is by no means so flat.
4.- Signal from port 1 to port 2, port 3 loaded with Z0
N1=[reshape(cos(2*pi*D),1,1,numel(D)) 1j*Z1*reshape(sin(2*pi*D),1,1,numel(D)); % branch 1 : ABCD TL1
1j/Z1*reshape(sin(2*pi*D),1,1,numel(D)) reshape(cos(2*pi*D),1,1,numel(D))]
N1_1=N1 % backing up branch 2 abcd, reusing N1 N2 in following cells
% retrieving this N1 comparing with [ZWU] S1||S2 method
N2_TL2=[reshape(cos(2*pi*D),1,1,numel(D)) 1j*Z1*reshape(sin(2*pi*D),1,1,numel(D)); % branch 2 : ABCD TL2
1j/Z1*reshape(sin(2*pi*D),1,1,numel(D)) reshape(cos(2*pi*D),1,1,numel(D))]
N2_port3=[ones(1,1,numel(D)) zeros(1,1,numel(D)); % low branch : ABCD shunt Z0 port 3
1/(Z0)*ones(1,1,numel(D)) ones(1,1,numel(D))]
N2_2Z0=[ones(1,1,numel(D)) 2*Z0*ones(1,1,numel(D)); % low branch : ABCD series 2*Z0
zeros(1,1,numel(D)) ones(1,1,numel(D))]
N2=zeros(2,2,numel(D)) % low branch
for k=1:1:numel(D)
N2(:,:,k)=N2_TL2(:,:,k)*N2_port3(:,:,k)*N2_2Z0(:,:,k);
end
N2_1=N2 % backing up branch 2 abcd, reusing N1 N2 in following cells
% retrieving this N1 comparing with [ZWU] S1||S2 method
Y1=zeros(2,2,numel(D));
for k=1:1:numel(D) Y1(:,:,k)=abcd2y(N1(:,:,k)); end
Y2=zeros(2,2,numel(D));
for k=1:1:numel(D) Y2(:,:,k)=abcd2y(N2(:,:,k)); end
Y=zeros(2,2,numel(D)); % Y1+Y2
for k=1:1:numel(D) Y(:,:,k)=Y1(:,:,k)+Y2(:,:,k); end
S=zeros(2,2,numel(D)); % Y directly to S, no need to go through ABCD again
for k=1:1:numel(D) S(:,:,k)=y2s(Y(:,:,k),Z0); end
for k=1:1:numel(D) S(:,:,k)=y2s(Y(:,:,k),Z0); end
s11=squeeze(S(1,1,:))';
s11_dB=10*log10(abs(s11));
s21=squeeze(S(2,1,:))';
s21_dB=10*log10(abs(s21));
figure(2);
plot(f,s11_dB)
hold on
plot(f,s21_dB)
grid on
xlabel('f');ylabel('[dB]')
title('port1 -> port2, port3 loaded Z0')
legend({'|s11|','|s21|'})
axis([f(1) f(end) -30 0])