Z-Sat VHF transmissions

Z-Sat is a microsatellite by Mitsubishi Heavy Industries that was launched in 2021. It is a demonstrator for multi-wavelength infrared Earth observation technologies. It carries an amateur radio payload that was coordinated by IARU and which consists of a BBS (bulletin board system) with a 145.875 MHz downlink and 435.480 MHz uplink. I have not been able to find more information about the amateur radio payload on this satellite.

Recently, Daniel Ekman SA2KNG asked me to analyze some transmissions by this satellite. Apparently it has recently begun to transmit a digital modulation, as shown in this SatNOGS observation, while it typically had transmitted CW telemetry in the past. The point where this started appears to be on 2025-06-20, as there is a SatNOGS observation of CW telemetry on that day followed by an observation of the digital modulation. In this post I analyze this digital modulation and explain what it is.

I will be using an IQ recording that Daniel Ekman made. The recording has a significant amount a fading, as the SatNOGS observations that I linked, but the SNR in the middle portion is reasonable. Looking at the frequency plot in Inspectrum we can see that the waveform is 9600 baud FSK. The baudrate is confirmed by cyclostationary analysis in GNU Radio: after performing FM demodulation, the product of the signal and the signal delayed by one sample has a strong spectral component at 9600 Hz.

The deviation seems to be 2400 Hz, which is the MSK deviation for 9600 baud. The modulation is probably GMSK, but I have not attempted to measure the pulse shape.

I have put together a simple FSK demodulator in GNU Radio by using the Quadrature Demod block to perform FM demodulation, and then performing square pulse shape filtering and symbol synchronization with the Gardner TED. The soft symbols are written to a file for analysis. They are plotted here. The high SNR portion in the middle of the recording is apparent.

We limit the analysis to this high SNR portion only, shown below in more detail. The SNR is good enough that the BER is quite low.

The autocorrelation of the soft symbols is shown here. It has strong peaks at multiples of 131071.

Plotting the raster map of the hard decision bits with a row length of 131071, we see that the signal is always the same 131071-bit sequence. At some point the pattern changes in the raster map, but that is just because of a symbol slip in the symbol synchronization. We can check that the first rows are identical to the last rows shifted by one symbol. The fact that this does not appear to be the case in the raster map is because of how Matplotlib shows a large sequence when interpolation='None' is used (it probably decimates the sequence, since it does not have enough pixels to represent all the elements).

The number 131017 is equal to \(2^{17} – 1\). This suggests that the sequence is generated by a 17-bit LFSR. While 17-bit is a somewhat unusual choice for an LFSR, the G3RUH scrambler, which is an asynchronous scrambler commonly used in amateur packet radio uses that length. The following figure, taken from an AMSAT-UK article shows the operation of the G3RUH scrambler.

G3RUH scrambler

Therefore, I wondered whether the \(2^{17}-1\) bit periodic sequence transmitted by Z-Sat could be caused by transmitting a simple data pattern, such as all zeros, through a G3RUH scrambler. The easiest way to find out is to run the demodulated symbols through a G3RUH descrambler in GNU Radio. This is done in the flowgraph shown below.

Z-Sat demodulator and G3RUH descrambler

When the SNR is high enough that there are no bit errors, the descrambler produces an all zeros output. This shows that the sequence transmitted by Z-Sat is indeed the output of a G3RUH scrambler fed with an all zeros input.

Z-Sat soft symbols and G3RUH descrambler output

The question that remains is why Z-Sat is transmitting this sequence. I haven’t found any documentation saying whether the BBS on Z-Sat was supposed to use AX.25 G3RUH packet radio, but that is a relatively common choice. In that case, the G3RUH scrambler is a component of the radio transmitter. Maybe there is a malfunction and the scrambler is being fed with an input that is stuck at zero, instead of being modulated with well-formed AX.25 frames. Or maybe the transmitter has a test mode in which the scrambler is fed with zeros to output a pseudorandom sequence that allows BER testing to be performed. In any case, the above analysis is a complete description of what Z-Sat is doing, and it shows that there is no data in these transmissions.

The materials used in this post can be found in this repository.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.