MSK (Minimum Shift Keying) is very similar to PSK, but instead of changing the phase to signal the data bits, the frequency is advanced or retarded a very small amount (exactly half the symbol rate), sufficient to exactly achieve a 180° phase shift in one bit period. Because the resulting phase change is produced smoothly, without any sudden changes in phase, the signal does not require raised cosine (amplitude) modulation or other means of spectrum management. For PSK modes, such modulation must be employed to drop the output to zero at the phase change, in order to reduce the keying sidebands. The MSK spectrum is very similar to PSK, but the phase relationship between the carrier and the data is different. MSK is little used on HF, but has been widely used on LF, notably (at 100 baud and 200 baud) for DGPS beacons, and (at 50 baud and 100 baud) for VLF submarine communications.
The HUGE advantage of MSK over PSK is that because there is no amplitude information on the signal, the transmitting amplifier need not be linear. The transmitter duty cycle is always 100%, not reduced by the AM modulation, so the average signal strength is greater. In other respects the mode is similar to PSK, and in fact the same receiver demodulator can be used, although a different means of recovering symbol sync is required.
Illustrating the difference between MSK and PSK
The LF and MF Amateur bands are characterized by relatively stable carrier phase on received signals, accompanied by low Doppler shift. These bands have very strong lightning interference, but mostly local, not the background of random impulse noise typical of lower HF. There can also be considerable man-made interference. While there is multi-path reception, especially on 160m, the path changes are slow. The slow fades can be very deep, and signals can be quite weak, so in order to have a conversation at typing speed on these bands, we need a mode that is very sensitive, narrow band, has excellent impulse noise tolerance, but need not have strong phase or Doppler tolerance.
It is no accident that MSK is used by military and commercial services on VLF and LF, or by the MF DGPS beacons around 300kHz, although all of these are broadcast, rather than chat (QSO) systems. A well designed MSK chat mode can however provide all the advantages just described. In the ZL2AFP CMSK chat mode software offered here, several important design features have been added which further improve the already excellent robustness and sensitivity of MSK.
Screenshot of VK2DDI receiving ZL1EE using
CMSK8 on 508.1kHz (range 2200km)
(Click on image for larger view)
The new ZL2AFP CMSK mode can be described as Correlated, Convolved, Chat-mode MSK, but for short we call it CMSK. It uses a very sensitive cross-correlator in the receiver to exactly identify a pseudo-random sequence which marks the interleaver start position and the FEC dibit order; it uses a convolutional FEC system with interleaver; and uses direct MSK modulation (not differentially coded as in PSK31). The ITU Definition for the mode (which is typically transmitted as an audio subcarrier by an SSB exciter) is J2B, the same definition as PSK31.
Remember that the transmit amplifier you use with this software need not be linear - Class C, D and Class E amplifiers commonly used on LF/MF are quite suitable, and will cause no broadening of the signal bandwidth.
Like other modes which require good impulse noise and random noise tolerance, the ZL2AFP CMSK design uses convolutional coding for Forward Error Correction (FEC). In this case we use standard NASA convolutional algorithms with R=1/2 K=7, and a Viterbi decoder. Only one decoder is required, so it can be given plenty of traceback length for good performance. A rate 1/2 code reduces the data rate (typing speed) for a given symbol rate by a factor of two.
Most error correcting schemes are sensitive to burst noise, i.e. noise that comes occasionally but takes out many data bits at once. With any convolutional FEC system it is therefore important to 'rearrange' the order of the transmitted bits, so that when they are 'arranged' again at the receiver, the damage done by noise bursts such as lightning is spread throughout the message. The interleaver in ZL2AFP CMSK is a matrix type with a block size of 192 bits (12 x 16), involving about three seconds of time spread at 62.5 baud. At lower data rates the interleaver spread is reduced to 96 bits (12 x 8). The interleaving is plenty to mitigate the effect of lightning bursts, although it does lead to delays between transmit and receive of six seconds at 31.25 and 62.5 baud (3s for CMSK125 and 24s for CMSK8). On HF such delays would be of concern as they impede 'slick' operating, but on LF and MF operation is usually leisurely at best, and the delays are tolerable.
With a 'single stream' (single bit per symbol) mode such as MSK or PSK, it has always been difficult to ascertain that the incoming bits of an error correcting code arrive at the Viterbi decoder in the correct order. Either you use two or more Viterbi decoders, or you trade off performance by using QPSK. With an interleaver to synchronize, the problem becomes even more difficult.
One of the secrets of this new mode is the way the dibits of the FEC code and the interleaver matrix are synchronized at the receiver. Along with the transmitted data, a 31-bit pseudo-random number (PN sequence) is transmitted, multiplexed between data bits. The sequence repeats every 192 data bits (96 at lower symbol rates), i.e. once per interleaver matrix frame. The PN-sequence was chosen to have very low cross-correlation to the data which might cause false 'hits'. The same PN-sequence is used by STANAG 4285 and some other modes.
At the receiver, a cross-correlator, using the same PN-sequence, samples these multiplexed bits, and is able to determine the exact point in the message where the sequence starts, with incredible sensitivity. Pseudo-random sequences are used very effectively by GPS and other weak signal modes, and it is an excellent way to ensure that sync can be achieved even when the signal is too weak to reliably decode. This use of correlation is what gives this mode it's name - Correlated Convolved MSK, or CMSK.
The PN-sequence could be transmitted at the start of the block of data, but the tolerance of burst noise can be improved by spreading the sequence out through the data block. At the two higher speeds this is after every six data bits, and at the lower speeds every three data bits. It is important to realize that in ZL2AFP CMSK the PN-sequence represents only 14% of the transmitted signal (25% at lower speeds), and is used only as a marker, not as a means of spreading the signal. In keeping with MF requirements, the transmitted signal is as narrow as is technically possible.
Varicoding and Secondary Text
ZL2AFP CMSK uses a varicode very similar to that used by PSK31 - in fact it is identical for the full extended ASCII alphabet. However, a Secondary Alphabet has been added. This can carry other characters not recognised by the main text transmission and reception scheme. These 64 added characters represent upper case text, numbers and limited punctuation, and are used to transmit a fixed ID message that in no way interrupts or delays the main transmission.
View the CMSK Varicode
Any synchronous system must have a way to keep the transmitter and receiver operating correctly when there is no data to transmit (i.e. nothing in the keyboard buffer, and no file to send). In most modes, commercial and Amateur, this is avoided by sending null data, which achieves the required result but sends nothing useful. More enlightened modes (such as DominoEX) use special characters during idle to transmit a fixed (typically ID) message when the main data source is idle, thus fulfilling the requirement to keep the transmitter and receiver operating correctly, and in addition sending a useful message.
In ZL2AFP CMSK, the same approach is taken. A simple user-defined message (can be any practical length) is transmitted a few characters at a time, whenever the keyboard is idle. At higher data rates, this can be quite a high proportion of the time. One way to use the software as a beacon transmitter, is to simply set the message you want, start the transmitter, and refrain from typing on the keyboard!
At the receiver, characters identified as secondary text are placed in a special window, which acts as a scrolling 'Times Square' display, and have no effect on the main receiving operation.
Mode Baud Bandwidth Interleaf Typing Speed ITU Definition CMSK8 7.8125 12.5Hz 96 symbols 3.75 WPM 12H5F1B CMSK31 31.25 50Hz 96 symbols 15 WPM 50H0F1B CMSK63 62.55 100Hz 192 symbols 30 WPM 100HF1B CMSK125 31.25 200Hz 192 symbols 60 WPM 200HF1B
Basic details of the four CMSK modes
The program offers symbol rates from 7.8125 to 125 baud, the default speed (pink background in the table) being CMSK63. The lowest speed is really only useful for beacon purposes, but given the extreme sensitivity (100% copy at -21dB S/N in 3kHz bandwidth), patience may reward you with a QSO! The default speed, 62.5 baud, has a reasonable typing speed (32 WPM) and sensitivity is so good (-12dB) that you can have 100% copy of stations you could not work using conventional Morse. Any signal that you can copy can also be seen clearly on the waterfall tuning display and tuned in easily.
The 125 baud mode has a transmitted bandwidth of under 200Hz (at -30dBc, see spectrum on right), so is just within the bandwidth limit which applies in New Zealand. In the picture, the red trace is the unmodulated signal, and you can see that the modulated signal is easily inside the 200Hz requirement at 30dB down from the carrier, according to the ITU definition.
In keeping with all ZL2AFP designs, the program is uncomplicated to use, clearly laid out, and devoid of unnecessary features. The software has been thoroughly tested, mostly on the 600m band, over 500km and 2500km paths.
Screenshot of the ZL2AFP MSK software
(Click on image for full-size view)
This link takes you to the program help file which describes the features of the program and how to use it.
The Windows™ software is compatible with Win2000, WinXP and Win7. It may work with Vista on some computers. The program requires at least a 1GHz processor, SVGA display and a 16-bit sound card. One serial port (or USB equivalent) is required for PTT control. Memory requirements are minimal, and the program size is only 213kB. The program consists of just one file, creates just one setup file (will operate without the included help information), and no changes are made in the computer's registry or anywhere else. To remove the program, simply delete the files made during installation.
The 'beta' version below has I&Q mode, resizable window and patches for Vista. It checks out fine on Win XP and Win 7.
- ZL2AFP CMSK transceive program (Release 10.08.10)
- ZL2AFP CMSK transceive program (Beta version 21.08.10)