WSJT-X MSK144 Modulator – Scicos Simulation


I remember first becoming interested in Meteor Scatter when I read an article by the Finnish company Vaisala Oy about sending weather telemetry from remote locations (Ref.1). Since Canada is a huge country, this seemed to be an innovative way to back haul data. In a previous post I looked at FSK441 which was a new way to send data by Meteor Scatter. In this post I will look at MSK144 (Ref.2) which is an outgrowth of FSK441 designed by the same author Joe Taylor and Steve Franke.

Figure 1 shows the Message Frame format as taken from the latest WSJT-X 2.1 User Guide (Ref.3). This differs from the format described in the QEX article of September 2017 where a user message of 72 bits and CRC of 8 bits are used with an LDPC (128,80) code (Ref.2). Here a larger user message of 77 bits is added to a larger CRC of 13 bits to give an augmented message of 90 bits. This augmented message of 90 bits is applied to a Low Density Parity Check Code Generator Matrix to produce a code word of 128 bits. Two Sync Bytes are added to form the 144 bit Transmit Message Frame.

Fig.1 MSK144 Transmit Message Frame

The MSK144 modem design parameters are:
-SSB Transceiver_USB interface (300,2700)Hz = 2400Hz
-Baud Rate = 2000bdps
-MSK = Minimum Shift Keying, Frequency Shift = 0.5*Baud Rate
-Centre Freq = 1500Hz, Lower Freq = 1000Hz, Upper Freq = 2000Hz
-Shift = +/- 500Hz
-s(t)=I(t)cos(wct) – Q(t)sin(wct) I(t) & Q(t) half_sine pulses 1msec
-“1” = pos(+) half_sine pulse “0” = neg(-) half_sine pulse
-I channel = odd bits, Q channel = even bits
-Frame Time = 144bit/2000bdps = 72msec


Figure 2 shows the ScicosLab script file used to generate the 144 bit Message Frame. Since I am concentrating on the modulation process, I used random number generators to produce the random 128 bit Code Word. I added 2 sync bytes and used the same 17 bit data stream used in the QEX reference paper (Ref.2) to compare results. Figure 3 shows the first 17 bits and the I bits (odd) and Q bits (even).

Fig.2 MSK144 I & Q Code Data
Fig.3 MSK144 I & Q Code Data First 17 Bits

Figure 4 shows the Scicos Block diagram used to implement the modulator. The modulator is an Offset QPSK implementation of MSK as described in References 4 & 5. The bipolar I & Q data streams feed super blocks that create half_sine pulses of 1msec duration. There is a 0.5 msec delay between the streams. The I stream is multiplied by cos(wct) and the Q stream by sin(wct) then subtracted to form the ouput.

Fig.4 MSK144 Modulator Block Diagram

Figure 5 shows the I half_sine pulses and the Q half_sine pulses for the full 144bit frame. Figure 6 is an expansion to show exactly the same relationship as in Ref.2. Figure 7 shows the FSK modulator output on the first trace and Figure 8 shows the output spectrum. Note the peak at Fc = 1500Hz, and null at Fc +/- 0.75R = 1500Hz + 0.75*2000 = 3000Hz.

Fig.5 MSK144 I & Q Half Sine Data
Fig.6 MSK144 I & Q Half Sine Data vs. MSK144 QEX Tech Paper Ref.2
Fig.7 MSK144 Modulator Output
Fig. 8 MSK144 Modulator Output Spectrum
Fig.9 MSK144 Modulator – Scicos Simulation YouTube Video
YouTube Channel
YouTube Channel


#1. “Use of Meteor Scatter Telemetry for Hydrometeorological Data Collection Networks”. IAHS Publ. no. 160, 1986.

#2. “The MSK144 Protocol for Meteor-Scatter Communication”, Joseph Taylor K1JT & Steven Franke K9AN, ARRL QEX Magazine Sept/Oct 2017

#3. “WSJT-X 2.1 User Guide”

#4. “Digital And Analog Communication Systems”, L.W. Couch, 7th Edit., Pearson 2007, ISBN 0-13-142492-0

#5. “Introduction to Analog and Digital Communications”, Simon Haykin, Michael Moher, 2nd Edit., John Wiley 2007, ISBN-13 978-0-471-43222-7

#6. ScicosLab with Modnum Toolbox

#7. “Learn Telecommunications by Simulation” EBook

#8. “HF High Frequency Radio Telecommunications Learn by Simulation” EBook