dvbsapskdemod

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

Описание

пример

z = dvbsapskdemod(y,M,stdSuffix) демодулирует входной сигнал APSK, y, который был модулирован в соответствии со стандартом цифрового видеовещания (DVB), идентифицированным stdSuffix и порядок модуляции, M. Описание демодуляции APSK, совместимой с DVB, см. в разделах Совместимая с 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

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

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

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. The axes 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] и Таблица 17а в DVB-S2X стандарте [2].

Зависимости

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

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

Длина системы координат, заданная как 'normal' или 'short'. Функция использует frameLength и codeIDF для выбора параметров модуляции.

Зависимости

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

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами 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', 'single', 'int8', 'int16', 'int32', 'uint8', 'uint16', или 'uint32'
'bit''double', 'single', 'int8', 'int16', 'int32', 'uint8', 'uint16', 'uint32', или 'logical'

Зависимости

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

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

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

Примечание

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

Зависимости

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

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

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

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

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

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

Зависимости

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

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

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

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

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

свернуть все

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

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

Подробнее о

свернуть все

DVB-S2/S2X/SH

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

Жесткая демодуляция APSK, совместимая с DVB

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

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

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

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

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

Примечание

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

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

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

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

Ссылки

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

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

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

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

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

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

.
Введенный в R2018a