example 7.1
ZIP with MATLAB scripts and note:
example 7.1 notes:
A T-junction makes the most basic splitter/combiner.
A shunt single-element placed right on the junction may suffice to match some ports on a single frequency.
Assume lossless transmission lines, all matched.
In this example each transmission line reaches the junction with a different characteristic impedance.
At the junction point, the equivalent characteristic impedance that is observed from each port is different and it is a 'parallel' sum of the characteristic impedances built with the Z0-th remaining transmittion lines joining the junction. Additionally a 'calibration' or 'filtering' impedance, B in the opening diagram, may be place to improve frequency response.
syms Z1 Z2
Z0=50
% P0=P1+P2 % ideal combiner/splitter
% for V0=1 % [V] volts
% P1=.5/Z1 % [W] P1=1/2*V0^2/Z1
% P2=.5/Z2 % [W] P2=1/2*V0^2/Z2
% Pin-.5/Z0 % [W] watts
eq1=1/Z0==1/Z1+1/Z2
eg2=.5/Z1==2*.5/Z2
eqs=[1/Z1+1/Z2-1/Z0;.5/Z1-2*.5/Z2]
Sol1=solve(eqs,[Z1 Z2])
Sol1.Z1
Sol1.Z2
Sol1 =
struct with fields:
Z1: [1×1 sym]
Z2: [1×1 sym]
Sol1.Z1 =
75
Sol1.Z2 =
150
The characteristic impedances of the output ports are
Z01=double(Sol1.Z1);
Z02=double(Sol1.Z2);
Z01 = 75
Z02 = 150
And the respective output reflection coefficients, looking into the output ports are
rho_out1=(Zshunt(Z01,Z0)-Z02)/(Zshunt(Z01,Z0)+Z02)
rho_out1=(Zshunt(Z02,Z0)-Z01)/(Zshunt(Z02,Z0)+Z01)
rho_out1 =
-0.666666666666667
rho_out1 =
-0.333333333333333
2.- B single capacitor
So far B=0 but often wave guidelines are populated with devices (lumped or distributed) to improve frequency response.
df=1e5 % [Hz] frequency step
f=[1e5:df:5e9];
C=[1e-6 1e-9 1e-12]; % [F] now let's try 3 different capacitors, one at a time, right on the junction
f0=2e9 % [Hz] assume narrow band carrier
% clear junction, Z01 Z02 already calculated
Z01
Z02
rho1_out_abs=zeros(numel(C),numel(f));
rho2_out_abs=zeros(numel(C),numel(f));
for k1=1:1:numel(C)
B=C(k1)*2*pi*f;
rho1_out_abs(k1,:)=20*log10(abs((Zshunt(Z01-1j./B,Z0)-Z02)./(Zshunt(Z01-1j./B,Z0)+Z02)));
rho2_out_abs(k1,:)=20*log10(abs((Zshunt(Z02,Z0)- (Z01-1j./B))./(Zshunt(Z02,Z0)+ (Z01-1j./B))));
end
hf1=figure(1);
for k1=1:1:numel(C)
plot(f,rho1_out_abs(k1,:));
hold on
end
grid on;xlabel('f[Hz]');
title('C : PORT 2 |rho1(f)|^2 dB');
str1=['C = ' num2str(C(1)/1e-6) 'uF'];
str2=['C = ' num2str(C(2)/1e-9) 'nF'];
str3=['C = ' num2str(C(3)/1e-12) 'pF'];
legend({str1 str2 str3});
hf2=figure(2);
for k1=1:1:numel(C)
plot(f,rho2_out_abs(k1,:));
hold on
end
grid on;xlabel('f[Hz]');
title('C : PORT 1 |rho2(f)|^2 dB')
str1=['C = ' num2str(C(1)/1e-6) 'uF'];
str2=['C = ' num2str(C(2)/1e-9) 'nF'];
str3=['C = ' num2str(C(3)/1e-12) 'pF'];
legend({str1 str2 str3});
figure(1)
figure(2)
3.- LC shunt tank
Now let's try a tank : .1pF with 10 different values of inductance L
C0=.1e-12; % [F] now C Constant
L=linspace(1e-3,1e-9,10); % [H] inductance
rho1_out_abs=zeros(numel(L),numel(f));
rho2_out_abs=zeros(numel(L),numel(f));
% C || L
B0=C0*2*pi*f;
for k1=1:1:numel(L)
X=L(k1)*2*pi*f;
rho1_out_abs(k1,:)=20*log10(abs((Zshunt(Z01-1j./B0+1j*X(k1),Z0)-Z02)./(Zshunt(Z01-1j./B0+1j*X(k1),Z0)+Z02)));
rho2_out_abs(k1,:)=20*log10(abs((Zshunt(Z02,Z0)- (Z01-1j./B0+1j*X(k1)))./(Zshunt(Z02,Z0)+ (Z01-1j./B0+1j*X(k1)))));
end
hf3=figure(3);
for k1=1:1:numel(L)
plot(f,rho1_out_abs(k1,:));
hold on
end
grid on;xlabel('f[Hz]');
title('0.1pF || L : PORT 2 |rho1(f)|^2 dB');
str1=['L = ' num2str(L(1)/1e-3) 'mH'];
str2=['L = ' num2str(L(floor(numel(L)/2))/1e-6) 'uH'];
str3=['L = ' num2str(L(end)/1e-9) 'nH'];
legend({str1 str2 str3},'Location','northeastoutside');
hf4=figure(4);
for k1=1:1:numel(L)
plot(f,rho2_out_abs(k1,:));
hold on
end
grid on;xlabel('f[Hz]');
title('0.1pF || L : PORT 1 |rho2(f)|^2 dB');
str1=['L = ' num2str(L(1)/1e-3) 'mH'];
str2=['L = ' num2str(L(floor(numel(L)/2))/1e-6) 'uH'];
str3=['L = ' num2str(L(end)/1e-9) 'nH'];
legend({str1 str2 str3},'Location','northeastoutside');
% C || L
B0=C0*2*pi*f;
for k1=1:1:numel(L)
X=L(k1)*2*pi*f;
rho1_out_abs(k1,:)=20*log10(abs((Zshunt(Z01-1j./B0+1j*X(k1),Z0)-Z02)./(Zshunt(Z01-1j./B0+1j*X(k1),Z0)+Z02)));
rho2_out_abs(k1,:)=20*log10(abs((Zshunt(Z02,Z0)- (Z01-1j./B0+1j*X(k1)))./(Zshunt(Z02,Z0)+ (Z01-1j./B0+1j*X(k1)))));
end
hf3=figure(3);
for k1=1:1:numel(L)
plot(f,rho1_out_abs(k1,:));
hold on
end
grid on;xlabel('f[Hz]');
title('0.1pF || L : PORT 2 |rho1(f)|^2 dB');
str1=['L = ' num2str(L(1)/1e-3) 'mH'];
str2=['L = ' num2str(L(floor(numel(L)/2))/1e-6) 'uH'];
str3=['L = ' num2str(L(end)/1e-9) 'nH'];
legend({str1 str2 str3},'Location','northeastoutside');
hf4=figure(4);
for k1=1:1:numel(L)
plot(f,rho2_out_abs(k1,:));
hold on
end
grid on;xlabel('f[Hz]');
title('0.1pF || L : PORT 1 |rho2(f)|^2 dB');
str1=['L = ' num2str(L(1)/1e-3) 'mH'];
str2=['L = ' num2str(L(floor(numel(L)/2))/1e-6) 'uH'];
str3=['L = ' num2str(L(end)/1e-9) 'nH'];
legend({str1 str2 str3},'Location','northeastoutside');
C0=.1e-12; % [F] now C Constant
L=linspace(1e-3,1e-9,10); % [H] inductance
rho1_out_abs=zeros(numel(L),numel(f));
rho2_out_abs=zeros(numel(L),numel(f));
% C || L
B0=C0*2*pi*f;
for k1=1:1:numel(L)
X=L(k1)*2*pi*f;
rho1_out_abs(k1,:)=20*log10(abs((Zshunt(Z01-1j./B0+1j*X(k1),Z0)-Z02)./(Zshunt(Z01-1j./B0+1j*X(k1),Z0)+Z02)));
rho2_out_abs(k1,:)=20*log10(abs((Zshunt(Z02,Z0)- (Z01-1j./B0+1j*X(k1)))./(Zshunt(Z02,Z0)+ (Z01-1j./B0+1j*X(k1)))));
end
hf3=figure(3);
for k1=1:1:numel(L)
plot(f,rho1_out_abs(k1,:));
hold on
end
grid on;xlabel('f[Hz]');
title('0.1pF || L : PORT 2 |rho1(f)|^2 dB');
str1=['L = ' num2str(L(1)/1e-3) 'mH'];
str2=['L = ' num2str(L(floor(numel(L)/2))/1e-6) 'uH'];
str3=['L = ' num2str(L(end)/1e-9) 'nH'];
legend({str1 str2 str3},'Location','northeastoutside');
hf4=figure(4);
for k1=1:1:numel(L)
plot(f,rho2_out_abs(k1,:));
hold on
end
grid on;xlabel('f[Hz]');
title('0.1pF || L : PORT 1 |rho2(f)|^2 dB');
str1=['L = ' num2str(L(1)/1e-3) 'mH'];
str2=['L = ' num2str(L(floor(numel(L)/2))/1e-6) 'uH'];
str3=['L = ' num2str(L(end)/1e-9) 'nH'];
legend({str1 str2 str3},'Location','northeastoutside');