Пример #1
0
            void FillSyncPatterns()
            {
                IQEncoder     Enc       = new IQEncoder(BITS_PER_SYMBOL, Constellation.Table_1_to_1, Constellation.ITable_8PSK, Constellation.QTable_8PSK, EncodingType.SCRAMBLE_ADD);
                SyncScrambler scrambler = new SyncScrambler();

                int SyncSymbolCounter = 0;

                foreach (int BitChanSymb in SyncPreamble)
                {
                    int[] sequence = ChanSymbToTribit[BitChanSymb];
                    scrambler.Init();
                    // repeat sequence 4 times
                    for (int i = 0; i < 4; i++)
                    {
                        foreach (int tribit in sequence)
                        {
                            Enc.Process(tribit, scrambler.DataNext(), SCRAMBLE_MASK, out PreamblePattern[SyncSymbolCounter]);
                            SyncSymbolCounter++;
                        }
                    }
                }

                IQ[] symb75 = new IQ[32];
                foreach (int[] sequence in ChanSymbToTribit)
                {
                    SyncSymbolCounter = 0;
                    scrambler.Init();
                    for (int i = 0; i < 4; i++)
                    {
                        foreach (int tribit in sequence)
                        {
                            Enc.Process(tribit, scrambler.DataNext(), SCRAMBLE_MASK, out symb75[SyncSymbolCounter]);
                            SyncSymbolCounter++;
                        }
                    }
                    SymbDetector.AddTarget(symb75);
                }
            }
Пример #2
0
            int SendSyncString(int[] syncChanSymbArray)
            {
                int NumSent = 0;

                foreach (int BitChanSymb in syncChanSymbArray)
                {
                    int[] sequence = ChanSymbToTribit[BitChanSymb];
                    // repeat sequence 4 times
                    for (int j = 0; j < 4; j++)
                    {
                        foreach (int tribit in sequence)
                        {
                            SendSymbol(tribit, PreambleScrambler.DataNext());
                            NumSent++;
                        }
                    }
                }
                return(NumSent);
            }