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)

Модулируйте данные, использующие 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);

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

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)

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

свернуть все

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