dvbsapskmod

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

Описание

пример

y = dvbsapskmod(x,M,stdSuffix) выполняет APSK модуляцию входного сигнала, x, в соответствии со стандартом цифрового видеотрансляции (DVB), идентифицированным stdSuffix и порядок модуляции, M.

пример

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

пример

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

пример

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

Примеры

свернуть все

Модулируйте данные с помощью DVB-S2X стандартной заданной 32-APSK схемы модуляции. Отображение результата на графике поля точек.

Установите порядок модуляции и суффикс, идентифицирующий стандарт DVB-S2X. Создайте вектор данных со всеми возможными символами.

M = 32;
stdSuffix = 's2x';
x = (0:M-1);

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

y = dvbsapskmod(x,M,stdSuffix);

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

scatterplot(y)

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

Модулируйте данные с помощью 64-APSK, как задано в DVB-S2X стандарте. Постройте график созвездия для различных идентификаторов кода.

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

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

Модулируйте данные согласно 64-APSK созвездию для идентификатора кода 7/9 и постройте график ссылочного созвездия.

y1 = dvbsapskmod(x,M,std,'7/9','PlotConstellation',true);

Figure contains an axes. The axes with title DVB-S2x 64(8+16+20+20)-APSK with Code Rate 7/9, UnitAveragePower=false contains 67 objects of type line, text.

Модулируйте установку идентификатора кода равным 132/180 и наблюдайте различия в структуре созвездия.

y2 = dvbsapskmod(x,M,std,'132/180','PlotConstellation',true);

Figure contains an axes. The axes with title DVB-S2x 64(4+12+20+28)-APSK with Code Rate 132/180, UnitAveragePower=false contains 67 objects of type line, text.

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

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

M = 16;
std = 's2';
x = randi([0 1],1000*log2(M),1);

Установите тип входа, чтобы бит и модулировать данные в соответствии с 16-APSK созвездием для идентификатора кода 2/3. Используйте нормальную длину системы координат по умолчанию.

y1 = dvbsapskmod(x,M,std,'2/3','InputType','bit');

Модулируйте данные с помощью различных настроек, установите идентификатор кода равным 8/9 и используйте короткую длину системы координат.

y2 = dvbsapskmod(x,M,std,'8/9','short','InputType','bit');

Средняя степень модулированного сигнала изменяется на основе идентификатора кода. Вычислите среднюю степень модулируемых сигналов.

y1avgPow = mean(abs(y1).^2)
y1avgPow = 0.7590
y2avgPow = mean(abs(y2).^2)
y2avgPow = 0.7716

Модулируйте данные, применяющие 16-APSK, как указано в стандартах DVB-SH и DVB-S2. Нормализуйте выход модулятора так, чтобы он имел среднюю степень сигнала 1 Вт.

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

M = 16;
x =  0:M-1;

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

y1 = dvbsapskmod(x,M,'sh','OutputDataType','single');

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

y2 = dvbsapskmod(x,M,'s2','OutputDataType','single');

Модулируйте данные, применяющие 16-APSK, как указано в DVB-S2. Используйте пары «имя-значение», чтобы задать среднюю мощность блока равной true и задать выход одного типа данных.

y3 = dvbsapskmod(x,M,'s2','UnitAveragePower',true,'OutputDataType','single');

Проверьте, какие сигналы имеют среднюю степень модуля.

y1avgPow = mean(abs(y1).^2)
y1avgPow = single
    1
y2avgPow = mean(abs(y2).^2)
y2avgPow = single
    0.7752
y3avgPow = mean(abs(y3).^2)
y3avgPow = single
    1.0000

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

свернуть все

Входной сигнал, заданный как скаляр, вектор или матрица. Элементами x должны быть двоичные значения или целые числа, которые варьируются от 0 до (M - 1), где M - порядок модуляции.

Примечание

Чтобы обработать входной сигнал как двоичные элементы, установите 'InputType' значение в 'bit'. Для двоичных входов количество строк должно быть целым числом, кратным log2 (M). Группа log2 (M) биты в столбце отображаются на символ, причем первый бит представляет MSB и последний бит представляет LSB.

Типы данных: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

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

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

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

Типы данных: 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 = dvbsapskmod(x,M,std,'InputType','bit','OutputDataType','single');

Входной тип, заданный как разделенная разделенными запятой парами, состоящая из 'InputType' и любой из них 'integer' или 'bit'. Как использовать 'integer'входной сигнал должен состоять из целочисленных значений от 0 до (M – 1). Как использовать 'bit'входной сигнал должен содержать двоичные значения, а количество строк должно быть целым числом, кратным log2 (M).

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

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

Примечание

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

Зависимости

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

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

Выход данных, заданный как разделенная разделенными запятой парами, состоящая из 'OutputDataType' и любой из них 'double' или 'single'.

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

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

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

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

свернуть все

Модулированный сигнал, возвращенный как комплексный скаляр, вектор или матрица. Размерности y зависят от заданного 'InputType' значение.

'InputType' ЗначениеРазмерности y
'integer'y имеет те же размерности, что и входные x.
'bit'Количество строк в y равен количеству строк в x разделенный на лог2 (M).

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

Подробнее о

свернуть все

DVB-S2/S2X/SH

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

Ссылки

[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.

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

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

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