example 11.1
ZIP with MATLAB scripts and note:
example 11.1 notes:
Example single PIN diode used as RF switch, including BIAS. Seriously what is with a lot of top notch RF microwave literature considering BIAS not important enough, to not mentioning in most of places where it's supposed to be mentioned, that is, everywhere :
Diode model:
The applied BIAS brings diode(s) to either let-through or block signal:
When it comes to noise simulation Anyone can write a few code lines to generate series of numbers that look more or less 'random' (random = unknown).
It takes more effort to, firstly set up a real test environment, get all the samples, extract all key parameters, from all samples, and then write for instance the following noise expressions
sqVs=4*K_boltz*T*rs*df % [V^2]
sqId=2*qe*Id*B+k_flicker*Id^a/f*df % [A^2]
that accurately generates noise. Noise that, if not exactly (the nature of noise prevents it from being copied, at least exactly), at least behaving in similar way to the actual noise generated by real semiconductor diodes. SPICE models diode noise as a sqVs voltage source series to rs,
and series to ( rd || current source sqId ).
[POZAR] uses same SPICE model for diodes.
Cj=.5e-12; % [F]
Rf=1.5; % [ohm]
Li=.5e-9; % [H]
Rr=2; % [ohm]
Z0=50; % [ohm]
% carrier
f0=1.8e9; % [Hz]
% diode impedance
Zd_rev=Rr+1j*(2*pi*f0*Li-1/(2*pi*f0*Cj)) % reverse
Zd_for=Rf+1j*2*pi*f0*Li % forward
IL_on_series_dB=-20*log10(abs(2*Z0/(2*Z0+Zd_for)))
IL_off_series_dB=-20*log10(abs(2*Z0/(2*Z0+Zd_rev)))
IL_on_shunt_dB=-20*log10(abs(2*Zd_rev/(2*Zd_rev+Z0)))
IL_off_shunt_dB=-20*log10(abs(2*Zd_for/(2*Zd_for+Z0)))
ratio_att_series_ON_OFF_dB=abs(IL_on_series_dB-IL_off_series_dB)
ratio_att_shunt_ON_OFF_dB=abs(IL_on_shunt_dB-IL_off_shunt_dB)
if ratio_att_series_ON_OFF_dB>ratio_att_shunt_ON_OFF_dB
disp('L[dB] ON-FF series > L[dB] ON-OFF shunt. ')
elseif ratio_att_series_ON_OFF_dB<ratio_att_shunt_ON_OFF_dB
disp('L[dB] ON-FF shunt > L[dB] ON-OFF series. ')
else % ratio_att_series_ON_OFF_dB==ratio_att_shunt_ON_OFF_dB
disp('diode shunt or series both show same ON-OFF attenuation.')
end
if IL_on_shunt_dB>IL_on_series_dB
disp('Best Insertion loss is SERIES because IL[dB] ON shunt > IL[dB] ON series. ')
elseif IL_on_shunt_dB<IL_on_series_dB
disp('Best Insertion Loss is SHUNT because IL[dB] ON series > IL[dB] ON shunt. ')
else % IL_on_series_dB== IL_off_series_dB
disp('diode shunt or series both show same ON Insertion Loss.')
end
PIN diode Microsemi (part of Microchip) UM9605 datasheet attached.
Observe in UM9605 datasheet that IL is dependent on bias, so the formulas shown in this example are a good 1st contact with diode modelling, but a good model for IL should take into account how much current and voltage consumed.
On the right hand side UM9605 datasheet Insertion Loss within [.5 4] GHz. I dare say that despite the entire datasheet mentioned UM9605 as SHUNT switch, for this particular curve, the diode as mounted with the series test set because of the following red curve (series) is flatter and within the values of the shown graph for UM9605-UM9608.
Zd_rev =
2.000000000000000e+00 - 1.711839588811998e+02i
Zd_for =
1.500000000000000 + 5.654866776461629i
IL_on_series_dB =
0.142780187382803
IL_off_series_dB =
5.988774420470825
IL_on_shunt_dB =
0.106125519077009
IL_off_shunt_dB =
13.314552466666822
ratio_att_series_ON_OFF_dB =
5.845994233088022
ratio_att_shunt_ON_OFF_dB =
13.208426947589812
df=1e8;
f=[5e8:df:4e9];
Zdr= Rr+1j*(2*pi*f*Li-1./(2*pi*f*Cj));
IL_on_shunt=abs(20*log10(abs(2*Zdr./(2*Zdr+Z0))));
Zdv=Rf+1j*2*pi*f*Li;
IL_on_series=abs(20*log10(abs(2*Z0./(2*Z0+Zdv))));
figure;
plot(f,IL_on_shunt)
hold on
plot(f,IL_on_series)
grid on
xlabel('f');ylabel('IL[dB]')
title('IL[dB] PIN diode ON')
[1]
SPICE3 version 3f4 User's Manual
authors: Newton, Pederson, Sangiovanni,
Berkeley University