WA8LMF Home Page | PSK31 APRS Page | HF APRS Operation | Updated  03 March 2013

Understanding Frequency Relationships on HF/SSB APRS

Introduction   |  Conventional 300-Baud FSK  |  PSK63
(Links jump to points lower down on this page.)

FM, SSB and TNC Tones

Perhaps the most confusing issue for newcomers to HF APRS is the difference between the FM modulation mode they know on VHF, and the FSK or SSB modulation modes used on HF. There is considerable mis-understanding about the relationship between the audio frequencies produced by packet TNCs or "sound card" data programs on computers, and the radio frequencies that result from these tones.

On VHF-FM, 1200-baud packet data transmission is done by rapidly shifting an audio tone between two frequencies traditionally referred to as the "MARK" and "SPACE" frequencies. These tones are inserted into an FM radio's mic jack or equivalent. On 1200baud VHF packet, these two tones are 1000 Hz apart and standardized on 1200 and 2200 Hz.

On 300 baud HF, the actual RF carrier of the transmitter (essentially a continuous key-down CW transmission) is shifted between two frequencies 200 Hz apart at the 300 baud data rate in a process known as FSK (frequency shift keying).  On thirty meters APRS, these two frequencies, a.k.a "mark" and "space" are 10.149 200 Mhz and 10.149 400 MHz. The transients created by rapidly shifting from one frequency to the other create sidebands that spread the two discrete frequencies into a band of frequencies about 400 Hz wide. 

This is a 300-baud packet burst viewed on the waterfall display (i.e. audio frequency spectrum analyzer) of the MixW program.

The traditional ham convention is to specify the actual RF frequencies of the tones. The commercial/military/regulatory convention is to specify the single frequency midway between the two RF frequencies, along with the shift. In this format, the 30M APRS channel would be quoted as:

   "10.149 300 MHz with +/- 100 Hz shift"   or   "200 Hz Shift Centered on 10.149 300 MHz" .

These two frequencies can be produced directly by some transceivers that have a dedicated FSK (frequency shift keying) mode that responds to RS-232 or TTL-level serial data provided to a dedicated port on the radio. 

However, it is far more common to create these RF frequencies by feeding alternating audio tones, 200 Hz apart, into the mic jack of an SSB transceiver. SSB radio transmission can be through of as a frequency translator that shifts audio frequencies to radio frequencies (RF) while retaining their relative spacing.  At the receiver, the radio frequencies are shifted back down to audio. If the transmitter and receiver are on exactly the same radio frequency, the recovered audio frequencies will be the same as the originals.   If the transmitter and receiver are not on the exact same radio frequency, the recovered audio frequencies will be different from the originals.  For example, if the receiver is on a frequency 100 Hz different from the transmitter, all recovered audio tones will be 100 Hz higher or lower, depending on the direction of the error. 

The effective bandwidth of the individual tuned mark and space audio tone filters in TNCs such as KAMS on FSK, are extremely narrow (only about 75 Hz).  The DSP-synthesized audio filters in PSK receive software are often even narrower. Because the audio frequencies recovered in the receiver are directly proportional to radio frequency errors,  you must be able to accurately set the radio frequency to within 20 Hz or so, and keep it there indefinitely.  Old mechanical-dial analog-VFO radios such as Kenwood TS-820s, Yaesu FT-101s, Heathkit SB-101s, etc are hopeless for this kind of operation. They simply can't be set precisely enough in the first place and thermally-induced frequency drift will guarantee that they will quickly "wander" off frequency.  The frequency calibration/resolution issue is especially critical if you are going to transmit "in the blind" without a signal to tune in on receive first! (I.e. typical transmit-only mobile trackers that don't receive.) Ideally you want a modern synthesized rig with an accurately calibrated TCXO high-stability master oscillator.


The digital frequency displays on modern radios ARE NOT frequency counters.  They DO NOT guarantee that you are actually on the frequency shown in the readout.

The display is only an indicator of the frequency that the radio's frequency synthesizer has been requested to produce.  The actual frequency produced is determined by the calibration of a single master frequency standard; typically a 5.0 or 10.0 Mhz temperature-controlled crystal oscillator. If this master oscillator is off-frequency, ALL generated receive/transmit frequencies will be correspondingly off frequency, regardless of what the digital display says.

The only way to know that the displayed "dial frequency" is correct is to tune in a known-accurate standard-frequency station such as WWV (or an accurately-calibrated RF signal generator)  and verify that the display reads correctly.

Since the master oscillators of most synthesizers operate at 5 or 10 Mhz, one can usually couple a small sample of the oscillator's signal back into the antenna jack (use a piece of wire or a meter probe & a coax "tee" connector). While receiving on AM, directly compare the standard's frequency with WWV on the appropriate frequency. [This works especially well on 30 meters since the 10 MHz WWV signal is only 100-150 KHz down the band; any 30M antenna should receive it very well.]  If the two frequencies are different, you will hear a growl or squeal. If they are the same, you will hear nothing (or a slow "pulsating" of the background noise if the two are a fraction of a Hz apart in frequency).

If there is an error, you adjust a small variable capacitor that is part of the frequency standard to "pull" the crystal's frequency ever-so-slightly to make it match WWV's frequency.  [Traditionally this process was referred to as "zero-beating" as the squealing tone will drop to nothing as you match frequencies and then rise again as you move off to the other side of WWV's frequency.] Usually this alignment process requires taking the cabinet off the radio, although some radios do provide an access hole on the side or bottom of the case.

Or note the frequency error and add (or subtract, depending on the error direction) this value from the dial reading to determine what frequency you are really on.


On SSB equipment: 

The resulting RF signal frequencies are the sum (USB) or difference (LSB) of the the RF "dial" frequency and the modulating audio tone frequencie(s).  

Simply quoting the RF "dial frequency" for HF data modes is ABSOLUTELY MEANINGLESS unless you also qualify it with the AUDIO tone frequencies being used by the TNC or other device.

The actual transmitted RF frequencies are the indicated suppressed carrier frequency (i.e. "dial frequency") plus the audio tone frequencies (USB)  -or- the suppressed carrier frequency minus the audio tone frequencies (LSB).  The actual dial frequency you want WILL DEPEND ON THE SIDEBAND YOU CHOOSE (either one will work) --AND-- ON THE PARTICULAR AUDIO TONE FREQUENCIES your TNC or other device produces.

It is highly recommended to use USB rather than the more common LSB because:


Unlike 1200 baud VHF packet, there is no single standard for the audio tone frequencies used by various devices and software on 300 baud/200-Hz shift HF packet!

As a result, the indicated "dial" frequency you set the radio to in order to produce a given actual RF frequency will depend on the audio tones produced by the particular device.

Frequencies Used By Different Devices

Device Audio Tones Used
Kantronics KAM on HF,  TNC2 (i.e. MFJ-127x, etc) on HF, TinyTrak III in 300 baud HF mode, paid version of AGW Packet Engine 1600/1800 Hz
AEA/Timewave PK-232 2130/2230 Hz
Tigertronics TigerTrak In 300 baud HF Mode 1100/1300 Hz
AGW Packet Engine Software (freeware version) 2100/2300 Hz
AGW Packet Engine Software (paid version) 2100/2300  or  1600/1800
MixW Software in HF Packet 200 Hz Shift Mode
(Program can emulate a KISS TNC running at a wide variety of baud rates.)
Tunable to anywhere within waterfall display, just as in PSK31.
UZ7HO "Soundmodem" Software TNC that emulates the AGW Packet Engine, but has continuously-adjustable tone pair that can be set to any desired audio center frequency. Defaults to standard KAM-style 1600/1800 Hz tones, but tunable to any arbitrary pair.

The differing AUDIO frequencies are really not a problem on SSB, and are easily accommodated. Unlike FM, the audio frequency heard at the receiving end is affected by the exact RF frequencies the transmitter and/or receiver are set to.

The audio frequency heard in the receiver will change exactly Hz for Hz with changes of the radio frequency tuning dial. You cause the the audio tone frequencies heard in the receiver to be the ones required by your device or program, by tuning the receiver to a slightly higher or lower RF frequency.

[This cuts both ways. If the transmitter is off frequency, the audio tones recovered at a correctly-tuned receiver will be correspondingly off-frequency.]

No matter how you fiddle and diddle around with audio tone frequencies and dial settings,

Again, on 30M APRS FSK, the two actual transmitted RF frequencies (no matter how you get there) must be:

   10.149 200 MHz
   10.149 400 MHz

Note that unlike classic RTTY with it's fixed sense of mark and space frequencies that require both parties to be using the same sideband, packet data is unaffected by sideband choice. Packet uses NRZI coding -- you can use either sideband and not worry about "being on the wrong sideband", or having to "invert" the sense of the received data.

Conventional 300-Baud FSK Tone Pairs

To produce the correct RF frequencies with a KAM, TNC2, TinyTrak III (300 Baud HF mode) or paid version of AGWpe whose default audio tones are 1600/1800 Hz, you must set your radio to:

10.151.00 LSB
10.151.000 - 1.800 = 10.149.200
10.151.000 - 1.600 = 10.149.400


10.147.60 USB   [Recommended Choice!]
10.147.600 + 1.600 = 10.149.200
10.147.600 + 1.800 = 10.149.400

To produce the correct RF frequencies with a PK232 TNC whose default audio tones are 2110/2310 you must set your radio to:

10.151.51 LSB
10.151.510 - 2.310 = 10.149.200
10.151.510 - 2.110 = 10.149.400


10.147.09 USB     [Recommended Choice!]
10.147.090 + 2.110 = 10.149.200
10.147.090 + 2.310 = 10.149.400

To produce the correct RF frequencies with a TigerTrak whose 300 Baud/narrow shift audio tones are 1100/1300 (weird pairing -- but actually very nice because the tone pairs are in the dead center of the typical SSB transceiver's filter bandpass and suffer the absolutely least amount of phase and group delay distortion) you must set your radio to:

10.150.50 LSB
10.150.500 - 1.300 = 10.149.200
10.150.500 - 1.100 = 10.149.400


10.148.10 USB
10.148.100 + 1.100 = 10.149.200
10.148.100 + 1.300 = 10.149.400

To produce the correct RF frequencies with the free version of the AGW Packet Engine softmodem, whose default audio tones on 300 baud HF are 2100/2300 you must set your radio to:

10.151.50 LSB
10.151.500 - 2.300 = 10.149.200
10.151.500 - 2.100 = 10.149.400


10.147.00 USB
10.147.100 + 2.100 = 10.149.200
10.147.100 + 2.300 = 10.149.400

Note that technically, the LSB modes have the suppressed carrier outside the ham band.  The suppressed carrier frequency IS NOT TRANSMITTED (assuming your rig is properly aligned with good carrier supression).  The resulting modulation products from the audio tones will be inside the ham band, assuming you don't overdrive the transmitter modulator and produce intermodulation distortion.

HOWEVER, most current ham gear will not transmit when the indicated carrier frequency is moved outside the ham bands.  You will have to hack (modify) the radio for the so-called general-coverage transmit capability.  This is usually a trivial exercise, done by clipping a single diode on the radio's controller board or slashing a PC board trace with an X-Acto knife, and then resetting the radio's CPU.   See

<http://mods.dk> for info on the general-coverage mod for virtually any HF/SSB transceiver.

Some HF radios with special "DATA" or "FSK" modes offset the indicated dial frequency to correct for the difference between the suppressed carrier freq and the actual mark frequency, typically assuming the lower tone is 2125 Hz (or sometimes 1800 Hz). This will force you to compute offsets different from what I have listed for LSB/USB. Or even (if you are lucky) just set the radio to an indicated 10.149.200 MHz.

AGAIN: Quoting "dial frequency" alone on non-FM modes is ABSOLUTELY MEANINGLESS unless you qualify it with mode (USB/LSB/DATA, etc) and the AUDIO tone frequencies in question.


PSK63 APRS Considerations

The same issues apply to the single tone of PSK63 APRS generated by the APRS Messenger program.  The single actual transmitted RF frequency for 30-meter PSK63 APRS operation is

10.149 700 MHz

(This radio frequency is 300 Hz higher than the higher of the
 two FSK frequencies for conventional AX.25 APRS packet.)

Set the PSK63 audio tone in APRS Messenger to 2100 Hz, and the transceiver's RF ("dial frequency") to 10.147 600 MHz USB.

It is highly recommended to use USB rather than the more common LSB because:

The audio tones used by particular devices, the desire to use narrow-band CW or audio filters, passband tuning limitations, or the needs of simultaneous FSK/PSK63 operation may require you to use other tone frequencies and/or LSB mode operation. 

The combinations of audio tone frequencies and indicated RF "dial" frequencies required to place the actual transmitted signal on the correct RF frequency (10.149 700 MHz) are summarized in this table:

Audio Tone
Freq in Hz
Selected In
APRS Messenger
"Dial" Frequency
"Dial" Frequency


700 10.149 000 10.150 400 Allows use of 500-Hz narrowband CW receive filters on most HF rigs.
1300 10.148 400 10.151 000 Compatible on LSB with standard KAM/TNC2/AGWpe Pro tones on HF (1600/1800 Hz) for simultaneous conventional FSK/PSK63 operation.
1400 10.148 300 10.151 100  
1500 10.148 200 10.151 200.  
1600 10.148 100 10.151 300. Compatible on USB with odd-ball TigerTrak HF tones (1100/1300 Hz) for simultaneous conventional FSK/PSK63 operation.
1800 10.147 900 10.151 500 Compatible on LSB with freeware AGWpe or AEA/Timewave PK-232 tones on HF (2100/2300 Hz) for simultaneous conventional FSK/PSK63 operation.
2000 10.147 700 10.151 700  
2100 10.147 600 10.151 800 Compatible on USB with standard KAM/TNC2/AGWpe Pro tones on HF (1600/1800 Hz) for simultaneous conventional FSK/PSK63 operation.

This is the preferred tone/frequency pairing to use, unless there is a need to use other tone pairings (such as the use of fixed narrow IF filters centered on lower tones, or the use of a TNC with an oddball tone pair), .