DVB-S.2 ссылка, включая кодирование LDPC в Simulink

Эта модель показывает современную схему кодирования канала, используемую в стандарте цифрового видеовещания второй генерации (DVB-S.2), который развертывается DIRECTV в Соединенных Штатах. Схема кодирования основана на конкатенации кодов LDPC (Low-Density Parity-Check) и BCH. Коды LDPC, изобретенные Галлагером в его исходной докторской диссертации в 1960 году, могут достичь чрезвычайно низких частот ошибок вблизи пропускной способности канала с помощью алгоритма итерационного декодирования с низкой сложностью. Внешние коды BCH используются для исправления спорадических ошибок, допущенных декодером LDPC.

Коды канала для DVB-S.2 обеспечивают значительный коэффициент усиления пропускной способности по сравнению с DVB-S при тех же условиях передачи и допускают операцию без квази-ошибок (частота ошибок пакета ниже 10 ^ -7) на уровне приблизительно 0,7 дБ до 1 дБ от предела Шеннона, в зависимости от режима передачи.

Этот пример моделирует энкодер BCH, LDPC энкодера, перемежитель, модулятор, а также их аналоги в приемник, согласно DVB-S.2 стандарту.

Структура примера

Система связи в этом примере выполняет следующие задачи:

  • Генерация BBFRAME случайным источником

  • Кодирование BCH для всех параметров кодирования и нормального FECFRAME

  • Кодирование LDPC, для всех параметров кодирования и нормального FECFRAME

  • Перемежение

  • Модуляция (QPSK, 8PSK, 16APSK или 32APSK)

  • Моделирование канала AWGN

  • Демодуляция с мягким решением

  • Deinterleaving

  • Декодирование LDPC с помощью алгоритма передачи сообщений

  • Декодирование BCH

  • Разбуферизация BBFRAME

modelname =  'commdvbs2' ;
open_system(modelname);
RX = [modelname '/RX Constellation']; % Define Simulink object as a variable
set_param(RX,'openScopeAtSimStart','off' ); % Set Simulink scope visibility parameter
T = evalc('sim(modelname)');

Кроме того, эта модель имеет блоки для измерения и отображения частоты ошибок пакета, частоты битовой ошибки LDPC и оцененного ES/No. Существует также график поля точек возможностей отображения принятого сигнала, которая помогает пользователям визуализировать искажения канала сигнала.

Упрощения и допущения

Для простоты, этот пример

  • Принимает идеальную синхронизацию между передатчиком и приемником

  • Использует сложную базовую модель канала AWGN, а не полноценного спутникового канала

  • Моделирует BBHEADER и DATA FIELD в BBFRAME с использованием двоичного случайного источника Бернулли и не выполняет скремблирование основной полосы частот

  • Поддерживает только обычный FECFRAME (т.е. длина блоков кодов LDPC составляет 64800)

  • Обрабатывает одно кодовое слово LDPC за один модуль времени в Simulink ®

  • Аппроксимирует логарифмический коэффициент логарифмической правдоподобности выходного канала для декодирования LDPC, принимая во внимание только две точки в созвездии, ближайшем к принятому сигналу во время демодуляции с мягким решением

  • Использует Es/No, предоставленный пользователем для декодирования LDPC, вместо оценки Es/No из принятого сигнала

Кроме того, пример не моделирует эти аспекты DVB-S.2 стандарта:

  • Короткий FECFRAME

  • Система координат физического слоя (PL)

  • Сигнализация PL и вставка пилот-сигнала

  • PL-скремблер

  • Фильтр основной полосы (BB) и квадратурная модуляция

Параметры модели

Двойной клик по блоку Параметров модели позволяет пользователям задать следующие параметры для модели:

Результаты и отображения

Когда модель запускается, автоматически появляется окно, чтобы отобразить график поля точек полученного сигнала. Вероятность битовой ошибки LDPC, вероятность пакетной ошибки и оцененный ES/No от принятого сигнала будут постоянно обновляться.

% Set scope visibility for next display and run simulation
set_param(RX,'openScopeAtSimStart','on');
sim(modelname);

Степень кодов LDPC можно легко наблюдать, используя настройки по умолчанию: QPSK, скорость 1/2, Es/No = 1 дБ и 50 итераций при декодировании. Даже при таком низком значении Es/No декодер LDPC редко делает ошибку. Этот график поля точек наглядно иллюстрирует, насколько шумен канал.

Если Es/No немного уменьшен, то, для примера, до 0,5 дБ, вероятность битовой ошибки LDPC будет намного больше. Это согласуется с типичными крутыми кривыми эффективности кодов LDPC.

% Cleanup
%
% To clear the variables set above and close without saving the changes to
% the model, type the following commands into the MATLAB(R) command prompt.
%

close_system(modelname,0);

Избранная библиография

[1] DVB-S.2 Стандартная спецификация, ETSI EN 302 307 V1.1.1 (2005-03).

[2] Р. Г. Галлагер, Коды проверки четности низкой плотности, Транзакции IRE по теории информации, том 8, № 1, январь 1962, стр. 21-28.

[3] W. E. Ryan, Введение в коды LDPC, в Coding and Signal Processing for Magnetic Recoding Systems (Bane Vasic, ed.), CRC Press, 2004.