mil188qammod

Квадратурная амплитудная модуляция MIL STD 188 110 B/C (QAM)

Описание

пример

y = mil188qammod(x,M) выполняет модуляцию QAM на входном сигнале, x, в соответствии с миллиметром STD-188 110 и порядком модуляции, M. Для получения дополнительной информации смотрите миллиметр STD-188 110.

пример

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

Примеры

свернуть все

Модулируйте данные, использующие 32-QAM, как задано в стандарте MIL-188-110C. Отобразите результат с помощью графика рассеивания.

Установите M на 32 и создайте вектор данных, содержащий все возможные символы.

M = 32;
x = (0:M-1);

Модулируйте данные с помощью QAM, как задано в миллиметре STD-188 110C.

y = mil188qammod(x,M);

Отобразите созвездие как график рассеивания.

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.

Модулируйте данные, использующие 16-QAM, как задано в стандарте миллиметра STD-188 110B. Нормируйте модулятор выход так, чтобы это имело среднюю силу сигнала 1 Вт.

Установите M и сгенерируйте случайные данные.

M = 16;
x = randi([0 M-1],1e5,1);

Модулируйте данные, применяющиеся 16-QAM, как задано в миллиметре STD-188 110B. Используя пары "имя-значение", набор модульная средняя степень к true и включите график созвездия.

y = mil188qammod(x,M,'UnitAveragePower',true,'PlotConstellation',true);

Figure contains an axes object. The axes object with title MIL188 16-QAM , UnitAveragePower=true contains 19 objects of type line, text.

Проверьте, что сигнал имеет приблизительно модульную среднюю силу.

avgPow = mean(abs(y).^2)
avgPow = 1.0012

Модулируйте последовательность битов, использующих 64-QAM, как задано MIL-STD188-110B. Отобразите созвездие.

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

M = 64;
numBitsPerSym = log2(M);
data = randi([0 1],1000*numBitsPerSym,1);

Модулируйте данные, применяющиеся 64-QAM, как задано миллиметром STD-188 110B, и выведите символы созвездия одного типа данных.

y = mil188qammod(data,M,'InputType','bit','OutputDataType','single');

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

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.

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

свернуть все

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

Примечание

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

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

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

Пример: 16

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

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

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

Пример: y = mil188qammod (данные, M, 'InputType', 'бит', 'OutputDataType', 'single');

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

Больше о

свернуть все

Миллиметр STD-188 110

Миллиметр STD-188 110 является стандартом Министерства обороны США для коммуникаций HF с помощью последовательного режима PSK и данных и речевых сигналов.

Стандарт задает схемы модуляции физического уровня коммуникаций тактического и долгого пути. Схема модуляции, заданная стандартом, является соединением QAM и APSK. Для подробного описания схемы модуляции см. [1].

Ссылки

[1] Миллиметр STD-188 110B & C: "Функциональная совместимость и стандарты эффективности для модемов данных". Стандарт интерфейса министерства обороны, США.

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

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

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

Функции

Объекты

Введенный в R2018a