Pulse-Counting FM Broadcast Receiver

Months ago when I was working in Cronulla I had plenty of time on the daily rail commute to design a pulse-integration circuit in LT Spice. At one point I threw the result together on a solderless breadboard and tested it with the signal generator - it worked well, but was far from a complete WBFM receiver. I forgot the idea for a while and built the Fremodyne instead. Last weekend I decided to revisit the idea. This radio receiver is the result.

Pulse-Counting FM Receiver

The design isn't fully optimised, the IF in particular is just bench-sweepings, and the audio amplifier isn't going to set any audiophile benchmarks, but for the most part the result is very pleasing to use. The pulse-integration discrimination method is inherently low distortion, high dynamic range, and has a frequency response to DC. Compared to super-regenerative FM receivers of the past this receiver sounds spectacular!


What is pulse-counting FM detection? Basically you generate a constant-width (narrow) pulse for each cycle of a signal (say at the zero crossing) and integrate the pulses to produce a "DC" voltage directly proportional to the frequency of the signal. This is the familiar "tachometer" circuit used in many places. Changes in frequency produce corresponding changes in the voltage stored in the integrator capacitor - essentially an ideal FM discriminator. We don't care about the amplitude of the signal only its frequency so the IF can be class-C and is ideally driven into limiting to reject amplitude-related noise.

This radio uses a low-IF with a single conversion front-end. FM broadcast uses +/- 75 kHz peak deviation, so the IF needs to be at least 100 kHz or so and have a bandwidth of about 200 kHz. Channel spacing is 200 kHz too, which presents a bit of a problem, but in practice even a roughly designed IF/Limiter will perform fairly well. The FM multiplex signal has energy to at least 53 kHz so if you want to recover it you need to be a bit more careful about the IF system. This radio is not so careful and uses a very brute-force topology.

Circuit Diagram

This simplistic design means there are two "optimal" local oscillator tuning spots per channel (+/- the IF relative to the carrier). In between the LO mixes down and/or aliases the IF into the audible range which is undesirable (sounds horrible). Ideally the IF amplifier only amplifies signals above "baseband" up to the peak IF frequency and the detector is followed by a filter that rejects the IF. This radio does the later with a simple Sallen Key filter, but the former isn't really implemented beyond the inter-stage coupling of the IF stages which roll off its gain towards lower frequencies. None the less the result is quite acceptable at the expense of a poorer signal to noise ratio at baseband where a bit of "out of band IF" leaks through the detector on weak signals. Once in full limiting it isn't really a problem as only intermodulation can mix IF energy down into baseband.

RF Front-End

The front-end is a simplistic single-JFET mixer with a tuned-loop antenna on the gate. A Hartley JFET oscillator implements the LO, and injects into the low-Z source of the mixer JFET from a tap on the LO tank quite close to the cold end. The IF is extracted from the drain of the mixer. A choke rejects the higher frequency bits of the mess at the drain, but the IF amplifier does the bulk of the band-limiting - an area that probably needs improvement. The front-end is not particularly sensitive, but I live in a high-signal area so this is of little consequence. The pre-selection tunes sharply which is actually a bit annoying usability wise. Also severely detuned the pre-selector lets you tune the mixer to powerful out-of-band signals, this clobbers the signal of interest at the IF. In a better design the pre-selector would be track-tuned with the LO.

The IF Limiter and Pulse Integrator

The IF limiter is just three cascaded "minimal" common-emitter BJT amplifiers. It is works well enough, but I am not very happy with the design. The pulse-generator was originally designed to be biased slightly on, but I encountered instability problems doing so. It is now "auto-threshold biasing" class-C which decreases the sensitivity to non-limiting IF signals but it behaves... The preceding IF amplifier is largely to blame. In the absence of an input signal it can oscillate. This is a hack. The topology of the pulse-generator may look a little weird with the grounded base, but it is easy to understand if you simulate it in LT Spice - basically the emitter gets pulled below ground by the 39 pF cap on the edge of the previous stage's collector signal. This produces a very well defined narrow spike of collector conduction, pulling down the collector voltage proportional to the frequency of the IF signal.

The Audio Bits

I cheated to save a capacitor (and improve the LF response) by using the de-emphasis RC network to bias the Sallen Key emitter follower to near mid-rail on the emitter. The Sallen Key filter has a Q of only 0.5 and a corner of around 22 kHz - it works well enough to keep RF out of the following stages. The emitter resistor of the filter transistor just happens to be the volume control pot too...

The audio power amplifier should probably have been an IC, but I had used transistors for everything else, so what the heck! The result is very conventional complementary output stage with bias boot-strapping to prevent +ve going distortion (if the 10 k resistor just went to V+ instead of the output the bias headroom would eventually run out). The 8k2 resistor selects the quiescent current and minimises cross-over distortion. The 3R9 resistors stabilise the operating point with temperature variations. The frequency response of the output stage runs into LF. Attempts to shape it just coloured the audio too much, its current response could be considered a feature. The lower frequency corner is quite good - excellent in fact, fine for headphones. Output power is more than adequate, ear splitting in fact. The circuit can drive lower impedances, but prefers the 64R of headphones. Because of the bias boot-strapping it will not perform well into higher-Z loads and requires DC continuity.


The radio was first built on a solderless breadboard as just the mixer, IF and pulse integrator, using my signal generator as the LO. In this form is was actually more forgiving than once built on a PCB. Most of the development time was spent keeping it stable on the PCB through addition of RF-hygiene. The filtering of the IF rail supply could be better, 100 nF is probably too small. In hind-site, the lack of reasonable filtering down to audio frequencies at the mixer drain is probably a major problem...

Solderless Breadboard Prototype Lash-up

The receiver sounds good enough to actually use for listening to ABC Classic FM (92.9 MHz here in Sydney). The response is quite flat and uncoloured despite little attempt being made to implement de-emphasis properly. The LF response is excellent. The signal to noise ratio could be improved a bit, you don't notice this on most channels, only in the quiet passages of classical content can you notice the noise floor. On a spectrogram you can see the 19 kHz pilot signal of the stereo MPX (it is about 30 dB down once it makes it though the filtering), with a bit of effort it might be possible to build a stereo version...

Selectivity is a compromise of course, but the pre-selector helps. Often one of the sides is better than the other as it has a "quieter" adjacent band. Dual conversion would help eliminate the image response along with ceramic filters.

The loop antenna makes the receiver a bit fragile for my liking. A solenoidal inductor could replace it at some loss of capture aperture (see breadboard version photo - worked fine). The loop antenna interacts with the headphone lead a bit (the headphones act as a parasitic antenna too and not always for better signal as the phase relationship between them is uncontrolled). One might wish to add chokes to the headphone line and tap off the RF it collects for injection into the mixer instead of the using the loop antenna.

The receiver pulls about 10 mA and runs from four AA cells.



title type size
Large Version of the Circuit Diagram image/jpeg 339.579 kbytes