3

I am having some difficulties in understanding how to decode a Bell 202 encoded signal. How do I do that?

I know Bell202 encodes binary data with ones and zeros as 1200 Hz and 2200 Hz. I recorded a radio signal on 145.825 Mhz with a 2Mhz sampling rate when the International Space Station (ISS) transmitted APRS.

I uploaded a Python Numpy NPY file here https://drive.google.com/drive/folders/0B-6iySZt3rrjQVdpRHBOc2lyQTQ and it has 4 data streams in it. Don't be confused, I just recorded the same signal at 4 location (more here https://twitter.com/andreashornig/status/897435897414791168) Each stream is the IQ-data as a complex array of the same peak you see in the twitter graph. I bandpass filter the signal in the vicinity of the center, because the ISS APRS transmits on 145.825 and I recorded exactly on it. If the bandpass is +-5KHz and you plot it as a waterfall, you can even see the dopplershift.

With the bandpass filter in mind, I do an FFT with 2m kernel, multiply the fft with the filter and then I can do IFFT and receive the complex signal back, as seen on the twitter graph.

So with that, I would now run an FFT kernel over the newly filter complex signal for find the two twones on 1200 and 2200 Hz.I also did and found some phases of frequencies around 1200 and other phases of frequencies around 2200 Hz. But So far, I couldn't find the starting flag of 01111110.

What would you advice me to do now? I am a very visual person but so far I couldn't find any tutorial with nice graphs I could easily understand.

Thank you in advance or any help or tipp!

Andreas

Andreas Hornig
  • 2,439
  • 5
  • 28
  • 36
  • 1
    Very nice question! Instead of Bell202 try searching for AFSK1200 parsing. Instead of a full FFT you can use the Goertzel algorithm which is more performant when only two frequencies are involved. To get the correct frequency (doppler effect) you´ll need kepler data. Do you know pymultimon? 73! – Tom Schardt Sep 14 '17 at 14:59
  • thank you! :) I already looked for AFSK1200 and also understand so far the later parts like NRZI, bit stuffing and byte inverting. My SIMPLE method worked for APRS on 144.8 MHz, but not for the ISS :(. So I am still working on it and I guess it is due to the FM-Demodulation I think I don't do right. The Goertzel algo I will check. Thank you for the hin. For the doppler effect, I know that Multimon worked for me then, but I just used it and put in the audio of my SDR#. But I wanna use IQ data directly. pymultimon I haven't checked so far. Shall I? :) – Andreas Hornig Sep 15 '17 at 18:00
  • I started to understand what rtl_fm is doing. So here is my first code attempt for it... https://github.com/hornig/pyrtl_fm I hope I am on the right track :) – Andreas Hornig Sep 16 '17 at 13:53
  • 1
    I´m using rtl_fm and pymultimon as a APRS iGate running on a raspberry with a DVBT stick. It is ready to use and need just some adjustment. I know you can use it to decode ISS APRS as well. I want to encode/decode APRS in a later project (maybe next year?!) on a atmega. I´m not familiar with python, so I didn´t even check out your code. I hope you will succeed! Best wishes! PS: Goertzel will not help you - but its more efficient as long as a few frequencies are involved. – Tom Schardt Sep 16 '17 at 15:32
  • Hi, I am decoding my first messanges :). That is really a good feeling to be that far :). What i don't know yet is how to apply the CRC. I am not quite sure on what step I use it. Is it after the NRZI and bit-stuffing? Is it also after reversing the order of bits? I cannot find a clear statement, when I have to apply it :). Can you help me here? – Andreas Hornig Oct 03 '17 at 22:47
  • Hi Andreas, my best bet is this page: http://n1vg.net/packet/ – Tom Schardt Oct 04 '17 at 18:04

0 Answers0