В этом примере показано, как реализовать время DVB-S2, частоту, и синхронизацию фазы и восстановление заголовка PL с помощью блоков Simulink®, которые оптимизированы для генерации HDL-кода и аппаратной реализации.
Второе поколение Спутника Цифрового телевидения (DVB-S2) модемы действует в C (4-8 ГГц), Ку (12-18 ГГц) и Ka (26-40 ГГц) диапазоны частот. Согласно стандарту DVB-S2, спутниковая полоса пропускания транспондера лежит в диапазоне от 1 МГц до 72 МГц. Модель в этом примере действует на уровне символа 25 Mbaud с фактором спада фильтра корня повысил косинус (RRC) 0,35. Для реализации MATLAB® стандарта DVB-S2 смотрите Сквозную Симуляцию DVB-S2 с Ухудшениями RF и Коррекции (Satellite Communications Toolbox) пример.
Цель этого примера состоит в том, чтобы смоделировать синхронизацию приемника HDL DVB-S2 и систему восстановления заголовка PL, которая может обработать ухудшения радиочастоты (RF). Модель выполняет символьную синхронизацию, кадровую синхронизацию, крупную и прекрасную синхронизацию частоты, и оценку смещения фазы и коррекцию. Затем модель декодирует информацию о заголовке PL, сопровождаемую прекрасной синхронизацией фазы.
Этот раздел объясняет высокоуровневую архитектуру модели. Модель получает последовательность формы волны передатчика DVB-S2 что потоки в Крупную Компенсацию Частоты. В Крупной Компенсации Частоты Согласованный фильтр фильтрует последовательность. Синхронизатор Символа извлекает модулируемую последовательность символа из Matched Filter, выход и Кадровый синхронизатор определяют местоположение запуска каждой системы координат в модулируемой последовательности символа. Дескремблер PL дескремблирует скремблированные символы данных, и Экспериментальный Генератор указывает, что экспериментальные местоположения в системе координат синхронизировали последовательность. Крупное Средство оценки Частоты оценивает смещение частоты, которое используется, чтобы откорректировать смещение частоты в последовательности формы волны передатчика в модели, введенной сопряженным умножением оценки. Прекрасный Компенсатор Частоты корректирует остаточную частоту, оставленную в дескремблированной последовательности PL. Крупный Ошибочный Компенсатор Фазы корректирует крупный сдвиг по фазе в Fine Frequency Compensator последовательность выхода. Демультиплексор делится, фаза компенсировала последовательность в символы физического уровня сигнального кода (PLSC) и дескремблировала символы данных в каждой системе координат. Заголовок PL Декодер PLSC декодирует параметры заголовка MODCOD и FECFrame. Прекрасный Компенсатор Фазы использует параметр MODCOD и корректирует остаточную фазу в дескремблированных символах данных что поток в Демодулятор Символа.
Эта блок-схема показывает высокоуровневую архитектуру модели.
Этот пример использует одну модель Simulink и шесть файлов MATLAB.
dvbs2hdlPLHeaderRecovery.slx
— Модель Simulink верхнего уровня
getdvbs2LDPCParityMatrices.m
— Загружает матрицы LDPC .mat
файл
dvbs2hdlParameters.m
— Сгенерируйте параметры для модели
dvbs2hdlPhaseNoise.m
— Введите шум фазы входной последовательности
dvbs2hdlPLHeaderRecoveryInit.m
— Сгенерируйте форму волны передатчика, и инициализирует модель dvbs2hdlPLHeaderRecovery.slx
dvbs2hdlStreamRecovery.m
— Декодируйте основополосную систему координат (BBFRAME)
dvbs2hdlPLHeaderRecoveryVerify.m
— Соберите параметры Заголовка PL и символы XFECFRAME, демодулируйте символы, декодируйте FEC (LDPC и BCH), восстанавливает основополосную систему координат, и вычислите битовые ошибки с помощью функций Satellite Communications Toolbox
Этот рисунок показывает обзор верхнего уровня dvbs2hdlPLHeaderRecovery.slx
модель.
Входные параметры модели
dataIn — Входные данные в виде комплексные данные на 18 битов с частотой дискретизации, которая является четыре раза уровнем символа.
validIn — Управляющий сигнал подтвердить dataIn в виде булева скаляра.
rst — Управляющий сигнал сбросить крупную частоту и прекрасные циклы компенсации фазы в виде булева скаляра.
Выходные параметры модели:
выходные данные — Decoded символы выхода, возвращенные как комплексный скаляр на 18 битов.
validOut — Управляющий сигнал подтвердить выходные данные в виде булева скаляра.
endOfPLSC — Управляющий сигнал указать на конец символов PLSC в каждой синхронизируемой системе координат в виде булева скаляра.
headerInfo — Соедините шиной сигнал обеспечить MODCOD и FECFrame заголовка PL в каждой синхронизируемой системе координат.
diagBus — Соедините шиной сигнал предоставить крупной частоте, нормированной частоту дискретизации, прекрасная частота, нормированная с уровнем символа, символ синхронизировал выход и символы PLSC.
Этот рисунок показывает модель верхнего уровня Synchronization and PL Header Recovery
подсистема. Это включает частоту времени и крупный синхронизатор фазы, восстановление заголовка PL и прекрасный синхронизатор фазы.
Частота времени и крупный синхронизатор фазы
Time Frequency and Coarse Phase Synchronizer
подсистема включает время и крупный синхронизатор частоты, прекрасный синхронизатор частоты и крупный синхронизатор фазы.
Время и крупный синхронизатор частоты
Time and Coarse Frequency Synchronizer
подсистема компенсирует крупную частоту в замкнутом цикле частоты (FLL) система. Нормированная полоса пропускания контура системы FLL установлена в 1e-4. Цикл включает согласованную фильтрацию RRC, синхронизацию символа, кадровую синхронизацию, дескремблирование PL, экспериментальную экстракцию и грубую оценку частоты.
Крупное средство оценки частоты
Coarse Frequency Estimator
подсистема выполняет выявление ошибок частоты, фильтрацию цикла и прямой цифровой синтез. Детектор ошибок частоты описан уравнением C.2 в Приложении C.4 [2]. Крупное средство оценки частоты является помогшим пилотами средством оценки частоты. Frequency Error Detector
подсистема выходная ошибка частоты в экспериментальных местоположениях. Ошибка частоты передается через контурный фильтр, и выход контурного фильтра управляет блоком NCO HDL Optimized (DSP System Toolbox), чтобы сгенерировать комплексную экпоненту синусоидальные выборки. Эти выборки спрягаются и умножаются на входную последовательность, чтобы откорректировать смещение частоты. Контурный фильтр отключен для ошибки частоты, фильтрующей после 32 экспериментальных блоков так, чтобы предполагаемая частота осталась устойчивой. Сигнал сброса rst является сбросом контурный фильтр и перезапускает процесс оценки.
RRC получают согласованный фильтр
RRC Получают Согласованный фильтр, блок Discrete FIR Filter HDL Optimized (DSP System Toolbox) с коэффициентами согласованного фильтра с четырьмя выборками на символ и фактор спада 0,35. RRC соответствовал, отфильтрованный выход является RC форма волны импульсной формы, которая имеет нулевую интерференцию межсимвола (ISI) характеристики в максимальном глазу, открывающемся в глазковой диаграмме для формы волны. Кроме того, процесс согласованной фильтрации максимизирует отношение сигнала к шумовой мощности (ОСШ) фильтра выход.
Синхронизатор символа
Symbol Synchronizer
подсистема является основанной на фазовой подстройке частоты (PLL) реализацией как описано в главе 8.4 [4]. Подсистема генерирует тот выходная выборка для каждых четырех входных выборок. Цикл PLL установлен с нормированной полосой пропускания контура 8e-3. Interpolation Filter
подсистема реализует кусочный параболический интерполятор с аппаратным ресурсом эффективная неоплодотворенная структура. Этот фильтр вводит дробные задержки входной формы волны. Как задано в Приложении C.2 [2], Gardner TED
подсистема реализует Гарднера, синхронизирующего детектор ошибок. Контурный фильтр фильтрует ошибку синхронизации, и ошибка синхронизации передается блоку MATLAB function Управления Интерполяцией. Этот блок реализует mod-1, постепенно уменьшающийся в противоречии с, вычисляют дробные задержки на основе цикла, отфильтрованного, синхронизируя ошибку сгенерировать interpolants в оптимальные моменты выборки. Rate Handle
подсистема выбирает необходимый interpolant, обозначенный стробом.
Кадровый синхронизатор
Реализация кадрового синхронизатора описана в Приложении C.3.1 [2]. Correlator
подсистема в Frame Synchronizer
подсистема генерирует запуск системы координат (SOF), значения корреляции физического уровня сигнального кода (PLSC) и порог. Коррелируемая последовательность SOF задерживается длиной последовательности PLSC так, чтобы peaks корреляции SOF и PLSC был выровнен. Pilot and Sync Pulse Indicator
подсистема обнаруживает порог, превысил значение корреляции и также обнаруживает существование пилотов в текущей системе координат.
Correlator
подсистема реализует дифференциальное обнаружение и удаляет зависимость от смещения частоты во входной последовательности. Выходная последовательность постоянно перекрестный коррелируется с SOF и корреляторами PLSC. Кроме того, энергию сигнала вычисляют на каждом временном шаге и затем масштабируют и подводят итог в промежутке каждой длины фильтра коррелятора в Moving Sum
подсистема. Масштабные коэффициенты используются перед Moving Sum
подсистема выведена из каждой из последовательностей корреляции соответственно в dvbs2hdlParameters.m
файл. Две масштабированной энергетической ценности добавляется, чтобы сгенерировать порог.
Pilot and Sync Pulse Indicator
подсистема добавляет и вычитает SOF и значения корреляции PLSC и вычисляет энергию на каждом временном шаге, чтобы сгенерировать две метрики корреляции. Порог уменьшен масштаб с предварительно вычисленным значением в dvbs2hdlParameters.m
файл и нижний предел применяются, чтобы насыщать порог с нижней границей. Обе из метрик корреляции по сравнению с уменьшенным масштаб пороговым значением. Существование пилотов в текущей системе координат подтверждено, если метрика корреляции, полученная путем добавления SOF и значений корреляции PLSC, превышает уменьшенный масштаб порог. Для данной системы координат только одна из двух метрик корреляции превышает порог на основе существования пилотов.
Дескремблер данных PL
PL Data Descrambler
подсистема использует генератор последовательности Голда скремблера PL, который описан в разделе 5.5.4 из [1]. PL Scramber Gold Sequence Generator
подсистема сбрасывает для каждой системы координат. Золотая последовательность используется в качестве адреса к PL Scramble Sequence Mapper LUT
блокируйтесь, чтобы сгенерировать последовательность скремблирования PL. Борющаяся последовательность спрягается, чтобы сгенерировать последовательность дескремблирования PL, и дескремблирование выполняется путем умножения последовательности дескремблирования PL с входной последовательностью. Переключатель используется, чтобы мультиплексировать символы PLSC и дескремблированные символы данных.
Экспериментальный допустимый индикатор
Pilot Valid Indicator
подсистема считает входную последовательность и присваивает экспериментальный индекс для каждого символа. Как задано в разделе 5.5.3 из [1], пилоты длины 36 символов существуют после 16 пазов (1 440 символов) в экспериментальном активном XFECFRAME (экспериментальная активность подтверждена в кадровом синхронизаторе). Подсистема генерирует экспериментальный допустимый сигнал для 36 символов, чтобы указать на местоположение экспериментального блока. Сбросы счетчика после экспериментального блока. Этот процесс продолжается для остальной части XFECFRAME. Сигнал, который указывает на конец символов PLSC следующего XFECFRAME, определяет конец текущего XFECFRAME. Экспериментальный допустимый сигнал не сгенерирован после 16 пазов, если следующий XFECFRAME обнаруживается, когда символы PLSC занимают место пилотов.
Прекрасный синхронизатор частоты
Fine Frequency Synchronizer
подсистема использует Модифицированный L и алгоритм R, аналогичный описанному уравнением C.3 in Annex C.4 [2]. L и алгоритм R описаны в [3]. Подсистема реализует 18 автокорреляционных функций точки L и алгоритма R, сопровождаемого 32 фильтрами скользящего среднего значения длины. Оценка частоты от Модифицированного L и подсистемы Алгоритма R управляет блоком NCO HDL Optimized (DSP System Toolbox), чтобы сгенерировать комплексную экпоненту синусоидальные выборки, которые спрягаются и используются, чтобы откорректировать смещение частоты во входе.
Крупный синхронизатор фазы
Coarse Phase Synchronizer
подсистема использует метод линейной интерполяции пилота, которому помогают. Coarse Phase Estimator
подсистема оценивает комплексную фазу от каждого из 36 экспериментальных символов и выполняет усреднение, которое приводит к одной оценке от каждого экспериментального блока. Unwrapping Algorithm
подсистема реализует уравнение C.7 в разделе C.6.1 [2] и интерполирует комплексную оценку фазы от двух последовательных экспериментальных блоков. Эта интерполированная оценка используется, чтобы компенсировать фазу символов, промежуточных эти два последовательных экспериментальных блока.
Восстановление заголовка PL
PL Header Decoder
подсистема в PL Header Recovery
подсистема декодирует символы PLSC заголовка PL на покадровом базисе, чтобы получить MODCOD и тип FECFrame системы координат.
MODCOD указывает на схему модуляции и кодирования системы координат, и FECFrame указывает на тип системы координат (короткий или нормальный) как описано в разделах 5.5.2.2 и 5.5.2.3 из [1].
Символы PLSC содержат семь информационных битов, которые биоортогонально закодированы с (64,7) код. Конструкция кода на 64 бита такова, что каждый нечетный бит в коде является или всегда инвертированным битом или равный ровному последовательному биту на основе того, существуют ли пилоты, или не существует в системе координат соответственно, как описано в разделе 5.5.2.4 из [1]. 64 закодированных бита pi/2-BPSK модулируются как описано в разделе 5.5.2 из [1].
PL Frame Demultiplexer
подсистема демультиплексирует символы PLSC и систему координат данных PL входа. Сигналы от hvalid и dvalid портов указывают на местоположения символов PLSC и символов системы координат данных PL соответственно. Символы PLSC передаются потоком в PL Header Decoder
подсистема.
Декодер заголовка PL
PLSC Descrambler
подсистема в PL Header Decoder
подсистема дескремблирует символы PLSC. Сигнал от indexIndicator порта PLSC Descrambler
подсистема отличает четные и нечетные местоположения символов PLSC. pi/2 BSPK Soft Bit Demodulator
подсистема демодулирует символы PLSC. Если пилоты существуют в текущем PLFRAME (который решен в кадровой синхронизации), Bit Flipping and Averaging
подсистема умножает нечетные мягкие биты на –1 в символах PLSC. Немного щелчка для твердого бита - то же самое как умножение на –1 для мягкого бита. Подсистема составляет в среднем мягкие биты в четных и нечетных местоположениях, чтобы получить одну оценку. Аналогично, 32 мягких бита сгенерированы от 64 мягких битов. Декодер наибольшего правдоподобия (ML) используется, чтобы декодировать (32,6) биоортогональные закодированные биты. 6 декодируемых битов используются, чтобы создать тип FECFrame и MODCOD.
Декодер ML
ML Decoder
подсистема декодирует (32,6) биортогональный код путем выбора кодовой комбинации наибольшего правдоподобия. В общей сложности 2^6 = 64 комбинации кодовой комбинации, каждый 32 бита шириной, предварительно вычисляются в dvbs2hdlParameters.m
файл. Кодовые комбинации хранятся как целые числа в uint32
формат, с первыми 32 кодовыми комбинациями в одной интерполяционной таблице (LUT) и следующими 32 кодовыми комбинациями в другом LUT. Хранение LUT таково, что старший значащий бит всех кодовых комбинаций называется сначала, сопровождается следующими значимыми битами и так далее. Немного уровня Евклидово расстояние вычисляется в Compute Euclidean Distance
подсистема с –1 и 1 как ссылочные значения для бита 0 и бита 1, соответственно. Euclidean Distance Sum Up
подсистема добавляет весь уровень на 32 бита Евклидовы метрики в зависимости от времени и генерирует кодовую комбинацию Евклидова метрика для каждой кодовой комбинации. Эта подсистема использует для каждого итератора, чтобы повторить выполнение для всех кодовых комбинаций и генерирует 64 кодовых комбинации Евклидовы метрики. Минимальная Евклидова метрика 64 комбинаций сопоставляет с кодовой комбинацией наибольшего правдоподобия. Кодовая комбинация наибольшего правдоподобия используется, чтобы создать вход на 6 битов, и MOCDOD и значения типа FECFrame.
Для оборудования дружественная реализация вычисляется Евклидова метрика (вычисление, это включает множители) вне ML Decoder
подсистема, когда это использует для каждого итератора.
Прекрасный синхронизатор фазы
Fine Phase Synchronizer
подсистема является реализацией PLL. Его нормированная полоса пропускания контура установлена в 20e-6. Значение MODCOD, декодируемое от заголовка PL, задает тип модуляции символов в системе координат. Power Q and Beta Offset Rotation
подсистема повышает QPSK, 8-PSK, 16-APSK и символы 32-APSK к степени Q и вращает созвездие углом беты. Phase Error Detector
подсистема вычисляет ошибку фазы из выхода Power Q and Beta Offset Rotation
подсистема, аналогичная описанному уравнением C.10 в приложении C.6.2 [2]. Ошибка фазы отфильтрована контурным фильтром. Отфильтрованный выход управляет блоком NCO HDL Optimized (DSP System Toolbox) в Direct Digital Synthesis
подсистема, чтобы сгенерировать комплексную экпоненту синусоидальные выборки, которые спрягаются и используются, чтобы откорректировать фазу входных выборок.
Эта таблица показывает Q и коэффициенты бета для модулируемых символов
Modulation Q Beta (in radians) __________ _ _________________ QPSK 1 0 8-PSK 2 pi/4 16-APSK 3 0 32-APSK 4 pi/4
Канал
Channel
подсистема вводит следующие ухудшения.
Impairment Description ____________________________________ _______________________________ Additive white Gaussian noise (AWGN) Specified in Es/N0 in dB Carrier frequency offset (CFO) Specified in Hz Carrier frequency drift (CFD) Specified in Hz/second Carrier phase offset (CPO) Specified in degrees Sampling clock offset (SCO) Specified in the interval [0,1) Phase noise Specified as Low, Medium, High
Эта таблица задает уровень маски шума фазы в дБн/Гц что генератор шума фазы в dvbs2hdlPhaseNoise.m
использование файла, чтобы сгенерировать шум фазы и ввести в выходном сигнале передатчика.
Frequency Low Medium High _________ ____ ______ ____ 100 Hz -73 -59 -25 1 KHz -83 -77 -50 10 KHz -93 -88 -73 100 KHz -112 -94 -85 1 MHz -128 -104 -103
Установите MODCOD и значения Типа FECFrame и ухудшения канала на Входной маске подсистемы Настройки и запустите dvbs2hdlPLHeaderRecovery.slx
модель. В качестве альтернативы, чтобы запустить модель, введите эту команду в командной строке MATLAB.
sim dvbs2hdlPLHeaderRecovery
Запустите dvbs2hdlPLHeaderRecovery.slx
модель.
Number of frames synced = 36 out of 36 Initial frames not compared = 8 Number of frames lost due to PL Header mismatch = 0 out of 28 Number of frames lost due to BB Header CRC failure = 0 out of 28 Number of packets errored = 0 out of 536 Number of bits errored = 0 out of 806144
Чтобы сгенерировать HDL-код для этого примера, у вас должен быть HDL Coder™. Используйте makehdl
и makehdltb
команды, чтобы сгенерировать HDL-код и испытательный стенд HDL для Synchronization and PL Header Recovery
подсистема. Время генерации испытательного стенда зависит от времени симуляции.
Получившийся HDL-код синтезируется для оценочной платы Xilinx® Zynq®-7000 ZC706. Место сообщения и использование ресурса маршрута показывают в этой таблице. Максимальная частота операции составляет 205,3 МГц.
Resources Usage _______________ _____ Slice LUT 40848 Slice Registers 71306 RAMB36 14 RAMB18 1 DSP48 344
EN 302 307-1 V1.4.1 Стандарта ETSI (2014-11). Цифровое телевидение (DVB); Структура Структурирования Второго поколения, Кодирование Канала и Системы Модуляции для Широковещательной передачи, Interactive Services, Сбора Новостей и других Широкополосных Спутниковых Приложений (DVB-S2).
TR 102 376-1 V1.2.1 Стандарта ETSI (2015-11). Цифровое телевидение (DVB); Инструкции по Реализации для Системы Второго поколения для Широковещательной передачи, Interactive Services, Сбора Новостей и других Широкополосных Спутниковых Приложений (DVB-S2).
Марко Луиза и восстановление несущей частоты Руджеро Регджаннини в полностью цифровых модемах для передач пакетного режима.
Майкл Райс, цифровая связь - подход дискретного времени, Prentice Hall, апрель 2008.
NCO HDL Optimized (DSP System Toolbox) | Discrete FIR Filter HDL Optimized (DSP System Toolbox)