コード例 #1
0
 public SymbolSync(SYNC_TYPE sType, int interpDecimFactor)
 {
     SyncType    = sType;
     DecimFactor = interpDecimFactor;
     HalfPoint   = DecimFactor / 2;
     Init();
 }
コード例 #2
0
ファイル: ModDemod.cs プロジェクト: osherbakov/MELPeModem
 public void StartCorrectionProcess(SYNC_TYPE sType, int numSymbols)
 {
     if (numSymbols != 0)
     {
         CorrSymbolIndex = CurrFreqIndex;
         InSyncProcess   = true;
         CorrSymbol.StartCorrectionProcess(sType, numSymbols, fQ[CurrFreqIndex].DecimateIndex);
     }
 }
コード例 #3
0
 public SymbolSlicer(SYNC_TYPE sType, int interpDecimFactor, int numberOfSymbols)
 {
     SyncType    = sType;
     DecimFactor = interpDecimFactor;
     HalfPoint   = DecimFactor / 2;
     NumSymbols  = numberOfSymbols;
     DataSize    = numberOfSymbols * DecimFactor;
     DataBuffer  = new IQ[DataSize];
     OutputData  = new Queue <IQ>();
     Init();
 }
コード例 #4
0
        public override void Init()
        {
            IQGenerator = new Quad(CarrierFrequency, SamplingFreq, InitialPhase);
            SYNC_TYPE st = DoTimingCorrection ? SYNC_TYPE.GARDNER_DD | SYNC_TYPE.MUELLER_NDA | SYNC_TYPE.QAMLD_NDA | SYNC_TYPE.ZERODET_NDA : SYNC_TYPE.NONE;

            IQDemodulator = new IntegrateAndDump(st, BlockSize, BlockSize);
            IQDecoder     = new IQDecoder(1, Constellation.Bits_Simple_BPSK, Constellation.IQ_Simple_BPSK, EncodingType.NON_DIFF);

            FreqAdj     = 0;
            CorrRotate  = IQ.UNITY;
            OutputData  = new Queue <int>();
            FirstSymbol = true;
        }
コード例 #5
0
        public IntegrateAndDump(SYNC_TYPE sType, int interpDecimFactor, int activeSamples)
        {
            SyncType      = sType;
            DecimFactor   = interpDecimFactor;
            ActiveSamples = activeSamples;
            HalfPoint     = interpDecimFactor / 2;

            StartActive = interpDecimFactor - ActiveSamples;
            EndActive   = StartActive + ActiveSamples;

            StartHalfPoint = StartActive + HalfPoint;
            EndHalfPoint   = ActiveSamples / 2;

            OutputData = new Queue <IQ>();
            Init();
        }
コード例 #6
0
        public void StartCorrectionProcess(SYNC_TYPE sType, int numberOfSymbols, int currentIndex)
        {
            SyncType             = sType;
            NumSymbols           = numberOfSymbols;
            PreviousSlicingIndex = (DecimFactor - 1) - currentIndex;

            // If array is NOT same size - create it, otherwise re-use it
            if (numberOfSymbols * DecimFactor != DataSize)
            {
                DataSize   = numberOfSymbols * DecimFactor;
                DataBuffer = new IQ[DataSize];
            }
            else
            {
                Array.Clear(DataBuffer, 0, DataSize);
            }
            Init();
        }
コード例 #7
0
 public IntegrateAndDump(SYNC_TYPE sType, int interpDecimFactor) :
     this(sType, interpDecimFactor, interpDecimFactor)
 {
 }