Wednesday, June 24, 2020

AM modulation index

This is not the most exciting topic, but on the KiwiSDR forum there were repeated questions on how to measure the AM modulation index.

The best reference which I have found for that is an report from the ITUR-REP-BS.2433-2018-PDF-E, where the "RMS modulation depth", i.e., the RMS ratio of side-bands and the carrier is being used as a proxy for the modulation index.


GNURadio flowgraph for measuring AM RMS modulation depth 

First, synchronous AM demodulation is performed using a PLL which locks onto the carrier. Then the RMS power in the carrier and in the side-bands is computed and their ratio is formed. Smoothed versions of this variable are shown a number and as a histogram. Note that the "RMS AM modulation depth" block consists of just a few lines of python.

The grayed out, i.e., disabled portions of this flowgraph were used to verify that the normalization is correct.

For the BBC transmitter on 198 kHz, the RMS modulation depth was found to be about 12% at the time of measurement which is consistent with the value quoted in the ITU report mentioned above. However, this number can vary by a factor of 1.5 or more (9-18%) depending on whether the program consists of speech or of music at the time of measurement. Furthermore,  the measured modulation depth indicates that dynamic carrier suppression is being used, see again the ITU report for details.


AM RMS modulation depth for BBC on 198 kHz

Wednesday, April 15, 2020

HF TDoA multilateration (2)

This is an update to the last blog post where propagation delays from VOACAP are used in addition to great-circle-derived propagation delays.

As VOACAP provides a number of propagation modes (MODE=25) the mode which is most close to the measured time difference is used.

Note that the findings in the plots below might accidentally: when there are enough closely-spaced delays available it is quite likely to match the data.

Nevertheless it can be seen that large deviation from the hypothesis of ground-wave propagation along great-circle paths are due to different reflection heights, i.e.,  1E-1F2, 2F1-1F2, etc: at a given time, a number of different propagation paths are available, and for different combinations of receivers, different propagation modes are in fact observed.



Comparison of measured time delay differences with differences based on ground-wave propagation along great-circle paths and differences based on VOACAP predictions.

Comparison of measured time delay differences with differences based on ground-wave propagation along great-circle paths and differences based on VOACAP predictions.

Friday, April 10, 2020

HF TDoA multilateration (1)

This blog post contains an analysis of TDoA multilateration applied to signal on 13413.4 kHz using a number of KiwiSDRs located in Europe.

For now the assumption used for making the KiwiSDR TDoA maps is that signals propagate with speed of light along the ground. Here we compare the measured delay differences with the ones obtained from this assumption.

All plots shown in this blog post are generated using octave/matlab .mat files available when using the updated KiwiSDR TDoA algorithm.

The cross-correlations for all combinations of used KiwiSDRs, normalized to have their maximum at unity, are shown below.

cross-correlations

Differences between the measured values and the ones obtained from great-circle-derived time delay differences are due to ionospheric propagation. As expected, the ionospheric effects tend to cancel for pairs of KiwiSDRs which are at about the same distance to the transmitter:

Comparison of  measured with great-circle time differences

The following scatter plot shows the effect of ionospheric propagation w.r.t. great-circle propagation. It will be very interesting to re-do this analysis using propagation delays e.g. from VOACAP instead of assuming propagation along great-circles at ground level.

Scatter plot for time differences

Slightly earlier the plots looked like this:

cross-correlations

Comparison of  measured with great-circle time differences

Scatter plot for time differences


Sunday, March 8, 2020

2400 symb/sec bursts with 256 symbol long frames

Interesting PSK-modulated burst signals were picked up recently on a KiwiSDR in the UK:
  • 2400 symb/sec
  • 8-PSK modulation
  • The 1st 6 frames show a substructure of known symbols not present in the following frames

abs(IQ) in 1280 sample frames (12 kHz sampling rate) 


arg(symb) in 256 symbol frames (2400 symb/sec) 






Tuesday, February 18, 2020

2000 symb/sec 8PSK bursts

Today 8PSK bursts with 2000 symb/sec were received on a KiwiSDR in WCNA on 7862 kHz USB (center frequency is 7863.8 kHz).

Starting from the recorded WAV file in I/Q mode, all processing (symbol synchronization, doppler correction, symbol analysis, plotting) was done manually in GNU Octave using signal-analysis for LFSR-detection.

The bursts consist of a BPSK-modulated preamble which is a subsequence of a length-14 LFSR with period 214-1, i.e., a maximal length LFSR. The preamble is followed by 6 720-symbol-long frames, where each frame starts with 72 known 8PSK-modulated symbols, followed by 72 BPSK-modulated unknown symbols and 576 8PSK unknown symbols.

Preamble and frame structure

720 symbol frames

Monday, January 6, 2020

Some HF radar signals

7500 kHz


A number of similar HF radar signals have recently been observed on KiwiSDRs located in Europe on different frequencies.

The pulse repetition rate is 40 Hz (25 ms/pulse).

abs(IQ)

Each pulse consists of a linear chirp and of a pause.

FM demodulation

KiwiSDR TDoA multilateration indicates that these signals come from somewhere in Russia.

KiwiSDR TDoA multilateration

Bursts of what seem to be linear FM chirps have been observed on different frequencies around 8050±~50 kHz.

6390 kHz

Like the signal on 7500 kHz the pulse repetition rate is 40 Hz. However the duty cycle is smaller.

abs(IQ)

FM demodulation


8050 kHz


For this signal, the pulse repetition rate is 96 Hz.

abs(IQ)
Each pulse consists likely of a linear chirp. The spikes in the instantaneous frequency seen below are probably cause by HF propagation effects. Note that these radar-like signals are narrow-band (±1kHz variation in instantaneous frequency, only)

FM demodulation
KiwiSDR TDoA multilateration indicates a position somewhere in the Atlantic Ocean (compatible with the Azores).

KiwiSDR TDoA multilateration

Monday, November 4, 2019

Update on the OQPSK signal from Chicago

This is an update to this and to this blog post.

(Updated 11/5/19)

While before the offset between the "X" and "Y" bit streams was 458,748 bits, recently this offset has changed (but see below) to 65,536=216 bits, i.e., a non-pseudo-random bit stream can be obtained as follows:

  m = 65536;
  b = bitxor(bY(1:end-m),~bX(1+m:end)); # (*)

Recently this signal was observed on 12190 kHz with quite a lot of selective fading, so the coherent demodulation is not perfect.

12190 kHz QQPSK demodulation

The bit stream obtained by using (*) shows a repeated pattern of 7 bits (0011101):

fixed bit patten

It can be easily verified that this bit pattern is generated by an LFSR:
   bn = bn-1 + bn-3 ,   (**)
where "+" denotes XOR. In fact the offset is the same as before. The fact that a LFSR-generated sequence is left after (**) is an artifact of using 1/7 original offset. This also makes the additional descrambling mentioned below obsolete.

At another time the same type of signal was observed on 10790 kHz, this time carrying data. Again the offset between the "X" and the "Y" bit streams was 216 bits. Using the LFSR (**) the resulting bit stream obtained from (*) can be descrambled, and then closely resembles the one found before: there are "frames" of 48-bits and the bits come in pairs, so in one given frames there are 24 "independent" (but see below) bits.

bit stream in terms of 48-bit frames

Treating each line in the above plot as one "symbol" it was found that 16 symbols occur with (about equally) high frequency and all other symbols with very low frequency:

48-bit symbol frequency
For now let's treat the symbols with low frequency as transmission errors (they might not be that).

The 16 symbols, when arranged in order, show an interesting pattern: in each group of four symbols 1) the last group of three bits is repeating, and 2) the first 7 groups of three bits are the same. In the table below the last number in brackets indicates the number of times a given symbol has occurred.


i= 1: 000_100_000_000_000_100_001_000 (497)
i= 2: 000_100_000_000_000_100_001_010 (494)
i= 3: 000_100_000_000_000_100_001_100 (531)
i= 4: 000_100_000_000_000_100_001_111 (487)

i= 5: 000_101_011_011_000_111_111_000 (470)
i= 6: 000_101_011_011_000_111_111_010 (561)
i= 7: 000_101_011_011_000_111_111_100 (536)
i= 8: 000_101_011_011_000_111_111_111 (506)

i= 9: 001_100_011_101_101_010_011_000 (494)
i=10: 001_100_011_101_101_010_011_010 (522)
i=11: 001_100_011_101_101_010_011_100 (495)
i=12: 001_100_011_101_101_010_011_111 (538)

i=13: 010_011_111_001_111_110_110_000 (508)
i=14: 010_011_111_001_111_110_110_010 (495)
i=15: 010_011_111_001_111_110_110_100 (485)
i=16: 010_011_111_001_111_110_110_111 (482)



The sequence of these symbols is not entirely random: the last three bits determine if the following symbol is in the group 13-16, 9-12, 5-8, or, 1-4:

Distributions of symbols following the one indicated in the subplot title.

This might indicate a form of Trellis coding, because not all possible transitions between symbols are allowed.

Any information about this kind of error correction is very much appreciated.