07.04.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!