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

Установите порядок модуляции и стандартный суффикс. Сгенерируйте случайные битные данные для 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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