Эта модель показывает современную схему кодирования канала, используемую в стандарте цифрового видеовещания второго поколения (DVB-S.2), который развернут DIRECTV в США. Схема кодирования основана на конкатенации кодов LDPC (проверка четности с низкой плотностью) и 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) и квадратурная модуляция
Параметры модели
Двойной щелчок на блоке Параметры модели (Model Parameters) позволяет пользователям задать следующие параметры для модели:

При запуске модели автоматически появляется окно для отображения графика рассеяния принятого сигнала. Частота битовых ошибок 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] В. Э. Райан, Введение в LDPC-коды, в кодировании и обработке сигналов для магнитных систем кодирования (Bane Vasic, ред.), CRC Press, 2004.