Comment on [FoAR] Foundations of Amateur Radio - The Art of decoding a signal. #podcast
kristoff@infosec.pub 1 week ago011111001101110001011101001100101010100100100010100001001101000111110101101001010011111100000001101101010001001011110010110001000110011000111000011000001110110000101011001001110011101010111111110110110011110001101011100100001111011101111010000010000001011 0111110011011100010111010011001010101001001000101000010011010001111101011010010100111111000000011011010100010010
Hi Otto,
First of all, it is just me or is the wav-file on your github repo actually empty (just 2 byes)?
Concerning the data you receive. Nice capture finding out it is a repetative pattern.
As said, I am not at all a SIGINT expert, but let’s see how far we can go with this/
So, what next? Question 1: OK, we’ve got a repetative pattern, so it is probably a data packet that is repeated continuesly (or multiple data-frames that happen to be all the same) But where does the packet actually start?
One important thing about digitale communication to keep in mind when dealing with digital communication: synchronisation, synchronisation and even more synchronisation!
Although the transmission has a fixed bitrate (and hence, timing), the receiver will mever have exactly the same frequency as the transmitter, so it must continuously adapt it own timingf to that of the transmitter. It does that by looking for bit-transistions and correct any error of its onw timing to that. So what you really want to avoid is large number of all-zero and all-one patterns, or at least, in actual data of the frame.
If you look at the bitstreaming, you see that ‘0000000 … 1101101010’ pattern.
The 7 consecutive 0 bits probably are a no-data indication.
The following bits are -I guess- the ‘start of frame’ pattern that indicates … well, the start of the frame. Note that there are a lot of 0-1 alternations in that pattern. That helps the receiver synchronise itself to the received bitstream. The slight variation on it (i.e. the additional ´1’ in front of it) might be there to avoid ‘false positive’ start-of-frame detections.
Now, as for the rest of the packet. As you have only one single packet, it is very difficult to determine its exact meaning. For that, you need to have multiple packets with different data in it.
Hope this helps a bit
Kristoff (ON1ARF)
vk6flab@lemmy.radio 5 days ago
Hi Kristoff,
Thanks for the heads-up on the empty data file. I think that the GitHub web interface was “helping” when I initially created the repo - since I still cannot create those from my cli. Now fixed.
I’ve added your interpretation with the sync bits to the documentation for the file. It’s a really interesting observation. I don’t know if there are more than one different types of packets, since my earlier attempt to record the data using a WebSDR failed for some unknown reason. I do know that others have also heard this signal on-air, so perhaps it’s still happening and others might share their recording.
I’d love to learn how to usse the differential signal to remove noise to see if they’re actually all the same packet, or if they are actually different. I don’t particularly want to start manually flipping bits, but then there’s only 1,461 of them, so it’s doable in a pinch.
The timing of the signal is also interesting. According to
inspectrum
, the baud rate is 91.81, which isn’t any standard rate, which also makes me wonder if there is any actual information being transmitted here, other than a fixed timing signal.73 de Onno VK6FLAB
kristoff@infosec.pub 4 days ago
Well, let’s look at this high-level. Let’s look at how (say) FSK decoding is done. Let’s concider a audio signal of 1200 and 2200 Hz.
From what I’ve seen of oldl RTTY machines, how it was done in the beginning was simply by filtering: you take the audio, create two audio filters, one at the low frequency and one at the high frequency. Then, on both outputs you do signal detection (AM demodulation) and you get two voltages. Compair them (or subtract one from the other) and you get your data.
Another option, if the two frequencies are sufficient close together and you can filter the signal that you only have that signal and no other stuff, if simply do FM demodulation. After all, FM modulation is that you take in a voltage and output a sinewave of a certain frequency. The higher the input voltage, the higher the frequency. So, invert that, if you input a signal of either 1200 or 2200 Hz into a FM demodulator, you will a voltage that is (say) 1 volt for the 1200 Hz tone and 1.5 volt for the 2200 Hz. Then set a threshhold at 1.25 volt (which you can determine by taking the average of all the voltages of -say- the last 10 seconds), and you can determine if you have received a “0” or a “1” tone.
Another option, if you work with an SDR and you have IQ data, if to first downconvert the audio. The middle between 1200 and 2200 Hz is 1700 Hz. Create a sinewave of -1700 Hz (yes, minus 1700 Hz, negative frequencies!) and mix it with the received signal. As a result, you will get a signal of either -500 Hz or +500 Hz. FM demodulate that, and you get a negative or a positive voltage.
Now, in this case, the signal is quite far apart (7 KHz) and there are kind of other signals inbetween these two carriers. If you have a SDR, you can just take in the complete signal (say, sample at 20 Ksps), filtering out all the unwanted signals and then process it like any other FSK signal (as described above). Another option I guess would be to use two receivers (two sessions to a websdr), set one at 7.061 (500 Hz below the lowest) and the other at 7.067 (1500 Hz below the highest tone). Apply filtering that you remove all other signals. Your computer should then play out two tones: a 500 Hz for the lowest carrier and a 1500 Hz tone for the highest carrier. Mix and record the audio, and then then process it like a normal FSK signal.
Yes, … signal-processing can be fun.
Ah. Concerning the signal itself and the meaning of the bits. I heared your latest podcast episode after I wrote my previous post. I agree. Perhaps it simply do not mean anything. We live in strange times, so it can be anything, … or nothing :-)