This simple program was written as a possible utility for those attempting to communicate using digital modes via paths that are intermittent and tenuous such as Aircraft Scatter at VHF and Low Earth Orbiting Satellites.
The program was written using Borland C++ Builder under Windows XP. Unzip the file fec.zip into a suitable folder and run the program from there. The accompanying library files should reside in the same directory.
The principle is simple. The text to be transmitted, (up to 80 characters from a character set of 53), is typed into an edit window. Following a button click, the text is broken down into 8 character chunks which are then headed with the character '#' followed by the number of the chunk (0-9). The chunk is followed by 2 checksum characters derived by adding the numbers of the character position in the set and taking modulo 53 on the result i.e.
(n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8)modulo 53
The second checksum is derived by multiplying adjacent pairs of character position numbers, summing these and taking modulo 53 on the result i.e.
(n1*n2 + n3*n4 + n5*n6 + n7*n8)modulo 53
(Note that the modulus operation consists of performing an integer division (by 53 in this case) and taking the remainder.)
After carrying out the above operation, the converted text is copied from a second edit window and pasted into the digital mode of choice which is then set to transmit continuously in 'Beacon' mode for a set period. If the mode does not allow for 'Beacon' mode then multiple copies of the converted text can be pasted in to build up sufficient material to last for the transmission period.
The operation of the program is best appreciated by running a test message through the various stages. First we type a test message into the top left edit window:
Now we click on the 'Convert Text for transmission' button and the coded text appears in the lower left edit window. From here it may be copied and pasted into the input window of the digital mode of choice:
As a test I have copied the coded text and pasted it three times into the upper right edit window and then introduced deliberate errors, thus simulating a poor reception path:
On clicking the 'Correct Received Text' button, the program extracts the valid text and reconstructs it in the lower right edit window. In the case of the first chunk, the start data is correct but the subsequent checksums are wrong so the information is printed in red:
Note that to code 8 characters we have to introduce four others and this makes for a 50% overhead. The program will not be useful in all cases; clearly you have to have a reasonable chance of receiving in excess of 8 successive valid characters and the program will not be usable on paths where every other character is corrupt. However, it is hoped that it will help with experiments with aircraft scatter paths on VHF or digital modes via low earth orbit satellites where bursts of valid information can be reasonably anticipated.
The author gratefully acknowledges the help of:
Ray Scrivens, G3LNM.
Bernard spencer, G3SMW.
Ko Versteeg, NL9222.
Lionel Sear, G3PPT.