cocoaModem Synchronous AM Receiver

Kok Chen, W7AY [w7ay (at) arrl (dot) net]
Last updated: November 16, 2009

Index (User's Manual - Synchronous AM Receiver)

General Information
Aural Monitor
Accessibility (Incremental Speak and Voice Assist)
RTTY Interfaces
PSK Interface
MFSK Interface
Hellschreiber Interface
CW Interface
ASCII Interface
SITOR-B Receiver
HF-FAX Receiver
Synchronous AM Receiver
Part II

Synchronous AM Receiver

Selective Fading can cause the carrier of an Amplitude Modulated (AM) signal to be attenuated relative to the AM signal's sidebands, to the point where the signal appears over-modulated and thus sound severely distorted when envelope detected.

One way to overcome this weakness is to filter out the AM carrier, and then using a product detector for demodulation (i.e., receive the AM signal as an DSB-SC signal). The remaining problem is the need to precisely tune the receiver.

Often, one of the AM sidebands is also filtered away -- this results in lowered signal-to-noise ratio but has the advantage of not requiring precise phase locking and it also provides the ability to choose a different sideband when there is adjacent interference from one side -- usually a bigger problem with shortwave broadcast stations than signal to noise ratio.

Synchronous demodulation is usually performed in the intermediate frequency stages of a receiver (e.g., the Sony ICF-2010) and involves extracting the AM carrier to phase lock a local oscillator to. That phase locked local oscillator is then used by the product detector. The phase locked loop automatically fine tunes the product detector.

Rather than using signals from the intermediate frequency stages of a receiver, cocoaModem achieves synchronous AM by applying DSP techniques to an SSB receiver's output that is slightly off-tuned to the AM signal. It involves no hardware modification to the receiver.

Demodulation Scheme

Figure 1 shows the scheme used in cocoaModem's Synchronous AM demodulator.

Figure 1 - cocoaModem Synchronous AM demodulator

The input is a regular (real) signal from an SSB receiver that is off tuned by approximately 200 Hz so that you can actually hear a 200 Hz tone caused by the AM signal's carrier.

For carrier extraction, the input signal is lowpassed to remove the modulation sidebands and then mixed with a quadrature mixer -- two mixers with a quadrature local oscillator feeding them, where the local oscillator's frequency tracks the tone of the carrier. The phase locking is performed by taking the derivatives (see reference) of the in-phase (I) and quadrature (Q) outputs of the mixers and then computing the offset to be applied to the local oscillator to bring it to the same frequency as the "carrier."

The extraction of sideband information is similar to the Weaver method (also called the "third method" of SSB modulation and demodulation) except that one of the local oscillators has an extra 200 Hz offset which is locked to the carrier.

Figure 2 shows the spectra as the signal goes through the demodulator.

Figure 2 - cocoaModem Synchronous AM spectra

As shown in Figure 2, the real signal is first passed through a high pass filter to remove the offset carrier. The remaining signal is not yet usable since the original input came from a signal that was tuned 200 Hz too high. To move both sidebands towards DC by 200 Hz, one of the sidebands is first removed. This is hard to do in the analog domain (as witnessed by the lack of good analog implementation of SSB transmitters using the Weaver method) but easy to achieve in the DSP domain

The high passed signal without the carrier is first shifted down in the spectrum by mixing with a quadrature local oscillator (f- in Figure 1) set to a frequency of about 2 kHz. The aim here is to center one of the sidebands around DC and then apply a low pass filter to remove the other, unwanted sideband. This is shown as the -Shift signal in Figure 2.

Identical low pass filters are applied to the down shifted signal to extract just one of the sidebands from this analytic signal (also called a complex or a quadrature signal). By maintaining a quadrature pair to represent the signal, the spectrum of a signal need not be symmetrical about DC (the red vertical axis in Figure 2).

After being lowpassed, the remaining sideband is now shifted back up on the spectrum (+Shift signal in Figure 2), but this time by a local oscillator (f+ in Figure 1) that is tuned about 200 Hz lower in frequency than the down shift (f-) oscillator. As shown in Figure 1, the precise amount of offset (nominally 200 Hz) is controlled by the same offset value that controls the carrier loop. The carrier loop only exists for the sake of deriving this offset number. (The upshift local oscillator could also have be implemented by mixing the downshift local oscillator with the oscillator that is locked to the carrier, but in the digital domain, it is just as easy to create a numerically controlled downshift oscillator).

The real (spectrum symmetric around DC) signal is then formed from the +Shift signal and passed to the output audio device.

Synchronous AM Interface

Figure 3 shows the Synchronous AM interface in the cocoaModem window.

Figure 3 - cocoaModem Synchronous AM Interface

At the top of the window, you will see the familiar waterfall display, with the input signal level and input attenuator on its right. The spectogram starts a few scanlines from the bottom of the waterfall display to accommodate the green carrier phase locked loop marker.

There are two vertical range markers. This is the range the AM signal's carrier should fall in for carrier lock to take place. The center of the range is nominally at 200 Hz, but it can be adjusted using the Carrier Offset slider that is below the waterfall.

To tune a station properly, use either your receiver's upper sideband suppressed carrier (USB) or lower sideband (LSB) mode. If you select USB, tune your receiver 200 Hz lower than zero beat, and if you are using LSB, tune your receiver 200 Hz higher than zero beat. In either case, you should hear a moderately loud 200 Hz tone from the receiver's speakers. Turn down the receiver's speakers so it does not interfere with the audio from the synchronous demodulator.

The carrier will appear as a strong vertical line in the spectogram, near the 200 Hz offset in the waterfall label. Fine tune the receiver/transceiver so that the carrier is in between the two green range markers of the waterfall. Adjust the Offset and Range sliders if you need to, to center the carrier as much as possible in between the green marker lines.

In case your receiver does not allow sufficiently fine tuning to bring the AM carrier into the lock range, the offset slider allows you to chose a carrier offset between 100 Hz and 300 Hz. Try not to use a carrier offset that is too low since you might get interference from 50/60 Hz hum if you have sufficiently bad ground loop problems between your receiver and your computer. Except for the carrier tone, the region in the spectogram in between the green range markers should appear moderately clean.

The range slider can be widened to allow easier tuning. However, with weak stations or stations that transmit a lot of low frequency content, you may want to narrow the lock range as much as possible to improve the ability of the oscillator to remain in lock.

There is a bold green marker below the spectogram and in between the thin green range marker lines. This indicates the frequency of the carrier extraction local oscillator. If the carrier is between the range lines, you should see the bold green bar move towards the carrier in the spectogram. The Locked indicator that is below the waterfall should turn yellow when you are close (within 2 Hz) to lock and the indicator turns green when you are phase locked to the carrier.

It might take a second or two for lock to take place. If the Locked indicator flashes yellow occasionally, you may want to reduce the lock range -- adjust the Range and Offset sliders to reduce any interference.

Because cocoaModem's synchronous demodulator uses only one of the sidebands of the AM signal, precise phase lock is not too crucial and the audio could be usable even when the Locked indicator is yellow.

What you should notice in the Aural channel is that there is much less distortion caused by selective fading. The volume of the signal can still swing up and down (it depends on the AGC of the receiver) but the volume variations should no longer be accompanied by severely distorted audio.

In addition to the level control in the Aural Config, there is a convenient volume control in the main window and there is also a mute checkbox.

There is an audio Parametric Equalizer that you can use to fashion the audio spectral profile to your liking or to compensate for headphones/speakers characteristics. You can disable the equalizer with its checkbox and it is an effective way to check if your equalizer settings in an improvement over the non-equalized sound. The equalizer is implemented in an FIR filter by using a small inverse FFT on the slider settings, and following the inverse FFT with a DSP window. The FIR filter's kernel is recomputed each time you move one of the parametric equalizer's slider.

If there is interference from an adjacent station, you might be able to get cleaner reception by choosing a different sideband to demodulate the AM signal. Switch the receiver between USB and LSB reception and retune for lock.


Configuring the Synchronous AM interface is simple. Open the configuration window from the Window menu in cocoaModem's Main Menu. Select the input device from the Receiver config. The output from the Synchronous AM interface goes to cocoaModem's common Aural Monitor. The maximum output volume is fixed from the slider in the Aural monitor. The volume control in the Synch-AM interface allows further adjustment from that maximum value.

Back (Introduction)