FT8 Communication Protocol - How It Works

Hello, Habr.

Probably everyone who was at least a little interested in radio communications and amateur radio, heard about the FT8 digital communication protocol . This type of connection appeared in 2017, and since then its popularity has only been growing.


Source: www.qsl.net/w1dyj/FT8%20for%20web.pdf

For those who are interested in how it works and why it is needed, continued under the cut.

Story


For those who are far from amateur radio communications, a brief historical background.

The first home-made, and later purchased, amateur radio stations appeared about 100 years ago. The only signal they could receive and transmit was a simple tone, and the transmission was using the Morse code. Of course, first you had to learn how to take CW by ear, by the way this skill was in demand for a long time not only among amateurs, but also among professionals, the profession of radio operator in the Navy was seemingly canceled only in the 60s. Of course, there was a certain romance in the reception of weak signals against the noise of the ether, that is how a simple village ham radio operator from the Kostroma region managed in 1928 to receive the SOS signal from the distressed airship team Umberto Nobile .

The next step was voice communication - voice transmission using a microphone in single-band modulation made radio communication more convenient. This method is still used.

Finally, around the 90s, digital communications began to gain popularity among ham radio operators. In this case, the signal (usually RTTY or PSK) forms the computer, the operator communicates with the correspondent using a kind of text chat.



It must be said that technically similar protocols are very simple, and characters typed by the user from the keyboard were sent to the broadcast almost without any complicated processing. And strangely enough, this had its advantages - the operator himself had to find the right frequency, evaluate the quality of the signal by ear, see the decoded symbols on the screen, type the answer, etc.

But the possibilities of digital processing grew, and finally, the hero of our review appeared - the communication standard FT8. The name FT8 translates as Franke and Taylor, 8-FSK modulation. Professor Steven Franke and astrophysicist and Nobel laureate Joseph Taylor, have created a truly interesting and efficient protocol for data transfer.

Features of FT8:

  • The message length is 15 s, messages are transmitted in fixed time slots, which facilitates decoding.
  • The message length is 77 bits + 12-bit CRC.
  • Error correction FEC LDPC (174.87).
  • Frequency modulation 8-FSK, the distance between tones 6.25Hz.
  • Bandwidth 50Hz. With such a narrow band, multiple stations can operate and decode simultaneously.
  • Decoding threshold -20dB.
  • The optional ability to automatically work, automatically send responses, etc.

In general, the authors have done a good job of creating an almost completely automated communication protocol that can, on the one hand, transmit information more efficiently, and on the other, kill the “spirit of amateur radio” in the bud. There is no more romance of the noise and fading of the ether, receiving a weak correspondent signal from the other side of the ocean, there is just a PC screen, and the rest is done by algorithms and mathematics.

A screenshot of the WSJT-X program that supports FT8 looks something like this:


Source: 3fs.net.au/ft8-digital-amateur-radio

Personally, I don’t really understand the pleasure of almost completely automatic radio communications, but since FT8 is popular, then this is someone necessary. Let's see in more detail how this works.

Bit coding


Consider a practical example - the transmission of the phrase "CQ RA1ABC KO50". Here CQ is the generally accepted calling code (more details here ), RA1ABC is the amateur radio call sign, KO50 is the so-called grid-locator , which determines the region from which the amateur radio broadcasts.

In the first step, common abbreviations are replaced by short codes, for example, CQ receives a 2h code. Amateur radio callsigns have a strictly defined format of letters and numbers, which also allows you to record them in a more compact form.

const char A0[] = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+-./?";
const char A1[] = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const char A2[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const char A3[] = "0123456789";

// Check for standard callsign
int i0, i1, i2, i3, i4, i5;
if ((i0 = char_index(A1, c6[0])) >= 0 && (i1 = char_index(A2, c6[1])) >= 0 &&
    (i2 = char_index(A3, c6[2])) >= 0 && (i3 = char_index(A4, c6[3])) >= 0 &&
    (i4 = char_index(A4, c6[4])) >= 0 && (i5 = char_index(A4, c6[5])) >= 0) {
        // This is a standard callsign
        int32_t n28 = i0;
        n28 = n28 * 36 + i1;
        n28 = n28 * 10 + i2;
        n28 = n28 * 27 + i3;
        n28 = n28 * 27 + i4;
        n28 = n28 * 27 + i5;
        printf("Pack28: n28=%d (%04xh)\n", n28, n28);
        return NTOKENS + MAX22 + n28;
}

The idea of ​​replacing characters with indexes is important here, which is effective with a small dictionary size. As a result, the callsign “RA1ABC” will be written as 0BF1C2C1h - we spent 4 bytes instead of 6.

Similarly, the “KO50” grid-locator is written as a 2-byte 4BFAh number. All this is necessary because the maximum message length is 77 bits; Of course, arbitrary text and even telemetry can be transmitted, but subject to these limitations. The message length of 77 bits was chosen as a compromise between the transmission time (about 13 seconds, which is not so fast) and the information capacity - the message could be made longer, but then it would be sent longer.

As a result, all of our “CQ RA1ABC KO50” message will be converted to data block 00 00 00 26 28 9F D4 92 FE 88. A 14-bit CRC is also added to it.

The next step is to convert the 91-bit message to the so-called LDPC (Low density parity-check) code with a length of 174 bits - it adds redundancy used to correct errors during reception. In this step, the message is converted to 00 00 00 26 28 9F D4 92 FE 8A CA 0C F3 D1 34 33 88 D0 C2 9C 3D CC.

Frequency coding


Everything here is pretty simple. In this step, we will transform the message into a sequence of tones of different frequencies. As you know, we can have 8 tones (modulation type FSK-8), after the conversion we get a sequence of the form 31406520 00000001 15353274 61112745 36563140 65201575 76054515 70523040 61407642 3140652 where each digit is a tone number from 0 to 7.

The frequency spacing between tones is 6.25Hz, the duration of one tone is 0.16 s, having the sequence shown above, you can easily generate a WAV file or directly control the frequency synthesizer in the case of an autonomous beacon.

The spectrum of the generated signal of our message looks like this:



Of course, it’s better to hear once than to look at the spectrum, alas, Habr does not allow attaching a wav-file, and we could not find a normal video in youtube with a demonstration of FT8 sound. Modern radio amateurs no longer need to listen to the broadcast ; the computer does it for them. An example of the radio process can be found here:


Conclusion


As you can see, mathematically FT8 is quite an interesting protocol. The originals of the WSJT-X source code are written in Fortran, and I still could not figure it out with them. A separate version of the encoder in C ++ can be viewed at github.com/kgoba/ft8_lib , the above code snippets were taken from it. Those who wish can also simply download the WSJT-X version , it is free, you can try it without a transmitter, just a sound card. You can even tune in to the FT8 frequencies using http://websdr.ewi.utwente.nl:8901 and redirect the sound through a virtual audio cable, so you can watch the program in operation without a transceiver and without r / l call sign.

As for the popularity of FT8 in amateur radio circles ... Well, personally, this is not entirely clear to me, in my opinion there is already no romance in such types of communication, it is closer to the industrial protocol than to hobby and creativity. But most seem to have a different opinion, which is shown in the graph at the beginning of the article. Millions of ham radio fans can't be wrong? Well, FT8 itself, of course, is technically interesting, and here, perhaps, the process of studying the protocol is much more interesting than its use. Although, trying the program at least once is certainly also interesting.

All successful experiments.

All Articles