Some people may think that I have lost interest and dropped this
project. “Neigh, Neigh” as Mr Ed would say.
It just took some time because of illness, business trips, having to
rethink the implementation. The receiver now sends signal attributes
along with the sample and each block adds it’s piece. I looked at the
OFDM stuff, but it was really the ATSC code that gave me some good
ideas. So the receiver will output mode-s frame classes using a queue.
It also outputs signal strength (reference level) and timestamp of the
lead pulse (sample count). The receiver seems to work better.
I implemented the improved multiple sample technique for decoding the
PPM data bits and gained about 20 to 30 miles of range. With the 1/4
wave groundplane and the AR5000 frontend I can get up to 150 miles and
sometimes more. Most of the articles I read talk about techniques to
improve reception. It will be interesting to see how this receiver
compares to other receivers.
The next part is the Parity and Error Correction blocks. The
information I have is somewhat confusing, but Error Correction Codes are
not my strong suit. “It’s a Galois Field, Captain!” There is a
conservative approach correction that can correct up to 12 bits in a
single 24 bit window if all the bits need to be complemented. There is
a brute force approach that can correct up to 5 bits by flipping the low
confidence bits and seeing if the crc syndrome goes to zero. This only
works for ACAS and ADS-B frames as other frames have data like the
airframe address overlayed on the parity. I am planing on putting
quality information in the mode s frame class based on the confidence
level and if the frame needed correction.
I also want to get rid of some magic numbers so I can run the receiver
at different sampling rates. Right now it will only work at 8 MSPS. I
did implement some calculations based on the sample rate but the
descriptions I have read give a few magic numbers.
Now the code is getting stable I will be putting it into my branch in
SVN by Sunday and start to polish it up.