dvbsapskdemod

Амплитудно-фазовая демодуляция (APSK) DVB-S2/S2X/SH

Описание

пример

z = dvbsapskdemod(y,M,stdSuffix) демодулирует входной сигнал APSK, y, это модулировалось в соответствии со стандартом цифрового видео широковещательно передается (DVB), идентифицированным stdSuffix и порядок модуляции, M. Для описания совместимой DVB демодуляции APSK смотрите DVB Совместимый APSK Трудная Демодуляция и DVB Совместимый APSK Мягкая Демодуляция.

z = dvbsapskdemod(y,M,stdSuffix,codeIDF) задает идентификатор кода codeIDF, использовать при выборе параметров демодуляции.

z = dvbsapskdemod(y,M,stdSuffix,codeIDF,frameLength) задает codeIDF и frameLength использовать при выборе параметров демодуляции.

пример

z = dvbsapskdemod(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" с помощью любого из предыдущих синтаксисов. Например, 'OutputDataType','double' задает желаемый тип выходных данных. Задайте аргументы пары "имя-значение" после всех других входных параметров.

Примеры

свернуть все

Демодулируйте сигнал 64-APSK, который модулировался, как задано в DVB-S2X. Вычислите целое число трудного решения выход и проверьте, что выход совпадает с входом.

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

M = 64;
std = 's2x';
x = randi([0 M-1],1000,1);

Модулируйте данные.

y = dvbsapskmod(x,M,std);

Демодулируйте полученный сигнал. Сравните демодулируемые данные с исходными данными.

z = dvbsapskdemod(y,M,std);
isequal(z,x)
ans = logical
   1

Демодулируйте сигнал 32-APSK, который модулировался, как задано в DVB-S2. Вычислите бит трудного решения выход и проверьте, что выход совпадает с входом.

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

M = 32;
std = 's2';
codeIDF = '4/5';
numBitsPerSym = log2(M);
x = randi([0 1],100*numBitsPerSym,1,'uint32');

Модулируйте данные. Используйте пару "имя-значение", чтобы задать битные входные данные.

y = dvbsapskmod(x,M,std,codeIDF,'InputType','bit');

Демодулируйте полученный сигнал. Сравните демодулируемые данные с исходными данными.

z = dvbsapskdemod(y,M,std,'4/5','OutputType','bit', ...
    'OutputDataType','uint32');
isequal(z,x)
ans = logical
   1

Демодулируйте DVB-SH, совместимый 16-APSK сигнализирует и вычисляет мягкие биты.

Установите порядок модуляции и сгенерируйте случайную последовательность битов.

M = 16;
std = 'sh';
numSym = 20000;
numBitsPerSym = log2(M);
x = randi([0 1],numSym*numBitsPerSym,1);

Модулируйте данные. Используйте пару "имя-значение", чтобы задать битные входные данные.

txSig = dvbsapskmod(x,M,std,'InputType','bit');

Передайте модулируемый сигнал через шумный канал.

rxSig = awgn(txSig,10,'measured');

Просмотрите созвездие полученного сигнала с помощью графика рассеивания.

scatterplot(rxSig) 

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot contains an object of type line. This object represents Channel 1.

DVB-SH совместимые созвездия имеет модульную среднюю силу. Демодулируйте сигнал, вычисляя мягкие биты с помощью аппроксимированного алгоритма LLR.

z = dvbsapskdemod(rxSig,M,std,'OutputType','approxllr', ...
     'NoiseVariance',0.1);

Входные параметры

свернуть все

APSK модулируемый сигнал в виде комплексного скаляра, вектора или матрицы. Когда y матрица, каждый столбец обработан как независимый канал.

y должен модулироваться в соответствии с Цифровым телевидением (DVB) - стандарт Спутниковой связи DVB-S2, DVB-S2X или DVB-SH. Для получения дополнительной информации см. [1], [2], и [3].

Типы данных: single | double
Поддержка комплексного числа: Да

Порядок модуляции в виде степени двойки. Порядок модуляции задает общее количество точек в сигнальном созвездии.

Типы данных: double

Стандартный суффикс для варианта модуляции DVBS в виде 's2', 's2x', или 's2h'.

Типы данных: char | string

Идентификатор кода в виде вектора символов или строки. Эта таблица приводит приемлемый codeIDF значения.

Порядок созвездия (M)Применимый стандарт (stdSuffix)Приемлемый идентификатор кода (CodeIDFЗначения
16

's2' или 's2x'

'2/3', '3/4', '4/5', '5/6', '8/9', '9/10'

16

's2x'

'26/45', '3/5', '28/45', '23/36', '25/36', '13/18', '7/9', '77/90', '100/180', '96/180', '90/180', '18/30', '20/30'

32

's2' или 's2x'

'3/4', '4/5', '5/6', '8/9', '9/10'

32

's2x'

'32/45', '11/15', '7/9', '2/3'

64

's2x'

'11/15', '7/9', '4/5', '5/6', '128/180'

128

's2x'

'3/4', '7/9'

256

's2x'

'32/45', '3/4', '116/180', '20/30', '124/180', '22/30'

Для получения дополнительной информации обратитесь к Таблицам 9 и 10 в стандарте DVB-S2 [1] и Таблице 17a в стандарте DVB-S2X [2].

Зависимости

Этот входной параметр применяется только когда stdSuffix установлен в 's2' или 's2x'.

Типы данных: char | string

Структурируйте длину в виде 'normal' или 'short'. Функция usesframeLength и codeIDF выбрать параметры модуляции.

Зависимости

Этот входной параметр применяется только когда stdSuffix установлен в 's2' или 's2x'.

Типы данных: char | string

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: y = dvbsapskdemod(x,M,stdSuffix,'InputType','bit','OutputDataType','single');

Выходной тип в виде разделенной запятой пары, состоящей из OutputType и 'integer', 'bit', 'llr', или 'approxllr'. Для описания возвращенного выходного параметра смотрите z.

Типы данных: char | string

Выходные данные вводят в виде разделенной запятой пары, состоящей из OutputDataType и один из обозначенных типов данных. Приемлемые значения для OutputDataType зависьте от OutputType значение.

OutputType ЗначениеПриемлемый OutputDataType Значения
'integer''double'единственныйint8int16int32uint8uint16, или 'uint32'
'bit''double'единственныйint8int16int32uint8uint16uint32, или 'logical'

Зависимости

Этот аргумент пары "имя-значение" применяется только когда OutputType установлен в 'integer' или 'bit'.

Типы данных: char | string

Модульная средняя степень отмечает в виде разделенной запятой пары, состоящей из UnitAveragePower и логический скаляр. Когда этим флагом является true, функция масштабирует созвездие к средней степени 1 ватта, на который ссылаются к 1 Ому. Когда этим флагом является false, функция масштабирует созвездие на основе технических требований в соответствующем стандарте, как описано в [1] и [2].

Примечание

Когда stdSuffix установлен в 'sh', созвездие всегда имеет модульную среднюю силу.

Зависимости

Этот аргумент пары "имя-значение" применяется только когда stdSuffix установлен в 's2' или 's2x'.

Типы данных: логический

Шумовое отклонение в виде разделенной запятой пары, состоящей из NoiseVariance и положительная скалярная величина или вектор из положительных значений.

  • Когда задано как скаляр, то же шумовое значение отклонения используется на всех входных элементах.

  • Когда задано как вектор, длина вектора должна быть равна количеству столбцов во входном сигнале.

Когда шумовое отклонение или результат степени сигнала в расчетах включающие экстремальные положительные или отрицательные величины, смотрите DVB Совместимый APSK Мягкая Демодуляция для факторов выбора алгоритма.

Зависимости

Этот аргумент пары "имя-значение" применяется только когда OutputType установлен в 'llr' или 'approxllr'.

Типы данных: double

Опция, чтобы построить созвездие в виде разделенной запятой пары, состоящей из 'PlotConstellation' и логический скаляр. Чтобы построить созвездие, установите PlotConstellation к true.

Типы данных: логический

Выходные аргументы

свернуть все

Демодулируемый сигнал, возвращенный как скаляр, вектор или матрица. Размерности выхода варьируются в зависимости от заданного OutputType значение.

OutputType ЗначениеВозвращаемое значение dvbsapskdemodРазмерности z
'integer'Демодулируемые целочисленные значения от 0 до (M – 1)z имеет те же размерности как вход y.
'bit'Демодулируемые битыКоличество строк в z log2 (сумма (M)) времена количество строк в y. Каждый демодулируемый символ сопоставлен с группой log2 (сумма (M)) элементы в столбце, где первый элемент представляет MSB и последний элемент, представляют LSB.
'llr'Значение отношения логарифмической правдоподобности для каждого бита
'approxllr'Аппроксимированное значение отношения логарифмической правдоподобности для каждого бита

Больше о

свернуть все

DVB-S2/S2X/SH

Стандарты цифрового телевидения (DVB) задают S2, S2X и амплитудно-фазовую модуляцию (APSK) SH. Для получения дополнительной информации о стандартах DVB-S2/S2X/SH смотрите заданный в [1], [2], и [3], соответственно.

DVB совместимый APSK трудная демодуляция

Твердый алгоритм демодуляции применяет амплитудное декодирование фазы как описано в [4].

DVB совместимый APSK мягкая демодуляция

Для мягкой демодуляции два алгоритма отношения логарифмической правдоподобности (LLR) мягкого решения доступны: точный LLR и аппроксимированный LLR. Эта таблица сравнивает эти алгоритмы.

АлгоритмТочностьСкорость выполнения
Точный LLRболее точныйболее медленное выполнение
Аппроксимированный LLRменее точныйболее быстрое выполнение

Для дальнейшего описания этих алгоритмов см. Точный Алгоритм LLR и Аппроксимируйте Алгоритм LLR.

Примечание

Точный алгоритм LLR вычисляет экспоненциалы с помощью конечной арифметики точности. Расчет экспоненциалов с очень большими положительными или отрицательными величинами может уступить:

  • Inf или -Inf если шумовое отклонение является очень большим значением

  • NaN если оба шумовое отклонение и степень сигнала являются очень маленькими значениями

Когда выход возвращает любое из этих значений, попытайтесь использовать аппроксимированный алгоритм LLR, потому что это не вычисляет экспоненциалы.

Ссылки

[1] EN 302 307 V1.4.1 Стандарта ETSI: Цифровое телевидение (DVB); структура структурирования Второго поколения, кодирование канала и системы модуляции для Широковещательной передачи, Interactive Services, Сбора Новостей и других широкополосных спутниковых приложений (DVB-S2), Европейский институт стандартизации электросвязи, Вальбонн, Франция, 2005-03.

[2] EN 302 307-2 V1.1.1 Стандарта ETSI: Цифровое телевидение (DVB); структура структурирования Второго поколения, кодирование канала и системы модуляции для Широковещательной передачи, Interactive Services, Сбора Новостей и других широкополосных спутниковых приложений (DVB-S2X), Европейский институт стандартизации электросвязи, Вальбонн, Франция, 2015-02.

[3] EN 302 583 V1.1.1 Стандарта ETSI: Цифровое телевидение (DVB); Структурируя структуру, кодирование канала и модуляцию для Услуг спутниковой связи к Карманным устройствам (SH), Европейскому институту стандартизации электросвязи, Вальбонн, Франция, 2008-03.

[4] Sebesta, J. “Эффективный метод для Демодуляции APSK”. Выбранные Темы на Прикладной математике, Схемах, Системах и Сигналах (П. Пардэлос, Н. Мэсторакис, В. Младенов, и З. Бойкович, редакторы). Воулиагмени, Афины, Греция: Нажатие WSEAS, 2009.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2018a