mhostetter / gr-adsb

GNU Radio OOT module for demodulating and decoding ADS-B packets
GNU General Public License v3.0
147 stars 44 forks source link

Demod improvements #21

Open mhostetter opened 5 years ago

mhostetter commented 5 years ago

@potto216, I'm opening this thread to continue your discussion from #18.

ADS-B uses binary pulse position modulation (PPM), see this ADS-B Presentation.

The reason I use a non-coherent demod (the mag^2 before the ADS-B framer) is to avoid needing frequency synchronization. Since the modulation is through amplitude (and not phase), computing the power is a "cheap" matched filter. A true matched filter would need to be aligned with the baseband frequency offset of the signal, caused by the receiver's frequency offset and the signal's Doppler shift.

While you are correct that non-coherent demod has worse performance over coherent demod, non-coherent demod is less computationally complex. And in this case, I think that's a win.

I'm open to new ideas, improvements, and implementations, though. :smile:

potto216 commented 5 years ago

@mhostetter Thanks for the explanation and the link. I can see your point especially because you can run the algorithms in python. Is the objective of this issue to first convert and test everything with python 3?

mhostetter commented 5 years ago

Python 3 doesn't have to come first. Although, your interest in the project has rekindled mine. I'm working on installing/running GNU Radio 3.8 now. And will start porting/upgrading code soon.

If you have other demod ideas or implementations, feel free to start experimenting. It should be easy enough to integrate, regardless of where I am in the Python 2 to 3 conversion.

potto216 commented 5 years ago

Will do. At the moment I can't think of any improvements to the demod while I'm learning ADS-B. But I'll let you know if I come up with something.