Decoding a mystery signal on the 11m band w/ GNURadio+KiwiSDR - Page 1
Forum section: electronics / rf-microwave

author: thinkfat
author_rank: Unknown
timestamp: November 24, 2020, 09:06:42 pm
content: This is about a little quest I went on to decode a digital signal some Youtube guy found playing around with his SDR rig.The Youtube pixies put the following video into my recommendations:This guy found a digital signal on 27.255MHz, which is in the 11m ISM band (CB channel 23). He couldn't quite make sense of it,however he correctly guessed that it sounds like an FSK signal but didn't make any more attempts to actually get to the signal content,instead decided to do a little motorbike tour to see if he could location the transmitter physically.So I thought, well, weather sucks over here, why not try and see if some Web SDR can pick up on these signals, after all it's shortwave radio,it might have a decent enough range, and after a quick search this turned up:http://sigmasdr.ddns.net:8073/?f=27255.00iqz11Now I'm hooked. I have no deep knowledge about digital transmission systems but some of my friends do and they pointed me to GNURadio,which is basically an SDR toolkit that allows you to build a signal flow graph by piecing together standard processing blocks. So, after somehours I come up with the following contraption:This is more or less a textbook FSK demodulator, it captures the audio stream from the KiwiSDR receiver through a monitor sound source directly from the web browser.The data comes in at 12kS/s on two channels, which represent a complex I/Q baseband spectrum.The first processing block is a channelizer, which in my case only serves to limit the passband and allows for some frequency shifting, but it is not strictly necessary as youcan make the same adjustments directly on the KiwiSDR UI.Next comes a Quadrature Demodulator which demodulates the FSK. Think of it as a frequency-to-voltage converter. After this step, you have regenerated the transmitted signal, but it is still heavily oversampled.To get down to the bit stream, next follows a clock recovery block that recovers the bit clock and spits out the symbol stream one sample per symbol.The whole thing has a user interface, screenshot attached:With a bit of help I was able to find some key parameters of the transmission:It's a FSK with a quite wide frequency shift of +/- 2kHz.The symbol rate is pretty low, only around 500 symbols per second.That's about all one needs to know to set up the demodulator and clock recovery.What you see in the screenshot is one transmission. Each of the signal bursts consists of four individual "packets", easily confirmed using your ears: the "brrp-brrp-brrp-brrp" sound, each brrp is one packet.Each of the packets has identical content. I guess its for transmission resilience, just send the data 4 times and hope that the receiver gets at least one of them.The packet structure is exceedingly simple. There seems to be a sync pattern at the start to train the receiver, then follows the payload, which has about double the length of the sync pattern. In total there may be like 16 bits of payload in each packet.What I wasn't able to find out yet is if there's any additional coding scheme. I tried NRZI (this is the blue trace in the "Clock Recovery" trace), but it might as well be something else.The WebSDR is only able to receive one station clearly. There are others on the channel but they are so far down in the noise that they cannot be decoded. This station only ever transmits two different patterns. The two patterns are transmitted alternatingly.If you want to give it a go yourself, I've also attached the GRC file, you can load it in GNURadio, it uses no out-of-tree modules or plugins.

author: A.Z.
author_rank: Super Contributor
timestamp: November 26, 2020, 11:44:24 am
content: Not sure it may be helpful in your case, but have a look at thesehttps://redhawksdr.org/(alsohttps://github.com/redhawksdr)https://github.com/jopohl/urhthe first may give you some additional capabilities (than the ones from GNU Radio) while the second could allow you to better decode the packets; also, a good place to check for "mistery" signals is the SigIdWikihttps://www.sigidwiki.com/wiki/Signal_Identification_Guideand the Artemis softwarehttps://aresvalley.com/Artemismay be useful to indentify a given signal