Сквозная симуляция телекоманд CCSDS с ухудшениями и коррекциями RF

Этот пример показывает, как измерить вероятность битовой ошибки (BER) и количество блоков передачи линии связи (CLTU), потерянных в линии связи Консультативного комитета по системам космических данных (CCSDS). Пример добавляет радиочастотные (RF) эффекты переднего конца и аддитивный белый гауссов шум (AWGN) к ссылке.

Введение

CCSDS TC обычно используется для отправки команд от наземной станции к космическому аппарату. Приемники CCSDS TC подвергаются большим частотным ошибкам из-за неопределенности частоты в приемниках космических аппаратов и доплеровского сдвига частоты. Чтобы компенсировать большие смещения частоты, наземные станции выполняют развертку несущей по частоте или используют сбор на основе FFT в космическом аппарате во время сбора спутника. Этот пример показывает, как добавить смещение частоты 200 кГц к сигналу и использовать сбор на основе FFT для коррекции.

Для каждой точки отношения сигнал/шум (ОСШ) формы TC CCSDS, которые генерируются с CLTU и последовательностью приема, искажаются искажениями RF и передаются через канал AWGN. Пример показывает, как смоделировать эти искажения RF:

  • Несущая частота и смещение фазы

  • Смещение частоты и фазы поднесущей

  • Смещение фазы синхронизации

Приемник TC CCSDS компенсирует ослабления, и передаточные системы координат (TF) в CLTU восстанавливаются. Этот пример поддерживает схемы модуляции BPSK, PCM/PM/biphase-L и PCM/PSK/PM. Нарушения поднесущей применяются только со схемой модуляции PCM/PSK/PM. Эти схемы модуляции [8] используются, чтобы сгенерировать сигнал TC CCSDS в форме синфазной квадратурной (IQ) выборки основной полосы частот.

  • PCM/PSK/PM: Линейный закодированный сигнал в соответствии с форматом импульсно-кодовой модуляции (PCM) является фазовой манипуляцией (PSK), модулированной на поднесущей синусоидальной волны, а затем фазовой модуляции (PM) на остаточной несущей.

  • Кодированные данные PCM/PM/biphase-L: Biphase-L (Manchester) модулируются по фазе на остаточной несущей.

  • BPSK: Подавлена модуляция несущей при помощи данных без возврата к нулю (NRZ) на несущей.

Этот рисунок показывает шаги обработки, участвующие в восстановлении систем координат передачи.

Этот рисунок показывает операции приемника, которые включают компенсацию искажений RF, демодуляцию системы координат синхронизацию и декодирование передаточных систем координат.

Чтобы восстановить TF из полученной формы волны, выполните следующие шаги.

  1. Коррекция грубой частоты: Используйте основанный на БПФ алгоритм, чтобы оценить смещение частоты.

  2. Несущая частота и отслеживание фазы: Используйте цикл фазовой автоподстройки второго порядка (ФАП) [1] для отслеживания несущей.

  3. Поднесущая частота и отслеживание фазы: Используйте схему Костаса второго порядка [1] для отслеживания поднесущей.

  4. Отслеживание и демодуляция временных параметров символов: Используйте цикл отслеживания переходов данных второго порядка (DTTL) [3] для временной синхронизации и демодуляции символов [1].

  5. Кадровая синхронизация и декодирование: Используйте алгоритм, основанный на жестких символах, для кода Бозе Чаудхури Хокквенгема (BCH) и алгоритм, основанный на мягких символах, для кода с низкой плотностью проверки четности (LDPC).

Этот рисунок показывает шаги обработки, которые участвуют в системе координат синхронизации и декодировании TF [4].

  1. Поиск начальной последовательности: Когда канальное кодирование является BCH, входящий битовый поток просматривается по битам для шаблона начальной последовательности. Когда канальным кодированием является LDPC, входящий поток мягких символов просматривается с помощью мягкого коррелятора для шаблона начальной последовательности. Для BCH допустимое количество ошибок в начальной последовательности составляет 0 или 1 (в зависимости от режима декодирования). В режиме обнаружения ошибок допустимое количество ошибок в начальной последовательности составляет 0. В режиме исправления ошибок допустимое количество ошибок в начальной последовательности равняется 1.

  2. Декодирование: Когда обнаруживается стартовая последовательность, начинается операция декодирования. Кодовые слова (CW) декодируются и опционально удаляются.

  3. Отклонение CW или обнаружение хвостовой последовательности: Если у декодера есть какой-либо отказ декодирования или какие-либо некорректированные ошибки в декодированном выходе, данные из этого неудачного CW не передаются в операции подслоя ссылки передачи данных. CW отклоняется, и поиск начальной последовательности перезапускается. Если присутствует хвостовая последовательность, найдите хвостовую последовательность, чтобы обнаружить конец CLTU. Для декодирования BCH используется способ отбраковки CW. Для LDPC используйте корреляцию хвостовой последовательности или отказ CW. Когда хвостовая последовательность не используется, поиск начальной последовательности должен возобновиться в начале некорректированного CW. Когда используется хвостовая последовательность, поиск может возобновиться в конце некорректированного CW.

Область Строения

Сконфигурируйте количество выборок на символ и частоту дискретизации.

% Samples per symbol
% Due to the low symbol rate and 200 KHz frequency offset, a large value of
% 200 samples per symbol must be used as a default value with
% PCM/PSK/PM modulation. For BPSK and PCM/PM/biphase-L modulation, a
% default value of 20 samples per symbol is used (due to medium and high
% symbol rates).
sps = 20;
% Symbol rate
% The symbol rates specified in TC for each modulation are:
% - For PCM/PSK/PM modulation, the coded symbol rates are 4000, 2000, 1000,
%   500, 250, 125, 62.5, 31.25, 15.625, or 7.8125 symbols/s (as specified in
%   CCSDS TC recommendation [6]).
% - For PCM/PM/biphase-L modulation, the coded symbol rates are 8000, 16000,
%   32000, 64000, 128000, or 256000 symbols/s.
% - For BPSK modulation, the coded symbol rates are 1000, 2000, 4000, 8000,
%   16000, 32000, 64000, 128000, 256000, 512000, 1024000, or 2048000
%   symbols/s.
symbolRate = 2048000;

DTTL для синхронизации символов работает лучше с четным количеством выборок на символ. Для нечетного количества выборок на символ оценка ошибки синхронизации ненулевая при идеальном отслеживании смещения синхронизации. Ненулевая ошибка синхронизации уводит DTTL от идеального условия отслеживания.

Сконфигурируйте и отобразите параметры передачи TC CCSDS.

cfg = ccsdsTCConfig;
cfg.ChannelCoding = "BCH";
cfg.Modulation = "BPSK";
cfg.ModulationIndex = 1.2; % Applicable with PCM/PSK/PM and PCM/PM/biphase-L. Supported range in this example is [0.2 1.5].
if strcmpi(cfg.Modulation,"PCM/PSK/PM")
    cfg.SymbolRate = symbolRate;
end
cfg.SamplesPerSymbol = sps
cfg = 
  ccsdsTCConfig with properties:

       DataFormat: "CLTU"
    ChannelCoding: "BCH"
    HasRandomizer: 1
       Modulation: "BPSK"

Сконфигурируйте параметры приемника.

normLoopBWCarrier = 0.005;      % Normalized loop bandwidth for carrier synchronizer
normLoopBWSubcarrier = 0.00005; % Normalized loop bandwidth for subcarrier synchronizer 
normLoopBWSymbol = 0.005;       % Normalized loop bandwidth for symbol synchronizer

Чтобы уменьшить вклад шума в цикле, уменьшите шумовую полосу. Получение по запросу-в области значений смещения частоты также уменьшается из-за уменьшения полосы пропускания цикла. Когда вы используете небольшой цикл полосу пропускания в модулях синхронизации, приобретение занимает больше времени, чтобы сходиться. Чтобы улучшить эффективность при низких ОСШ, уменьшите цикл полосу пропускания и используйте более высокое значение для длины последовательности сбора. Если циклы не отслеживают смещения, рассмотрите увеличение полосы пропускания цикла, чтобы увеличить область значений получения по запросу-в.

Параметры симуляции

Этот пример выполняет две передачи пакетов для количества энергии на символ в точки отношения спектральной плотности степени шума (Es/No). Es/No может быть вектором или скаляром. Для статистически допустимых результатов BER запустите симуляцию для по крайней мере 1000 количества передач.

numBurst  = 2;                  % Number of burst transmissions
EsNodB = [8 8.5];               % Es/No in dB
SNRIn = EsNodB - 10*log10(sps); % SNR in dB from Es/No

Обработка Цепи

Искаженный сигнал TC CCSDS с последовательностью приема и одним CLTU обрабатывается за раз. Чтобы синхронизировать полученные данные и восстановить TF, эти шаги обработки происходят.

  1. Сгенерируйте биты в TC TF.

  2. Сгенерируйте сигнал TC для последовательности приема с переменными таковыми и нулями.

  3. Сгенерируйте сигнал TC CCSDS для TF со случайными битами.

  4. Применить формирование импульсов с помощью квадратного корня фильтра приподнятого косинуса (применимо только с модуляцией BPSK).

  5. Примените частоту поднесущей и смещение фазы (применимо только с модуляцией PCM/PSK/PM).

  6. Примените несущую частоту и смещение фазы.

  7. Примените смещение фазы синхронизации.

  8. Пропустите переданный сигнал через канал AWGN.

  9. Исправьте грубую частоту и смещение фазы.

  10. Фильтрация принимаемого сигнала.

  11. Исправьте частоту несущей и смещение фазы.

  12. Исправьте частоту поднесущей и смещение фазы (применимо только с модуляцией PCM/PSK/PM).

  13. Исправьте смещение синхронизации и демодуляцию символов.

  14. Обнаружение запуска CLTU и декодирование TF.

% Initialization of variables to store BER and number of CLTUs lost
bitsErr = zeros(length(SNRIn),1);
cltuErr = zeros(length(SNRIn),1);

% Square root raised cosine (SRRC) transmit and receive filter objects for BPSK
if strcmpi(cfg.Modulation,"BPSK")
    % SRRC transmit filter object
    txfilter = comm.RaisedCosineTransmitFilter;
    txfilter.RolloffFactor = 0.35;    % Filter rolloff
    txfilter.FilterSpanInSymbols = 6; % Filter span
    txfilter.OutputSamplesPerSymbol = sps;
    % SRRC receive filter object
    rxfilter = comm.RaisedCosineReceiveFilter;
    rxfilter.RolloffFactor = 0.35;    % Filter rolloff
    rxfilter.FilterSpanInSymbols = 6; % Filter span
    rxfilter.DecimationFactor = 1;
    rxfilter.InputSamplesPerSymbol = sps;
end

% Sample rate
if strcmpi(cfg.Modulation,"PCM/PM/biphase-L")
    % In CCSDS TC recommendation [6] section 2.2.7, coded symbol rates are
    % defined prior to biphase-L encoding.
    fs = 2*sps*symbolRate; % Biphase-L encoding has 2 symbols for each bit
else
    fs = sps*symbolRate;
end

for iSNR = 1:length(SNRIn)

    % Set the random number generator to default
    rng default

    % SNR value in the loop
    SNRdB = SNRIn(iSNR);

    % Initialization of error computing parameters
    totNumErrs = 0;
    numErr = 0;
    totNumBits = 0;
    cltuLost = 0;

    for iBurst = 1:numBurst

        % Acquisition sequence with 800 octets
        acqSeqLength = 6400;
        acqBits = repmat([0;1], 0.5*acqSeqLength, 1); % Alternating ones and zeros with zero as starting bit, starting bit can be either zero or one

        % CCSDS TC Waveform for acquisition sequence
        % Maximum subcarrier frequency offset specified in CCSDS TC is
        % ±(2*1e-4)*fsc, where fsc is the subcarrier frequency
        subFreqOffset = 3.2; % Subcarrier frequency offset in Hz
        subPhaseOffset = 4;  % Subcarrier phase offset in degrees
        % Frequency offset in Hz
        if strcmpi(cfg.Modulation,'PCM/PSK/PM')
            % Signal modulation along with subcarrier frequency and phase offset
            acqSymb = HelperCCSDSTCSubCarrierModulation(acqBits,cfg,subFreqOffset,subPhaseOffset); 
        else
            % Signal modulation as per the specified scheme in CCSDS telecommmand
            % Subcarrier impairments are not applicable with BPSK and PCM/PM/biphase-L
            cfg.DataFormat = 'acquisition sequence';
            acqSymb = ccsdsTCWaveform(acqBits,cfg);
            cfg.DataFormat = 'CLTU';
        end

        % CCSDS TC waveform for CLTU
        transferFramesLength = 640;                   % Number of octets in the transfer frame
        inBits = randi([0 1],transferFramesLength,1); % Bits in the TC transfer frame
        if strcmpi(cfg.Modulation,'PCM/PSK/PM')
            % Encoded bits after TC synchronization and channel coding sublayer operations
            [~,encBits] = ccsdsTCWaveform(inBits,cfg);
            % Signal modulation along with subcarrier frequency and phase offset
            waveSymb = HelperCCSDSTCSubCarrierModulation(encBits,cfg,subFreqOffset,subPhaseOffset);
        else
            waveSymb = ccsdsTCWaveform(inBits,cfg);
        end

        % CCSDS TC waveform with acquisition sequence and CLTU
        waveform = [acqSymb;waveSymb];

        % Transmit filtering for BPSK
        if strcmpi(cfg.Modulation,'BPSK')
            % Pulse shaping using SRRC filter
            data = [waveform;zeros(txfilter.FilterSpanInSymbols,1)];
            txSig = txfilter(data);
        else
            txSig = waveform;
        end
       
        % Add carrier frequency and phase offset
        freqOffset = 200000;  % Frequency offset in Hz
        phaseOffset = 20;     % Phase offset in degrees
        if fs <= (2*(freqOffset+cfg.SubcarrierFrequency)) && strcmpi(cfg.Modulation,'PCM/PSK/PM')
            error('Sample rate must be greater than twice the sum of frequency offset and subcarrier frequency');
        elseif fs <= (2*freqOffset)
            error('Sample rate must be greater than twice the frequency offset');
        end
        pfo = comm.PhaseFrequencyOffset('FrequencyOffset',freqOffset, ...
            'PhaseOffset',phaseOffset,'SampleRate',fs);
        txSigOffset = pfo(txSig);

        % Timing offset as an integer number of samples
        timingErr = 5;        % Timing error must be <= 0.4*sps
        delayedSig  = [zeros(timingErr,1);txSigOffset]; 

        % Pass the signal through an AWGN channel
        rxSig = awgn(complex(delayedSig),SNRdB,'measured',iBurst);

        % Coarse carrier frequency synchronization
        if strcmpi(cfg.Modulation,'PCM/PSK/PM')
             % Coarse carrier frequency synchronization for PCM/PSK/PM
            coarseSync = HelperCCSDSTCCoarseFrequencyCompensator('FrequencyResolution',100,...
                'SampleRate',fs);
        else
            % Coarse carrier frequency synchronization for BPSK and PCM/PSK/biphase-L
            coarseSync = comm.CoarseFrequencyCompensator( ...
                'Modulation','BPSK','FrequencyResolution',100, ...
                'SampleRate',fs);
        end
        
        % Compensation for coarse frequency offset
        [rxCoarse,estCoarseFreqOffset] = coarseSync(rxSig);
        
        % Receive filtering 
        if strcmpi(cfg.Modulation,'BPSK')
            % SRRC receive filtering for BPSK
            rxFiltDelayed = rxfilter(rxCoarse);
            rxFilt = rxFiltDelayed(rxfilter.FilterSpanInSymbols*sps+1:end);
        else
            % Low-pass filtering for PCM/PSK/PM and PCM/PSK/biphase-L
            % Filtering is done with a lowpass filter to reduce the effect of
            % noise to the carrier phase tracking loop
            b = fir1(40,0.3); % Coefficients for 40th-order lowpass filter with cutoff frequency = 0.3*fs/2
            rxFiltDelayed = filter(b,1,[rxCoarse;zeros(0.5*(length(b)-1),1)]);
            % Removal of filter delay
            rxFilt = rxFiltDelayed(0.5*(length(b)-1)+1:end);
        end
        
        % Fine frequency and phase correction
        if strcmpi(cfg.Modulation,'BPSK')
            fineSync = comm.CarrierSynchronizer('SamplesPerSymbol',sps, ...
                'Modulation','BPSK','NormalizedLoopBandwidth',normLoopBWCarrier);
        else
            fineSync = HelperCCSDSTCCarrierSynchronizer('SamplesPerSymbol', ...
                cfg.SamplesPerSymbol,'NormalizedLoopBandwidth',normLoopBWCarrier);
        end
        [rxFine,phErr] = fineSync(rxFilt);

        % Subcarrier frequency and phase correction
        if strcmpi(cfg.Modulation,'PCM/PSK/PM')
            subSync = HelperCCSDSTCSubCarrierSynchronizer('SamplesPerSymbol',sps, ...
                'NormalizedLoopBandwidth',normLoopBWSubcarrier);
            [rxSub,subCarPhErr] = subSync(real(rxFine));
        else
            rxSub = real(rxFine);
        end

        % Timing synchronization and symbol demodulation
        timeSync = HelperCCSDSTCSymbolSynchronizer('SamplesPerSymbol',sps, ...
            'NormalizedLoopBandwidth',normLoopBWSymbol);
        [rxSym,timingErr] = timeSync(rxSub);
         
        % Search for start sequence and bit recovery
        bits = HelperCCSDSTCCLTUBitRecover(rxSym,cfg,'Error Correcting',0.8);
        bits = bits(~cellfun('isempty',bits)); % Removal of empty cell array contents
       
        % Length of transfer frames with fill bits
        if strcmpi(cfg.ChannelCoding,'BCH')
            messageLength = 56;
        else
            messageLength = 0.5*cfg.LDPCCodewordLength;
        end
        frameLength = messageLength*ceil(length(inBits)/messageLength);
        
        if (isempty(bits)) || (length(bits{1})~= frameLength) ||(length(bits)>1)
            cltuLost = cltuLost + 1;
        else
            numErr = sum(abs(double(bits{1}(1:length(inBits)))-inBits));
            totNumErrs = totNumErrs + numErr;
            totNumBits = totNumBits + length(inBits);
        end
    end
    bitsErr(iSNR) = totNumErrs/totNumBits;
    cltuErr(iSNR) = cltuLost;

    % Display of bit error rate and number of CLTUs lost
    fprintf([['\nBER with ', num2str(SNRdB+10*log10(sps)) ],' dB Es/No : %1.2e\n'],bitsErr(iSNR));
    fprintf([['\nNumber of CLTUs lost with ', num2str(SNRdB+10*log10(sps)) ],' dB Es/No : %d\n'],cltuErr(iSNR));
end
BER with 8 dB Es/No : 0.00e+00
Number of CLTUs lost with 8 dB Es/No : 0
BER with 8.5 dB Es/No : 0.00e+00
Number of CLTUs lost with 8.5 dB Es/No : 0

Результаты BER

Когда каждая точка Es/No завершена, результаты BER для симуляции строятся. bitsErr - массив с измеренным BER для всех моделируемых точек Es/No. Рисунок показывает результат симуляции, которые получаются с 10 000 количеством передач и точками Es/No в области значений [4 7.5].

Дальнейшие исследования

Нормированная шумовая полоса и длина последовательности приема

Этот пример использует большое значение длины последовательности приема (800 октетов), чтобы улучшить эффективность синхронизаторов при низких значениях ОСШ. Эта таблица показывает нормированные значения полосы пропускания цикла и выборки на символ, используемые в симуляции с каждой схемой модуляции, для последовательности приема 800 октетов.

T = table({'BPSK';'PCM/PSK/PM';'PCM/PM/biphase-L'},[0.005; 0.0002; 0.0003], ...
          {'Not Applicable';0.00005;'Not Applicable'},[0.005; 0.0005; 0.0005], ...
          [20; 200; 20],[2048000; 4000; 256000],'VariableNames',{'Modulation','Carrier Synchronizer',...
          'Subcarrier Synchronizer','Symbol Synchronizer','Samples per symbol','Symbol rate'})
T=3×6 table
         Modulation         Carrier Synchronizer    Subcarrier Synchronizer    Symbol Synchronizer    Samples per symbol    Symbol rate
    ____________________    ____________________    _______________________    ___________________    __________________    ___________

    {'BPSK'            }            0.005             {'Not Applicable'}              0.005                   20             2.048e+06 
    {'PCM/PSK/PM'      }           0.0002             {[    5.0000e-05]}             0.0005                  200                  4000 
    {'PCM/PM/biphase-L'}           0.0003             {'Not Applicable'}             0.0005                   20              2.56e+05 

Этот пример можно использовать для дальнейшего изучения этих модулей синхронизации.

  • Синхронизация поставщика услуг: Чтобы улучшить точность оценки фазы, можно уменьшить шумовой вклад в циклы отслеживания, уменьшив нормализованную полосу пропускания. Уменьшение полосы пропускания цикла уменьшает область значений получения по запросу-в, и для сходимости захвата требуется больше времени.

  • Синхронизация поднесущей: Можно построить график предполагаемого смещения поднесущей, чтобы идентифицировать более точный цикл полосу пропускания. Чтобы помочь улучшить точность оценки частоты поднесущей, можно увеличить частоту дискретизации и ОСШ.

  • Синхронизация символов: DTTL для синхронизации символов хорошо работает при большем количестве выборок на символ. Когда вы увеличиваете выборки на символ, разрешение увеличивается, и эффективность DTTL улучшается. Слишком много выборок на символ может уменьшить ОСШ и повлиять на эффективность. Если ОСШ меньше -15 дБ (из-за большого количества выборок на символ), эффективность циклов отслеживания затронута.

Для любого цикла на основе PLL, чтобы работать с очень низким ОСШ, шумовая полоса должна быть очень низкой. Эта низкая полоса цикла уменьшает получение по запросу-в области значений. Для CLTU с кодированием канала LDPC, если количество потерянных CLTU велико, можно уменьшить threshold значение для обнаружения начальной последовательности в вспомогательной функции HelperCCSDSTCCLTUBitRecover. Можно также попробовать улучшить результаты BER, выбрав только CLTU с очень высокой нормализованной метрикой корреляции с начальной последовательностью. Чтобы максимизировать обнаружение системы координат и минимизировать ложное предупреждение, в этом примере в качестве порога обнаружения используется 0,8. Чтобы уменьшить ложное предупреждение, можно увеличить пороговое значение обнаружения. Если вы увеличиваете пороговое значение обнаружения, скорость обнаружения системы координат уменьшается.

Смещение частоты поднесущей с PCM/PSK/PM

Максимальное смещение частоты поднесущей, заданное в рекомендации CCSDS TC [6], является ±(2×10-4)fsc, где fsc - частота телекоммуникационной поднесущей. Необходимо учитывать смещение частоты максимум 3,2 Гц или 1,6 Гц с поднесущей синусоиды 16 кГц или 8 кГц, соответственно. Можно построить график предполагаемого смещения частоты поднесущей, чтобы проанализировать эффективность отслеживания поднесущей. Когда синхронизатор сходится, среднее значение оценки приблизительно равно значению смещения входной поднесущей частоты 3,2 Гц.

if strcmpi(cfg.Modulation,'PCM/PSK/PM')
    estSubCarFreqOffset = diff(subCarPhErr)*fs/(2*pi);
    rmean = cumsum(estSubCarFreqOffset)./(1:length(estSubCarFreqOffset))';
    plot(rmean)
    xlabel('Symbols')
    ylabel('Estimated Subcarrier Frequency Offset (Hz)')
    title('PCM/PSK/PM: Subcarrier Frequency Offset')
    grid on
end

Приложение

В примере используются следующие вспомогательные функции:

Библиография

  1. Дж. Виля-Вальс, М. Наварро, П. Клозас и М. Бертинелли, «Проблемы синхронизации в дальней космической связи», журнал IEEE Aerospace and Electronic Systems Magazine, vol. 34, no. 1, pp. 16-27, Jan. 2019.

  2. M. Baldi et al., «The State-of-the-art space mission telecommand receivers», IEEE Aerospace and Electronic Systems Magazine, vol. 32, no. 6, pp. 4-15, June 2017.

  3. S. Million and S. Hinedi, «Эффекты плотности перехода символов на эффективность цикла отслеживания перехода данных при низких коэффициентах сигнал-шум», IEEE International Conference on Communications ICC '95, Сиэтл, WA, USA, 1995, pp. 1036-1040 vol.2.

  4. Синхронизация TC и кодирование канала. Рекомендация по стандартам системы космических данных, CCSDS 231.0-B-3. Синяя книга. Выпуск 3. Вашингтон, округ Колумбия: CCSDS, Сентябрь 2017 года.

  5. Синхронизация TC и кодирование канала. Сводные данные концепции и обоснования. CCSDS 230.1-G-2. Зеленая книга. Выпуск 2. Вашингтон, округ Колумбия: CCSDS, ноябрь 2012 года.

  6. Системы радиочастоты и модуляции - Часть 1. Земные станции и космические аппараты. CCSDS 401.0-B-29. Синяя книга. Выпуск 29. Вашингтон, округ Колумбия: CCSDS, март 2019.

  7. Майкл Райс, цифровые коммуникации - подход в дискретном времени. Нью-Йорк: Prentice Hall, 2008.

  8. Нгуен, Т. М., У. Л. Мартин и Хен-Гул Йе. «Необходимая полоса пропускания, нежелательная эмиссия и Степень данной Эффективности для Невязки и подавленных несущих систем - сравнительное исследование». Транзакции IEEE по электромагнитной совместимости 37, № 1 (февраль 1995 года): 34-50. https://doi.org/10.1109/15.350238.

См. также

Объекты

Функции

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте