For the SM2000 I need some VHF small signal RF amplifiers, for example a driver amplifier for the transmit PA. So I figured it was about time I learned to design RF transistor amplifiers. The S-parameter method seems to be the way to go, and I have some BRF92 transistors that have S params on the data sheet.

Unless you are experienced in RF design this post may not make much sense. I estimate the eye glazing to interest ratio at 20dB. However as a RF noob I am documenting my experience to help me remember what I have learned.

I spent a day reading the small signal transistor amplifier chapters of “EMRFD” and “RF Circuit Design” by Chris Bowick, and getting my head around Smith Charts. I scratched about on a bunch of paper, complex numbers flying everywhere. Lots of errors and rework. The next morning, to cross check my manual work, I wrote s_param_rf.m to handle the tedious calculations.

I also found these helpful RF and Microwave Stuff Octave scripts, e.g. Smith Chart plotting, including stability circles.

The transistor and operating point I chose was not unconditionally stable, so I had get my head around “stability circles” and find an input and output load that would be stable, and design input and output matching networks. The “RF Circuit Design” book walked me through everything.

Here is the Smith Chart for my operating point:

The red and blue arcs are “no go” circles for the input and output impedance the transistors sees. The green is a 20dB constant gain circle. Any output reflection coefficient gammaL on the gain circle will give you an amplifier with 20dB gain. The source reflection coefficient gammaS is a function of gammaL. So I tried a few different gammaL (red star) until I found a stable gammaS (purple star).

The Smith Chart is rather “busy”. The output reflection coefficient gammaL = 0.8 – 0.4j is the same point as the load or output impedance Zo = 1 – 4j (normalised to 50 ohms which is 50 -200j without normalisation). Even though they map to identical points on the chart, they are read off different axis as different values.

Here is a sample run of the Octave script:

`octave:207> s_param_rf`

K = 250.5885e-003

-----Frequency: 1.00 - potentially unstable - plotting stability circles

Red is the gammaIn=1, for all loads (gammaL)

Blue is the gammaOut=1, for all sources (gammaS)

Green is the 20.0 dB constant gain circle for gammaL

Input: Zi = 67.6 + 26.9j ohms

In parallel form Rp = 78.3 Xp = 197.1j ohms

So for a conjugate match transistor input wants to see:

Rp = 78.3 Xp = -197.1j ohms

Rs = 50.0 to Rl = 78.3 ohm matching network Xs = 37.6j Xp = -104.1j

with conj match to Zi Xs = 37.6j Xp = -301.1j

matching components Ls = 0.040 uH Cp = 3.5 pF

Ls can be made from 3.1 turns on a 6.25 mm diameter air core

Output: Zo = 50.0 + -200.0j ohms

So for a conjugate match transistor output wants to see:

Rl = 50.0 Xl = 200.0j ohms

Which is a series inductor Lo = 0.212 uH

Lo can be made from 7.1 turns on a 6.25 mm diameter air core

I then designed the bias network and came up with this circuit, which I soldered together:

You can just see the little SOT-23 surface mount transistor in the centre of the photo.

Much to my surprise it worked! They say anyone can design a RF oscillator but it takes skill to design an RF amplifier. This actually works as an amplifier! Here is the gain swept between 0 and 300MHz:

Gain was 23dB, return loss at both ports about 8dB at 150MHz. I’m not sure if the return loss is a problem, it represents about 1dB loss (15%) in the reflected signal. I figure getting within 15% is OK given component and S-param tolerances at VHF.

The noise figure was measured at 4dB, and 1dB compression point around 0dBm. The compression point feels a bit low, perhaps as I used a collector resistor rather than a RF choke. I’ll read up on that next, see if I can get a 10dBm output, suitable for driving the SM2000 PA.

**Version 2 with 10dBm Output**

After another day of head scratching and 3 tries with different collector currents, collector loads, and finally an increased Vce (10V), I have arrived at a version that can handle 10dBm output:

Two tricks were required to get the 10dBm power output:

- Setting the load impedance for the collector Z=P/(Irms*Irms). I worked out the required impedance assuming a RMS current of 2mA, which was a reasonably “small signal” variation from the 14mA bias I selected for this version.
- Raising Vce from 4V to 10V by using an inductor in the collector rather than a resistor. This meant Vc could bounce around a bit more without being clipped. When I tried increasing the collector impedance without raising Vce the output power was still distorted at 0dBm, so this was an important step. The inductor ended up being part of the matching network and now my circuit looks like everyone else’s so I must be doing something right.

If the above doesn’t sound very convincing it’s because I don’t quite know what I’m doing. EMRFD and RF Circuit Design has a better explanation.

The output is a nice clean 10dBm sine wave, with 2nd order nasties 35dB down:

The Octave script was modified to do the calculations for this version:

`octave:69> s_param_rf`

K = 466.3534e-003

-----Frequency: 1.00 - potentially unstable - plotting stability circles

Red is the gammaIn=1, for all loads (gammaL)

Blue is the gammaOut=1, for all sources (gammaS)

Green is the 20.0 dB constant gain circle for gammaL

Transducer gain: 26.9 dB

Input: Zi = 8.4 + 3.2j ohms

In parallel form Rp = 9.6 Xp = 25.4j ohms

So for a conjugate match transistor input wants to see:

Rp = 9.6 Xp = -25.4j ohms

Rs = 50.0 to Rl = 9.6 ohm matching network Xs = 19.7j Xp = 24.4j

with Xs a capacitor, and Xp and inductor Xs = -19.7j Xp = 24.4j

With a conj match to Zi Xs = -45.2j Xp = 24.4j

matching components Li = 0.026 uH Ci = 23.5 pF

Li can be made from 2.5 turns on a 6.25 mm diameter air core

Output: Zo = 2500.0 + 0.0j ohms

matching network Xp = 357.1 X = 350.0 ohms

which is parallel Lo = 0.379 uH and series Co = 3.0 pF

Lo can be made from 9.4 turns on a 6.25 mm diameter air core

My “transducer gain” is somewhat off (I’m getting 21dB), I know not why. Maybe as I’m using 100MHz s-params for a 150MHz circuit. Now time to look at diode TR switching and maybe a class C 1W PA.

I was studying EMRFD to understand the collector load thing and found what looked like a small typo. I emailed the author (the legendary Wes Hayward) who replied and sure enough I was right, and it will be added to the errata. Finding even a small error in a book like EMRFD makes me feel prouder than getting this amplifier working! Just like software – debugging someone else’s well written work is a great way to learn. Also like open source “release early and often” and let the community help improve the work.