public Fleetsync2Decoder() : base(Source.SampleType.REAL) { mDecimationFilter = new DSP.Filter.FloatHalfBandFilter(DSP.Filter.FilterType.FIR_HALF_BAND_31T_ONE_EIGHTH_FCO, 1.0002); addRealSampleListener(mDecimationFilter); mBandPassFilter = new FloatFIRFilter(DSP.Filter.FilterTypeCoefficients.GetFilterCoefficients(DSP.Filter.FilterType.FIRBP_1200FSK_24000FS), 1.02); mDecimationFilter.setListener(mBandPassFilter); mFSKDecoder = new DSP.FSK.FSK2Decoder.FSK2Decoder(sDECIMATED_SAMPLE_RATE, sSYMBOL_RATE, DSP.FSK.FSK2Decoder.Output.INVERTED); mBandPassFilter.setListener(mFSKDecoder); mMessageFramer = new Message.MessageFramer(SyncPattern.FLEETSYNC2.getPattern(), sMESSAGE_LENGTH); mFSKDecoder.setListener(mMessageFramer); mMessageProcessor = new Fleetsync2MessageProcessor(aliasList); mMessageFramer.addMessageListener(mMessageProcessor); mMessageProcessor.addMessageListener(this); }
public Fleetsync2Decoder(int sampleRate) : base(SampleType.REAL) { mDecimationFilter = new DSP.Filter.FloatHalfBandFilter(DSP.Filter.Filters.FIR_HALF_BAND_31T_ONE_EIGHTH_FCO, 1.0002); addRealSampleListener(mDecimationFilter); mBandPassFilter = new DSP.Filter.FloatFIRFilter(DSP.Filter.FilterCoefficientHelper.getCoefficients(DSP.Filter.Filters.FIRBP_1200FSK_24000FS), 1.02); mDecimationFilter.SetOutputListener(mBandPassFilter); //mFSKDecoder = new DSP.FSK.FSK2Decoder(sDECIMATED_SAMPLE_RATE, sSYMBOL_RATE, Output.INVERTED); mFSKDecoder = new DSP.FSK.FSK2Decoder(sampleRate, sSYMBOL_RATE, Output.INVERTED); mBandPassFilter.SetOutputListener(mFSKDecoder); mMessageFramer = new Bits.MessageFramer(Bits.SyncPatternHelper.getPattern(Bits.SyncPattern.FLEETSYNC2), sMESSAGE_LENGTH); mFSKDecoder.SetOutputListener(mMessageFramer); mMessageProcessor = new Fleetsync2.Fleetsync2MessageProcessor(); mMessageFramer.addMessageListener(mMessageProcessor); mMessageProcessor.addMessageListener(this); }