Register Account

Login Help

PSK31- An Introduction to Narrowband Digital

 By Steve Ford, WB8IMY

Updated 02/05/24 by KD2ZWN

PSK31 was the brainchild of Peter Martinez, G3PLX. If the call sign seems familiar, you might recall Peter as the father of AMTOR. PSK31 started as the favorite operating mode of a small cadre of experimenters who used DSP development kits to put the mode on the air. That was all well and good, but it kept PSK31 in the shadowy corners of our hobby where few knew it existed. Like Prometheus bringing fire to the mortals, however, Peter blew the doors wide open by creating a Windows version of PSK31 that did all of its DSP magic using ordinary 16-bit PC sound cards. (The gods haven't yet bound him to a rock and summoned an eagle to eat his liver, but that remains to be seen!)

Not content with creating PSK31 for Windows, Peter placed it on the Web for free distribution to the global ham community. Talk about blasphemy! This meant that any ordinary ham could download the software and become active on PSK31 almost immediately.

In an article that appeared in RadCom, the journal of the Radio Society of Great Britain, Peter explained why he developed PSK31. Simply put, he wanted to create a mode that was as easy to use as RTTY, yet much more robust in terms of weak-signal performance. Another criteria was bandwidth. The HF digital subbands are narrow and tend to become crowded in a hurry (particularly during contests). Peter wanted to design a mode that would do all of its tricks within a very narrow bandwidth.

So What is PSK31?

First, let's dissect the name. The "PSK" stands for Phase Shift Keying, the modulation method that is used to generate the signal; "31" is the bit rate. Technically speaking, the bit rate is really 31.25, but "PSK31.25" isn't nearly as catchy.

Think of Morse code for a moment. It is a simple binary code expressed by short signal pulses (dits) and longer signal pulses (dahs). By combining strings of dits and dahs, we can communicate the entire English alphabet along with numbers and punctuation. Morse uses gaps of specific lengths to separate individual characters and words. Even beginners quickly learn to recognize these gaps--they don't need special signals to tell them that one character or word has ended and another is about to begin.

When it comes to RTTY we're still dealing with binary data (dits and dahs, if you will), but instead of on/off keying, we send the information by shifting frequencies. This is known as Frequency Shift Keying or FSK. One frequency represents a mark (1) and another represents a space (0). If you put enough mark and space signals together in proper order according to the RTTY code, you can send letters, numbers and a limited amount of punctuation.

The RTTY code shuffles various combinations of five bits to represent each character. For example, the letter A is expressed as 00011. To separate the individual characters RTTY must also add "start" and "stop" pulses.

For PSK31 Peter devised a new code that combines the best of RTTY and Morse. He christened his creation the Varicode because a varying number of bits are used for each character. Building on the example of Morse, Peter allocated the shorter codes to the letters that appeared most often in standard English text. The idea was to send the least number of bits possible during a given transmission. For example:

E is a very popular letter on the English alphabet hit parade, so it gets a Varicode of 11. Z sees relatively little use, so its Varicode becomes 111010101.

As with RTTY, however, we still need a way to signal the gaps between characters. The Varicode does this by using "00" to represent a gap. The Varicode is carefully structured so that two zeros never appear together in any of the combinations of 1s and 0s that make up the characters.

But how would the average ham generate a PSK31 signal and transmit Varicode over the airwaves? Peter's answer was to use the DSP capabilities of the common computer sound card to create an audio signal that shifted its phase 180° in sync with the 31.25 bit-per-second data stream. In Peter's scheme, a 0 bit in the data stream generates an audio phase shift, but a 1 does not. The technique of using phase shifts (and the lack thereof) to represent binary data is known as Binary Phase-Shift Keying, or BPSK. If you apply a BPSK audio signal to an SSB transceiver, you end up with BPSK modulated RF. (If you want the gory details, read the PSK31 software Help files.) At this data rate the resulting PSK31 RF signal is only 31.25 Hz wide, which is actually narrower than the average CW signal!1

Concentrating your RF into a narrow bandwidth does wonders for reception, as any CW operator will tell you. But when you're trying to receive a BPSK-modulated signal it is easier to recognize the phase transitions--even when they are deep in the noise--if your computer knows when to expect them. To accomplish this, the receiving station must synchronize with the transmitting station. Once they are in sync, the software at the receiving station "knows" when to look for data in the receiver's audio output. Every PSK31 transmission begins with a short "idle" string of 0s. This allows the receive software to get into sync right away. Thanks to the structure of the Varicode, however, the phase transitions are also mathematically predictable, so much so that the PSK31 software can quickly synchronize itself when you tune in during the middle of a transmission, or after you momentarily lose the signal.

The combination of narrow bandwidth, an efficient DSP algorithm and synchronized sampling creates a mode that can be received at very low signal levels. PSK31 rivals the weak-signal performance of CW and it is a vast improvement over RTTY, as I discovered first hand.

Its terrific performance notwithstanding, PSK31 will not always provide 100% copy; it is as vulnerable to interference as any digital mode. And there are times, during a geomagnetic storm, for example, when ionospheric propagation will exhibit poor phase stability. (When you are trying to receive a narrow-bandwidth, phase-shifting signal, phase stability is very important.) This effect is often confined to the polar regions and it shows up as very rapid flutter, which is deadly to PSK31. The good news is that these events are usually shortlived.


Many people urged Peter to add some form of error correction to PSK31, but he initially resisted the idea because most error-correction schemes rely on transmitting redundant data bits. Adding more bits while still maintaining the desired throughput increases the necessary data rate. If you double the BPSK data rate, the bandwidth doubles. As the bandwidth increases, the signal-to-noise ratio deteriorates and you get more errors. It's a sticky digital dilemma. How do you expand the information capacity of a BPSK channel without significantly increasing its bandwidth?

Peter finally found the answer by adding a second BPSK carrier at the transmitter with a 90° phase difference and a second demodulator at the receiver. Peter calls this quadrature polarity reversed keying, but it is better known as quaternary phase-shift keying or QPSK.

Splitting the transmitter power between two channels results in a 3-dB signal-to-noise penalty, but this is the same penalty you'd suffer if you doubled the bandwidth. Now that we have another channel to carry the redundant bits, we can use a convolutional encoder to generate one of four different phase shifts that correspond to patterns of five successive data bits. On the receiving end we have a Viterbi decoder playing a very sophisticated guessing game. Peter describes it best:

"The Viterbi is not so much a decoder as a whole family of encoders. Each one makes a different 'guess' at what the last five transmitted data bits might have been. There are 32 different patterns of five bits and thus 32 encoders. At each step the phase-shift value predicted by the bit-pattern guess from each encoder is compared with the actual received phase-shift value, and the 32 encoders are given 'marks out of 10' for accuracy. Just like in a knockout competition, the worst 16 are eliminated and the best 16 go on to the next round, taking their previous scores with them. Each surviving encoder then gives birth to 'children,' one guessing that the next transmitted bit will be a 0 and the other guessing that the next transmitted bit will be a 1. They all do their encoding to guess what the next phase shift will be, and are given marks out of 10 again that are added on to their earlier scores. The worst 16 encoders are killed off again and the cycle repeats.

"It's a bit like Darwin's theory of evolution, and eventually all the descendants of the encoders that made the right guesses earlier will be among the survivors and will all carry the same 'ancestral genes.' We therefore just keep a record of the family tree (the bit-guess sequence) of each survivor, and can trace back to find the transmitted bit stream, although we have to wait at least five

generations (bit periods) before all survivors have the same great great grandmother (who guessed right five bits ago). The whole point is that because the scoring system is based on the running total, the decoder always gives the most accurate guess--even if the received bit pattern is corrupted. In other words, the Viterbi decoder corrects errors."--Peter Martinez, G3PLX 

Today, PSK31 has become a niche operating mode, largely replaced by other digital modes that support higher data rates, though it is still supported by programs such as fldigi, WinWarbler, and Digipan. It's most often used to make a contact when signal conditions are otherwise poor or by operators with space and power limitations to make long distance contacts.


Instragram     Facebook     Twitter     YouTube     LinkedIn