21 October 2021

CIS MPSK-16, a POSTNET 2-of-5 variant?

As for the 6-bit encoding used in CIS MPSK-16 streams, see this post for background, my friend Nicholas suggested that most likely it's a variant of the 2-out-of-5 code [1], a constant-weight code that provides ten possible combinations of two bits and is used for representing the decimal digits using five bits. A such coding works as follows: each bit position is assigned a numerical weight, i.e. a value, e.g. seen from the left '01236', so if bit 4 (the leftmost bit) is a '1' and bit 2 is also a '1' then the combination '10100' would yield 0+2 = 2.

The codeword format is XXXXXS, where X = '0' or '1' and S is the stop bit, always '1', so in order to decode it you will have to invert the polarity of the bitstream 1 to obtain a 1:0 ratio of 2:3, indeed, I found a ratio 1:0 = 3:2 in reverse polarity.

Fig. 1

Using the table shown in the cited post, after  invert the polarity and remove the stop bits, I tried to apply the  POSTNET 74210 code [2] to the source message (assuming 11111/00000 is the codeword used for the separator character):

Fig. 2 - 2-out-of-5 code
00111 = A     11000 = 0 (---)
01011 = B     10100 = 9 (7+2)
01101 = C     10010 = 8 (7+1)
01110 = D     10001 = 7 (7+0)
10011 = E     01100 = 6 (4+2)
10101 = F     01010 = 5 (4+1)
10110 = G     01001 = 4 (4+0)
11001 = H     00110 = 3 (2+1)
11010 = I     00101 = 2 (2+0)
11100 = L     00011 = 1 (1+0)
As you see, applying the POSTNET 74210 coding to the source message, from the fourth group of the first line (and form the first group of the last line) yields the 5-digit group 99932  where 32 is just the total number of the groups within the message:

79128 79128 79128 99932
73814 04737 77008 73818
73717 65621 93714 65728
71837 65621 72185 46677
73815 72716 63472 21056
98742 10365 72716 62714
75321 63451 45660 87242
65721 72716 16078 75025
45666 12343 23445 00352
99932 79128 79128 79128

However, it remains to be seen whether '999' is actually '000' or "---" (as said, the coding could be a variant of 74210) and the meaning of the other 3 groups (79128) of the first and last line: probably something related to the message itself, perhaps the number of the message?

[1] https://encyclopedia.thefreedictionary.com/two-out-of-five+code
[2] https://en.wikipedia.org/wiki/POSTNET

12 October 2021

THALES XL modem, channels time lag


Thales HF XL SALAMANDRE (1) test transmissions spotted by my friend Geoff (who kindly sent me his recordings) on the upper limit of the 6 MHz band. In these tests the modems are able to use 16 contiguous 3 kHz channels with 2 KHz spacing and occupies a bandwidth of about 80 KHz. As a rule, two stations are used. 
Each transmitted burst consists of an initial XL synchronization preamble (2), followed by 9 frames of alternating data and known symbols. Each data frame consists of a data block consisting of 256 data symbols, followed by a mini-probe consisting of 31 symbols of known data, as per STANAG-4539 (188-110C Ap.C).  All the sixteen channels use PSK8 modulation at the symbol rate of 2400 Bd, user data rate is measured as 3200 bps with Very Short interleaver. Figure 1 shows the analysis of the upper channel and the Thales 124-symbol length extended preamble.
Fig. 1
A necessary foreword to understand how XL modem works. From what is possible to know from public documents available on the web, the XL multi narrow band (MNB) waveform is implemented by a multithread software running in a Linux PC (figure 2): "[...]The input stream is coded, interleaved and sent to different individual modulators having different data rates, each attached to a single channel. The modems outputs are combined in a frequency division multiplex and then the composite signal modulates the HF radio" (3).
Fig. 2 - multi-narrow band “XL” modem approach (Thales - HFIA meeting, San Diego Jan. 31th, 2013)

I realized that, modifying the FFT values, it turns out that the 16 channels do not come out at the same time but rather sequentially; more precisely, by filtering the intermediate channels, it is possible to measure a time lag of 3200 μs between the first and the 16th channel (figure 3). Likely, the parallel to serial buffer at the receive modem shall cancel that delay.
Fig. 3
Assuming that the XL modem  approach of figure 2 is still used today, I wonder if that time lag - unless it's a something like a required feature - is due to the context switching between the threads, ie between the software-defined  modems. I think that the initial de-multiplexing is irrelevant, since it will start to feed the n modems after the sync preambles have been formed, ie the symbols that are transmitted first are those of the n TLC/AGC sequences.  
Since the process spawns as many threads as the channels to be used,  the time delay is expected to decrease as the number of channels decreases: and indeed that's what happens in case of use of 12 and 9 channels (figure 4).

Fig. 4

I want to say that it's just a my guess and it relies either on the accuracy of SA measurements and the modem approach of figure 2: obviously more samples are needed to support my guess; unfortunately, both for the very nature of these transmissions (trials) and for the difficulty in having broadband recordings, it is a bit difficult to recover/find similar files to be analyzed. It would be great if someone from Thales would came across this post and would shed a light on this behavior.
As a final note, since 16 is the maximum number of channels the XL modem can allocate (figure 5), the one shown above is definitely the best performance possible in terms of used bandwidth: that is, 16 contiguous channels in only 80 KHz; but - at the same time - it is also the worst case when considering the total time delay between the limit channels. 

Fig. 5


(1)  Système Avancé pour Liaisons HF Adaptatives Multi-bANDes Rapides et Efficientes (adaptable, bandwidth-efficient, multi-band high-speed and high-frequency communication system)

(2) The synchronization preamble consists of three parts:
- a Transmitter Level Control / Automatic Gain Control (TLC/AGC) sequence, including an optional sequence to provide offset between channels;
- the main synchronization preamble, compatible with STANAG 4539 preamble;
- an extended synchronization preamble, specific to HF XL.
This last part, not included when operating according to 4539 or ISB modes, is combined with the main preamble to carry all information necessary to the HF XL waveform, in particular information on modulation choice for each channel. 


8 October 2021

CIS MPSK-16, PSK2 500Bd

Interesting CIS transmission spotted by my friend KarapuZ, whom I thank for sharing. The signal is a wideband MPSK-16 waveform, with 2500 Hz channel spacing, and use a PSK2 modulation at the symbol rate of 500 Bd in each channel. The 16 channels transport the same data.

Fig. 1 - PSK parameters of a single channel

A better view of the decoded bitstream of a single channel is obtained by using a 36-bit length period (figure 2):

Fig. 2 - 36-bit period

The messages consist of 5-FGs groups and a separator character (111110). In my opinion each group is coded into a 5-bit Figures, (after the removal of the common trailing "0") and has a constant ratio "1s"/"0s" = 3/2, except the separator which consists of all ones bit (11111). Nothing changes if the reverse polarity is taken into consideration. By using the association:

11111 = space/separator
00111 = A
01011 = B
01101 = C
01110 = D
10011 = E
10101 = F
10110 = G
11001 = H
11010 = I
11100 = L

we get :


Notice the particular "format" that is used for the initial and last four groups of the message: some conjectures can be made about its purpose such as for example the signaling of SOM/EOM or the date/number of the message... anyway only hypotesis. The messages are probably off-line encrypted and maybe using the so-called OTP (one-time pad) technique: anyway, one could test the possible associations as for example the following A=0 - L=9 (or the reverse order) and see what it turns out:.

31982 31982 31982 11178
37296 06373 33002 37292
37393 45489 17396 45382
39273 45489 38925 64433
37295 38394 47638 89054
12368 90745 38394 48396
35789 47659 65440 23868
45389 38394 94032 35085
65444 98767 87665 00758
11178 31982 31982 31982

My friend Cryptomaster came to the same conclusions in his reply in radioscanner taking a different approach: ie 6-bit words consisting of 5-bit code + 1 parity bit. Probably the MPSK waveform is an evolution of the CIS PSK-2 serial tone waveform (same period, same bitstream pattern) [1]: given that the 16 channels transport the same data, they provide a better immunity to noise and interferences.


[1] http://signals.radioscanner.ru/base/signal172/