Exc. 1: Hartley mixer Hartley mixer cancells the image ... - Oulu
Exc. 1: Hartley mixer Hartley mixer cancells the image ... - Oulu
Exc. 1: Hartley mixer Hartley mixer cancells the image ... - Oulu
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
I in 1<br />
(C) 1999- Timo Rahkonen, University of <strong>Oulu</strong>, <strong>Oulu</strong>, Finland<br />
gmramp.net<br />
1<br />
+<br />
-<br />
g mA<br />
## INV AMP: gm loaded by ano<strong>the</strong>r gm and cap<br />
#<br />
# IV: input position, gmXv: K1, K2, K3 of cond. X<br />
#<br />
Iv := vector([ 1, 0]); #linear input signal<br />
gmAv := vector([ gmA, gmA*K2, gmA*K3]);<br />
gmBv := vector([ gmB, gmB*K2, gmB*K3]);<br />
2<br />
C<br />
g mB<br />
# H1 calcs v vector for given current vector input Iin<br />
H1 := proc(w,Iin) local Y;<br />
# MNA admittance matrix<br />
Y := matrix( [<br />
[1, 0 ], # node 1<br />
[gmA , (gmB + I*w*C)] ]); # node 2<br />
evalm( inverse(Y) &* Iin);<br />
end;<br />
H2 := proc(w1,w2)<br />
local v1,v2,inA,inB,H2A,H2B;<br />
v1 := H1(w1,Iv); # 1st order voltage at w1<br />
v2 := H1(w2,Iv); # 1st order voltage at w2<br />
(C) 1999- Timo Rahkonen, University of <strong>Oulu</strong>, <strong>Oulu</strong>, Finland<br />
-<br />
+<br />
<strong>Exc</strong>. 5: Finding Volterra transfer function for amp<br />
In gmramp.net, <strong>the</strong> amplifier on left is described. Current<br />
equations in nodes 1 and 2 are<br />
1 ⋅ v1 = Iin jωC ⋅ v2 = – gmA ⋅ v1 + gmB ⋅ ( – v2) which in matrix form is<br />
1 0 v1 ⋅<br />
gmA ( gmB + jωC ) v2 Next, in voltrules.txt basic rules for Volterra kernels in<br />
Maple are shown, and next, in gmramp.net, <strong>the</strong> circuit<br />
and positions of distortion current sources are shown.<br />
Do:<br />
• derive 2nd order Volterra response<br />
• modify gmramp.net such that <strong>the</strong> control and output<br />
polarity of g mB are changed. It does not affect linear<br />
transfer function but does affect distortion.<br />
# distortion currents and voltages caused by <strong>the</strong>m<br />
inA := gH2(v1[1],v2[1],gmAv); # calc current<br />
H2A := H1(w1+w2,vector([0,-inA]));# inject it<br />
inB := gH2(-v1[2],-v2[2],gmBv);<br />
H2B := H1(w1+w2,vector([0,+inB]));<br />
evalm(H2A + H2B);<br />
end;<br />
H3 := proc(w1,w2,w3)<br />
local v1,v2,v3, v23,v13,v12,inA,inB,H2A,H2B;<br />
v1 := H1(w1,Iv); v2 := H1(w2,Iv); # 1st order<br />
v3 := H1(w3,Iv); v12 := H2(w1,w2);<br />
v13 := H2(w1,w3); v23 := H2(w2,w3); # 2nd ord<br />
# distortion currents and voltages caused by GA,GB<br />
inA :=<br />
gH3(v1[1],v2[1],v3[1],v12[1],v13[1],v23[1],gmAv);<br />
H2A := H1(w1+w2+w3,vector([0,-inA]));<br />
inB := gH3(-v1[2],-v2[2],-v3[2],-v12[2],-v13[2],v23[2],gmBv);<br />
H2B := H1(w1+w2+w3,vector([0,+inB]));<br />
evalm(H2A + H2B);<br />
end;<br />
=<br />
I in<br />
0<br />
7<br />
8