Monday, February 18, 2019

WBHF (1)

Below are a 16QAM and 32QAM constellation diagrams picked up from a KiwiSDR in ECNA:


16QAM constellation

16QAM constellation diagram
32QAM constellation


All processing, i.e, symbol timing alignment and doppler offset correction, were done manually in GNU Octave.

Tuesday, February 12, 2019

KiwiSDR IQ data streams with >20.25 kHz bandwidth (3)

This is a follow-up to this recent blog post. In order to further verify the method of combining KiwiSDR IQ streams described before, an extreme example was considered: a STANAG 4285 signal centered on the border between two streams, see below.

Combination of three KiwiSDR IQ streams @8kHz into one @32kHz.

As before IQ wav files with GNSS timestamps were recorded using kiwirecorder.py on three center frequencies: f0-8kHz, f0, f0+8kHz. While the results obtained before using CODAR and other FMCW radar signals were promising, the fist results obtained with unmodified code were not satisfactory: the frame structure of STANAG 4285 was clearly visible when looking at abs(IQ), but the obtained constellation diagram was not in a good shape and it looked like there was a time-varying phase offset between the three input streams.

Note that the sampling rate of IQ samples from KiwiSDRs is eventually derived from a Quartz oscillator which is subject to temperature drift, so the actual sampling rate in the example shown here is 12001.18217 Hz instead of 12000 Hz. While the local oscillator center frequencies are set taking into account the deviation of the local oscillator (using GNSS position+time solutions) and are exact, the sampling frequency is not. Therefore streams #2 and #0 had to be shifted in frequency by ±8000 Hz × (12001.18217/12000-1) = ± 0.7881 Hz (this is a phase shift of  ±284 degrees per second) in order to avoid "frequency overlap" and this solved the problem. Thanks to GNU Radio shifting streams of IQ samples in frequency takes only a few clicks in gnuradio-companion.

Below symbol phases vs. symbol number and the constellation diagram are shown for a time interval of 2.5 seconds while ionospheric propagation was stable. For this all processing was done using GNU Octave, manually correcting for doppler offset and symbol timing, i.e., no adaptive filter was used.

STANAG4285 symbol phase vs. symbol number.

IQ display for the STANAG 4285 signal integrated over 2.5 seconds.

While all this looks promising more tests are needed.

Tuesday, February 5, 2019

Chirp sounder measurements with KiwiSDRs (1)

The plots below show measurements of the chirp sounders from Cyprus (RAF Aktrotiri). There are two chirps (100kHz/sec) separated by 5 seconds and repeating each 5 minutes. In G3PLX notation they are called 300:240 and 300:245

Using GNSS timestamped IQ samples from the KiwiSDR @IU8CRI, tuned to 13,200 kHz, a pair of chirps was analyzed in terms of instantaneous frequency and of propagation time delays obtained from the FFT of the de-chirped signals.

Top: instantaneous frequency; bottom: propagation time delay obtained form the FFT of the de-chirped signal

In this earlier blog post a time offset of about δt=0.3±0.03 msec w.r.t. start time at the beginning of a given UTC second of the chirp signals from Cyprus was found in the chirp monitoring data from the U Twente WebSDR. This offset is also found in the KiwiSDR measurements, i.e., without applying this offset, the first peak in the propagation time delays would be below the equivalent time of propagation along the great-circle distance at the speed of light.

It would be very interesting to implement a more systematic monitoring of chirp sounders using KiwiSDRs.