The Mode A and C transponders uses Pulse AM with the presence of pulses in defined timeslots determining the data with framing pulses at the start and end. Mode S uses Pulse Position Modulation (PPM) with a preamble. I included a png of the first part of a Mode S packet. The 4 pulses at the start are the preamble.
Very cool.
Most of my thinking will go into how to implement this within the GNURadio style. Do I make a more general case or a specialize case? I noticed GNURadio has some framing and bit sync blocks I need to look at more.
Those are a good place to look.
PPM is decoded by comparing the amplitude values in the 1 time period to the 0 time period. This is like FSK but uses time instead of frequency. The timing is such that each 1 uS of time is a symbol. There are 4 symbol states. I am remapping 0 and 1 as the valid data values. I need some decision logic to determine the presence of a pulse. The block also needs pulse sync logic. So the block takes in samples and outputs symbols.
Yes, there are a few blocks which do similar things. Look at the GMSK code in particular.
The next block looks for the preamble pattern and valid data frames by looking at the timings of valid (0, 1) versus invalid (2,3) symbols. It outputs valid data frames. I get the impression that this is the general flow for digital decoders in GNURadio although the framing is usually separate from the decoding. Am I on the right track with this?
Yes, you are. Let us know how it is going! Matt _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
