dvbsapskmod

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

Описание

пример

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' задает желаемый тип выходных данных как дважды. Задайте аргументы пары "имя-значение" после всех других входных параметров.

Примеры

свернуть все

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

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

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

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

y = dvbsapskmod(x,M,stdSuffix);

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

scatterplot(y)

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.

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

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

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 object. The axes object 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 object. The axes object 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 для нормальных и коротких длин системы координат. Вычислите степень выходного сигнала.

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

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-S2 и DVB-SH. Нормируйте модулятор выход так, чтобы это имело среднюю силу сигнала 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. Используйте пары "имя-значение", чтобы установить модульную среднюю степень на истину и задать один тип данных выход.

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

Зависимости

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

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

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

Зависимости

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

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

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

Задайте дополнительные разделенные запятой пары 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'.

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

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

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

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

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

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

свернуть все

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

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

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

Больше о

свернуть все

DVB-S2/S2X/SH

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

Ссылки

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

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

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

Смотрите также

Функции

Объекты

Введенный в R2018a