В этом примере показано, как измерить частоту ошибок в битах (BER) и частоту ошибок в пакетах (PER) для одной линии связи с расширенным (DVB-S2X) цифровым широковещательным спутником второго поколения, которая имеет постоянное кодирование и модуляцию для регулярных кадров. В этом примере подробно описаны стратегии синхронизации символов и несущей, в которых подчеркивается, как оценивать нарушения RF-интерфейса в условиях сильного шума. Однопотоковый сигнал добавляет нарушения RF-интерфейса и затем пропускает сигнал через аддитивный канал белого гауссова шума (AWGN).
Стандарт DVB-S2X, являющийся расширением спецификации DVB-S2, расширяет поддержку, обеспечиваемую для применения в основных DVB-S2, и повышает общую эффективность по сравнению со спутниковыми линиями связи. Стандарт DVB-S2X поддерживает следующие дополнительные функции:
Большая детализация модуляции и кодовых скоростей
Меньшие возможности свертывания фильтра для более эффективного использования полосы пропускания
Комбинации, оптимизированные для линейных и нелинейных каналов
Дополнительные возможности скремблирования для критических сценариев взаимных помех
DVB-S2X обслуживает множество различных целевых приложений, и приемники подвергаются различным типам и уровням радиочастотных нарушений на основе используемого приложения. В этом примере описываются аспекты синхронизации приемника DVB-S2X, используемого для основных DVB-S2 приложений. Пример поддерживает более новые скорости кодирования, более высокие схемы модуляции, такие как 64, 128 и 256 APSK, и меньшие варианты скатывания фильтра.
ETSI EN 302 307-2 Раздел 6 Таблица 20a и Таблица 20c [1] суммируют требования к характеристикам Quasi-Error-Free (QEF) по каналу AWGN для различных схем модуляции и кодовых скоростей. Рабочий диапазон Es/No для различных режимов передачи может рассматриваться как + 3 или -2 дБ от точки Es/No, где наблюдаются характеристики QEF. Поскольку рабочий диапазон Es/No низок, стратегии синхронизации временной синхронизации несущих и символов являются сложными проблемами проектирования.
На этой схеме представлен пример рабочего процесса.

Пример обрабатывает 30 кадров физического уровня (PL) данных с Es/No, установленным в 25 дБ, и затем вычисляет BER и PER. Смещение несущей частоты, смещение тактовой частоты дискретизации и ухудшение фазового шума применяются к модулированному сигналу, и AWGN добавляется к сигналу.
В приемнике после согласованной фильтрации выполняются операции синхронизации и восстановления несущей для восстановления переданных данных. Для извлечения кадров PL искаженная форма сигнала обрабатывается посредством различных стратегий синхронизации и восстановления несущей. Для декодирования кадров данных параметры передачи физического уровня, такие как схема модуляции, кодовая скорость и тип кадра FEC, восстанавливаются из заголовка PL. Для регенерации входного битового потока декодируется заголовок основной полосы частот (BB).
Поскольку стандарт DVB-S2X поддерживает пакетированные и непрерывные режимы передачи, BB-кадр может быть либо конкатенацией пакетов пользователя, либо потоком битов. BB-заголовок восстанавливается для определения режима передачи. Если BB-кадр является конкатенацией пользовательских пакетов, то состояние проверки циклическим избыточным кодом (CRC) каждого пакета возвращается вместе с декодированными битами, и затем измеряются PER и BER.
На этих блок-схемах показаны рабочие процессы синхронизации и восстановления входных битов.


В этом примере загружается MAT-файл с DVB-S2X матрицами четности LDPC. Если MAT-файл недоступен по пути MATLAB ®, используйте эти команды для загрузки и распаковки MAT-файла.
if ~exist('dvbs2xLDPCParityMatrices.mat','file') if ~exist('s2xLDPCParityMatrices.zip','file') url = 'https://ssd.mathworks.com/supportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip'; websave('s2xLDPCParityMatrices.zip',url); unzip('s2xLDPCParityMatrices.zip'); end addpath('s2xLDPCParityMatrices'); end
Укажите cfgDVBS2X структура для определения параметров конфигурации передачи DVB-S2X. PLSDecimalCode 129 и 131 не поддерживаются, поскольку они используются для генерации кадров VL-SNR. Поддерживаются только обычные кадры.
cfgDVBS2X.StreamFormat = "TS"; cfgDVBS2X.PLSDecimalCode = 191; % 64APSK 7/9 with pilots cfgDVBS2X.DFL = 50128; cfgDVBS2X.ScalingMethod = "Unit average power"; cfgDVBS2X.RolloffFactor = 0.35; cfgDVBS2X.SamplesPerSymbol = 2
cfgDVBS2X = struct with fields:
StreamFormat: "TS"
PLSDecimalCode: 191
DFL: 50128
ScalingMethod: "Unit average power"
RolloffFactor: 0.3500
SamplesPerSymbol: 2
Стандарт DVB-S2X поддерживает гибкие полосы пропускания каналов. Используйте типичную полосу пропускания канала, например 36 МГц. Полоса пропускания канала может изменяться. Алгоритм грубой частотной синхронизации, реализованный в этом примере, может отслеживать смещения несущей частоты до 11% от скорости входного символа. Скорость передачи символов вычисляется как B/( 1 + R), где B - ширина полосы пропускания канала, а R - коэффициент свертывания фильтра передачи. Алгоритмы, реализованные в этом примере, могут корректировать смещение тактового сигнала выборки до 10 ppm.
simParams.sps = cfgDVBS2X.SamplesPerSymbol; % Samples per symbol simParams.numFrames = 30; % Number of frames to be processed simParams.chanBW = 36e6; % Channel bandwidth in Hertz simParams.cfo = 2e6; % Carrier frequency offset in Hertz simParams.sco = 2; % Sampling clock offset in parts per million simParams.phNoiseLevel ="Low"; % Phase noise level provided as 'Low', 'Medium', or 'High' simParams.EsNodB = 25; % Energy per symbol to noise ratio in decibels
Эта таблица определяет маску фазового шума (dBc/Гц), используемую для генерации фазового шума, применяемого к передаваемому сигналу. Эти шумовые маски взяты из ETSI TR 102 376-1 Раздел 4.3.2.1.3 Рисунок 12 [2].

Для создания DVB-S2X формы сигнала используйте HelperDVBS2XRxInputGenerate вспомогательная функция с помощью simParams и cfgDVBS2X структуры в качестве входных данных. Функция возвращает сигнал данных, переданные и принятые формы сигналов, параметры конфигурации физического уровня в виде структуры и структуру обработки приемника. Принятый сигнал ухудшается с помощью несущей частоты, временных фазовых сдвигов и фазового шума и затем проходит через канал AWGN. Структура параметров обработки приемника, rxParams, включает в себя опорные поля пилот-сигнала, индексы пилот-сигнала, счетчики и буферы. Постройте график совокупности принятых символов и спектра переданных и принятых сигналов.
[data,txOut,rxIn,phyConfig,rxParams] = HelperDVBS2XRxInputGenerate(cfgDVBS2X,simParams); disp(phyConfig)
FECFrame: "normal"
ModulationScheme: "64APSK"
LDPCCodeIdentifier: "7/9"
% Received signal constellation plot rxConst = comm.ConstellationDiagram('Title','Received data', ... 'XLimits',[-1 1],'YLimits',[-1 1], ... 'ShowReferenceConstellation',false, ... 'SamplesPerSymbol',simParams.sps); rxConst(rxIn(1:length(txOut)))

% Transmitted and received signal spectrum visualization Rsymb = simParams.chanBW/(1 + cfgDVBS2X.RolloffFactor); Fsamp = Rsymb*simParams.sps; specAn = dsp.SpectrumAnalyzer('SampleRate',Fsamp, ... 'ChannelNames',{'Transmitted waveform','Received waveform'}, ... 'ShowLegend',true); specAn([txOut,rxIn(1:length(txOut))]);

В приемнике синхронизация по времени символа выполняется на принятых данных, а затем за ней следует кадровая синхронизация. Алгоритмы приемника включают в себя алгоритмы грубой и тонкой коррекции ухудшения частоты. Алгоритм оценки несущей частоты может отслеживать смещения несущей частоты до 20% от входной скорости передачи символов. Грубая оценка частоты, реализованная как контур подстройки частоты (FLL), уменьшает сдвиг частоты до уровня, который может отслеживать устройство точной оценки частоты. Предпочтительная полоса пропускания контура для синхронизации символов и грубой компенсации частоты зависит от настройки Es/No.
Блок из 36 пилотов повторяется каждые 1476 символов. Оценка грубой частотной ошибки использует 34 из 36 пилот-символов. Соотношение используемых пилот-сигналов на блок (34) и периодичности пилот-сигналов (1476) составляет 0,023. Использование значения 0,023 в качестве коэффициента масштабирования для полосы пропускания контура синхронизатора грубой частоты является предпочтительным.
При уменьшении уменьшите пропускную способность контура для фильтрации большего количества шумов во время сбора данных. Количество кадров, необходимое для схождения синхронизатора символов и грубого FLL, зависит от настройки полосы пропускания контура.
При синхронизации кадров используется заголовок PL. Поскольку синхронизация несущей осуществляется с помощью данных, кадровая синхронизация должна точно обнаруживать начало кадра. играет решающую роль в определении точности кадровой синхронизации. Когда модулированные кадры QPSK восстанавливаются при значениях Es/No ниже 3 дБ, синхронизация кадров должна выполняться на нескольких кадрах для точного обнаружения.
Точная оценка частоты может отслеживать смещения несущей частоты до 4% от входной скорости передачи символов. Тонкая оценка частоты должна обрабатывать множество контрольных блоков для того, чтобы остаточный сдвиг несущей частоты был уменьшен до уровней, приемлемых для алгоритма фазовой оценки. Алгоритм оценки фазы может обрабатывать ошибку остаточной несущей частоты менее 0,02% от скорости входного символа.
Эти настройки назначены в rxParams структура для обработки синхронизации. Дополнительные сведения о том, как задать эти параметры для низких значений Es/No, см. в разделе Дальнейшие исследования.
rxParams.carrSyncLoopBW = 1e-2*0.023; % Coarse frequency estimator loop bandwidth normalized by symbol rate rxParams.symbSyncLoopBW = 8e-3; % Symbol timing synchronizer loop bandwidth normalized by symbol rate rxParams.symbSyncLock = 8; % Number of frames required for symbol timing error convergence rxParams.frameSyncLock = 1; % Number of frames required for frame synchronization rxParams.coarseFreqLock = 5; % Number of frames required for coarse frequency acquisition rxParams.fineFreqLock = 4; % Number of frames required for fine frequency estimation % Total frames taken for symbol timing and coarse frequency lock to happen rxParams.initialTimeFreqSync = rxParams.symbSyncLock + rxParams.frameSyncLock + rxParams.coarseFreqLock; % Total frames used for overall synchronization rxParams.totalSyncFrames = rxParams.initialTimeFreqSync + rxParams.fineFreqLock; % Create time frequency synchronization System object by using % HelperDVBS2TimeFreqSynchronizer helper object timeFreqSync = HelperDVBS2TimeFreqSynchronizer( ... 'CarrSyncLoopBW',rxParams.carrSyncLoopBW, ... 'SymbSyncLoopBW',rxParams.symbSyncLoopBW, ... 'SamplesPerSymbol',simParams.sps, ... 'DataFrameSize',rxParams.xFecFrameSize, ... 'SymbSyncTransitFrames',rxParams.symbSyncLock, ... 'FrameSyncAveragingFrames',rxParams.frameSyncLock); % Initialize error computing parameters [numFramesLost,pktsErr,bitsErr,pktsRec] = deal(0); % Initialize data indexing variables stIdx = 0; dataSize = rxParams.inputFrameSize; plFrameSize = rxParams.plFrameSize; dataStInd = rxParams.totalSyncFrames + 1; isLastFrame = false; symSyncOutLen = zeros(rxParams.initialTimeFreqSync,1);
Чтобы синхронизировать принятые данные и восстановить входной битовый поток, искаженные DVB-S2X выборки формы сигнала обрабатываются по одному кадру за раз, следуя этим шагам.
Примените согласованную фильтрацию, выводя со скоростью две выборки на символ.
Примените синхронизацию синхронизации символов с помощью детектора ошибок синхронизации Гарднера с выходом, генерируемым на символьной скорости. Gardner TED не поддерживает передачу данных, поэтому она выполняется до синхронизации несущей.
Применение кадровой синхронизации для определения начала кадра и определения положения пилота.
Оценка и применение грубой коррекции смещения частоты.
Оценка и применение точной коррекции смещения частоты.
Оценка и компенсация остаточной несущей частоты и фазового шума.
Декодирование заголовка PL и вычисление параметров передачи.
Демодуляция и декодирование кадров PL.
Выполните проверку CRC для заголовка BB, если проверка пройдет успешно, восстановите параметры заголовка.
Регенерация входного потока данных или пакетов из кадров BB.
while stIdx < length(rxIn) % Use one DVB-S2X PL frame for each iteration. endIdx = stIdx + rxParams.plFrameSize*simParams.sps; % In the last iteration, all the remaining samples in the received % waveform are considered. isLastFrame = endIdx > length(rxIn); endIdx(isLastFrame) = length(rxIn); rxData = rxIn(stIdx+1:endIdx); % After coarse frequency offset loop is converged, the FLL works with a reduced loop bandwidth. if rxParams.frameCount < rxParams.initialTimeFreqSync coarseFreqLock = false; else coarseFreqLock = true; end % Retrieve the last frame samples. if isLastFrame resSymb = plFrameSize - length(rxParams.cfBuffer); resSampCnt = resSymb*rxParams.sps - length(rxData); if resSampCnt >= 0 % Inadequate number of samples to fill last frame syncIn = [rxData; zeros(resSampCnt, 1)]; else % Excess samples are available to fill last frame syncIn = rxData(1:resSymb*rxParams.sps); end else syncIn = rxData; end % Apply matched filtering, symbol timing synchronization, frame % synchronization, and coarse frequency offset compensation. [coarseFreqSyncOut,syncIndex,phEst] = timeFreqSync(syncIn,coarseFreqLock); if rxParams.frameCount <= rxParams.initialTimeFreqSync symSyncOutLen(rxParams.frameCount) = length(coarseFreqSyncOut); if any(abs(diff(symSyncOutLen(1:rxParams.frameCount))) > 5) error('Symbol timing synchronization failed. The loop will not converge. No frame will be recovered. Update the symbSyncLoopBW parameter according to the EsNo setting for proper loop convergence.'); end end rxParams.syncIndex = syncIndex; % The PL frame start index lies somewhere in the middle of the chunk being processed. % From fine frequency estimation onwards, the processing happens as a PL frame. % A buffer is used to store symbols required to fill one PL frame. if isLastFrame fineFreqIn = [rxParams.cfBuffer; coarseFreqSyncOut]; else fineFreqIn = [rxParams.cfBuffer; coarseFreqSyncOut(1:rxParams.syncIndex-1)]; end % Estimate the fine frequency error by using the HelperDVBS2FineFreqEst % helper function. % Add 1 to the conditional check because the buffer used to get one PL frame introduces a delay of one to the loop % count. if (rxParams.frameCount > rxParams.initialTimeFreqSync + 1) && ... (rxParams.frameCount <= rxParams.totalSyncFrames + 1) rxParams.fineFreqCorrVal = HelperDVBS2FineFreqEst( ... fineFreqIn(rxParams.pilotInd),rxParams.numPilotBlks, ... rxParams.refPilots,rxParams.fineFreqCorrVal); end if rxParams.frameCount >= rxParams.totalSyncFrames + 1 fineFreqLock = true; else fineFreqLock = false; end if fineFreqLock % Normalize the frequency estimate by the input symbol rate % freqEst = angle(R)/(pi*(N+1)) where N (18) is the number of elements % used to compute the mean of auto correlation (R) in % HelperDVBS2FineFreqEst. freqEst = angle(rxParams.fineFreqCorrVal)/(pi*(19)); % Generate the symbol indices using frameCount and plFrameSize. % Subtract 2 from the rxParams.frameCount because the buffer used to get one % PL frame introduces a delay of one to the count. phErr = exp(-1j*2*pi*freqEst*((rxParams.frameCount-2)*plFrameSize:(rxParams.frameCount-1)*plFrameSize-1)); fineFreqOut = fineFreqIn.*phErr(:); % Estimate the phase error estimation by using the HelperDVBS2PhaseEst % helper function. [phEstRes,rxParams.prevPhaseEst] = HelperDVBS2PhaseEst( ... fineFreqOut(rxParams.pilotInd),rxParams.refPilots,rxParams.prevPhaseEst); % Compensate for the residual frequency and phase offset by using % the % HelperDVBS2PhaseCompensate helper function. % Use two frames for initial phase error estimation. Starting with the % second frame, use the phase error estimates from the previous frame and % the current frame in compensation. % Add 3 to the frame count comparison to account for delays: One % frame due to rxParams.cfBuffer delay and two frames used for phase % error estimate. if rxParams.frameCount >= rxParams.totalSyncFrames + 3 phaseCompOut = HelperDVBS2PhaseCompensate(rxParams.ffBuffer, ... rxParams.pilotEst,phEstRes(2),rxParams.pilotInd); end rxParams.ffBuffer = fineFreqOut; rxParams.pilotEst = phEstRes; % The phase compensation on the data portion is performed by % interpolating the phase estimates computed on consecutive pilot % blocks. The second phase estimate is not available for the data % portion after the last pilot block in the last frame. Therefore, % the slope of phase estimates computed on all pilot blocks in the % last frame is extrapolated and used to compensate for the phase % error on the final data portion. if isLastFrame pilotBlkLen = 36; % Symbols pilotBlkFreq = 1476; % Symbols avgSlope = mean(diff(phEstRes(2:end))); chunkLen = rxParams.plFrameSize - rxParams.pilotInd(end) + ... rxParams.pilotInd(pilotBlkLen); estEndPh = phEstRes(end) + avgSlope*chunkLen/pilotBlkFreq; phaseCompOut1 = HelperDVBS2PhaseCompensate(rxParams.ffBuffer, ... rxParams.pilotEst,estEndPh,rxParams.pilotInd); end end % Recover the input bit stream. if rxParams.frameCount >= rxParams.totalSyncFrames + 3 isValid = true; if isLastFrame syncOut = [phaseCompOut;phaseCompOut1]; else syncOut = phaseCompOut; end else isValid = false; syncOut = []; end % Update the buffers and counters. rxParams.cfBuffer = coarseFreqSyncOut(rxParams.syncIndex:end); rxParams.syncIndex = syncIndex; rxParams.frameCount = rxParams.frameCount + 1; if isValid % Data valid signal % Decode the PL header by using the HelperDVBS2XPLHeaderRecover helper % function. Start of frame (SOF) is 26 symbols which are discarded % before header decoding. They are only required for frame % synchronization. rxPLSCode = syncOut(1:90); % First 90 symbols of frame is PL header [plsDecCode, phyParams] = HelperDVBS2XPLHeaderRecover(rxPLSCode,rxParams.s2xStatus); % Validate the decoded PL header. if plsDecCode ~= cfgDVBS2X.PLSDecimalCode fprintf('%s\n','PL header decoding failed') else % Demodulation and decoding for frameCnt = 1:length(syncOut)/rxParams.plFrameSize rxFrame = syncOut((frameCnt-1)*rxParams.plFrameSize+1:frameCnt*rxParams.plFrameSize); % Estimate noise variance by using % HelperDVBS2NoiseVarEstimate helper function. nVar = HelperDVBS2NoiseVarEstimate(rxFrame,rxParams.pilotInd,rxParams.refPilots,rxParams.normFlag); % The data begins at symbol 91 (after the header symbols). rxDataFrame = rxFrame(91:end); % Recover the BB frame by using HelperDVBS2XBBFrameRecover % helper function. rxBBFrame = HelperDVBS2XBBFrameRecover(rxDataFrame,phyParams,rxParams.plScramblingIndex, ... rxParams.numPilotBlks,nVar,false); % Recover the input bit stream by using % HelperDVBS2StreamRecover helper function. if strcmpi(cfgDVBS2X.StreamFormat,'GS') && ~rxParams.UPL [decBits,isFrameLost] = HelperDVBS2StreamRecover(rxBBFrame); if ~isFrameLost && length(decBits) ~= dataSize isFrameLost = true; end else [decBits,isFrameLost,pktCRC] = HelperDVBS2StreamRecover(rxBBFrame); if ~isFrameLost && length(decBits) ~= dataSize isFrameLost = true; pktCRC = zeros(0,1,'logical'); end % Compute the packet error rate for TS or GS packetized % mode. pktsErr = pktsErr + numel(pktCRC) - sum(pktCRC); pktsRec = pktsRec + numel(pktCRC); end if ~isFrameLost ts = sprintf('%s','BB header decoding passed.'); else ts = sprintf('%s','BB header decoding failed.'); end % Compute the number of frames lost. CRC failure of % baseband header is considered a frame loss. numFramesLost = isFrameLost + numFramesLost; fprintf('%s(Number of frames lost = %1d)\n',ts,numFramesLost) % Compute the bits in error. if isLastFrame && ~isFrameLost bitsErr = bitsErr + sum(data((dataStInd-1)*dataSize+1:dataStInd*dataSize) ~= decBits); else if ~isFrameLost bitsErr = bitsErr + sum(data((dataStInd-1)*dataSize+1:dataStInd*dataSize) ~= decBits); end end dataStInd = dataStInd + 1; end end end stIdx = endIdx; end
BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0) BB header decoding passed.(Number of frames lost = 0)
Постройте график совокупности синхронизированных данных и вычислите BER и PER.
% Synchronized data constellation plot syncConst = comm.ConstellationDiagram('Title','Synchronized data', ... 'XLimits',[-1.7 1.7],'YLimits',[-1.7 1.7], ... 'ShowReferenceConstellation',false); syncConst(syncOut)

% Error metrics display % For GS continuous streams if strcmpi(cfgDVBS2X.StreamFormat,'GS') && ~rxParams.UPL if (simParams.numFrames-rxParams.totalSyncFrames == numFramesLost) fprintf("All frames are lost. No bits are retrieved from BB frames.") else ber = bitsErr/((dataStInd-rxParams.totalSyncFrames)*dataSize); fprintf('BER : %1.2e\n',ber) end else % For GS and TS packetized streams if pktsRec == 0 fprintf("All frames are lost. No packets are retrieved from BB frames.") else if strcmpi(cfgDVBS2X.StreamFormat,'TS') pktLen = 1504; else pktLen = cfgDVBS2X.UPL; % UP length including sync byte end ber = bitsErr/(pktsRec*pktLen); per = pktsErr/pktsRec; fprintf('PER: %1.2e\n',per) fprintf('BER: %1.2e\n',ber) end end
PER: 0.00e+00
BER: 0.00e+00
Для моделирования BER в AWGN, предполагая идеальную синхронизацию, используйте HelperDVBS2XBitRecover вспомогательная функция для оценки производительности приемника. См. примеры, приведенные в разделе M-help документа HelperDVBS2XBitRecover функция помощника. Для получения подробной информации о настройке параметров синхронизации rxParams для других cfgDVBS2X и simParams параметры, см. в разделе «Дальнейшее исследование» в Сквозном моделировании DVB-S2 с повреждениями и исправлениями RF о том, как настроить параметры синхронизации rxParams для других cfgDVBS2X и simParams настройки. Для схем с более высокой модуляцией, таких как 64 APSK и выше, эта таблица показывает типичное количество кадров, необходимых для сходимости цикла синхронизации символа.

В примере используются следующие вспомогательные функции:
HelperDVBS2XRxInputGenerate.m: Формирование отсчетов формы сигнала DVB-S2X, искаженных с нарушением РЧ и структурой параметров для обработки приемником
HelperDVBS2PhaseNoise.m: Произведите образцы шума фазы для различных масок шума фазы DVB-S2X и примените его к входному сигналу
HelperDVBS2TimeFreqSynchronizer.m: Выполнение согласованной фильтрации, синхронизации символов, кадровой синхронизации и грубой оценки и коррекции частоты
HelperDVBS2FrameSync.m: Выполните синхронизацию кадров и определите начало кадра
HelperDVBS2FineFreqEst.m: Оценка точного смещения частоты
HelperDVBS2PhaseEst.m: Оценка смещения фазы несущей
HelperDVBS2PhaseCompensate.m: Выполнить компенсацию фазы несущей
HelperDVBS2XPLHeaderRecover.m: Демодуляция и декодирование заголовка PL для восстановления параметров передачи
HelperDVBS2NoiseVarEstimate.m Оценка дисперсии шума принятых данных
HelperDVBS2XBBFrameRecover.m: Выполнить дескремблирование PL, демодуляцию, декодирование и восстановление кадра BB из кадра PL
HelperDVBS2XDemapper.m: Выполнение мягкой демодуляции для всех схем модуляции на основе DVB-S2X
HelperDVBS2XLDPCDecode.m: Выполнение декодирования LDPC для всех форматов кадров LDPC на основе DVB-S2X и скорости передачи кода
HelperDVBS2XBCHDecode.m: Выполнение декодирования BCH для всех форматов кадров и скоростей кодирования на основе DVB-S2X
HelperDVBS2StreamRecover.m: Проверка CRC заголовка BB и восстановление входного потока из кадра BB на основе параметров заголовка
HelperDVBS2XBitRecover.m: Выполнить демодуляцию и декодирование заголовка PL, дескремблирование PL, демодуляцию, декодирование и восстановление кадра BB. Проверьте CRC заголовка BB и восстановите входной поток из кадра BB.
Стандарт ETSI EN 302 307-2 V1.1.1 (2015-11). цифровое видеовещание (DVB); структура кадров второго поколения, системы канального кодирования и модуляции для вещания, интерактивных услуг, сбора новостей и других широкополосных спутниковых приложений; Часть 2: DVB-S2 расширения (DVB-S2X).
Стандарт ETSI TR 102 376-2 V1.2.1 (2015-11). цифровое видеовещание (DVB); Руководство по внедрению системы второго поколения для вещания, интерактивных услуг, сбора новостей и других широкополосных спутниковых приложений; Часть 2: S2 расширения (DVB-S2X).
Стандарт ETSI TR 102 376-1 V1.2.1 (2015-11). цифровое видеовещание (DVB); Руководство по внедрению системы второго поколения для вещания, интерактивных услуг, сбора новостей и других широкополосных спутниковых приложений (DVB-S2).
Менгали, Умберто и Альдо Н. Д'Андреа. Методы синхронизации для цифровых приемников. Нью-Йорк: Пленум Press,1997.
Э. Казини, Р. Де Гауденци и Альберто Гинези. «DVB‐S2 разработка модемных алгоритмов и их производительность в обычных спутниковых каналах». Международный журнал спутниковой связи и сетей 22, № 3 (2004 год): 281-318.
Майкл Райс, Digital Communications: дискретно-временной подход. Нью-Йорк: Прентис Холл, 2008.