apskmod

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

Описание

пример

y = apskmod(x,M,radii) выполняет модуляцию APSK на входных данных, x, на основе конкретного количества созвездия указывает на звонок PSK, M, и радиус каждого звонка PSK, radii. Для описания модуляции APSK см. Алгоритмы.

Примечание

apskmod в частности применяется к нескольким кольцевым созвездиям PSK. Для одного кольцевого созвездия PSK используйте pskmod.

пример

y = apskmod(x,M,radii,phaseoffset) задает смещение начальной фазы для каждого звонка PSK APSK модулируемый сигнал.

пример

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

Примеры

свернуть все

Модулируйте данные с помощью APSK с неравным количеством точек созвездия на каждом круге.

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

M = [4 8 20];
radii = [0.3 0.7 1.2];
modOrder = sum(M);
x = 0:modOrder-1;

Примените модуляцию APSK к данным.

y = apskmod(x,M,radii);

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

scatterplot(y)

Модулируйте случайную последовательность данных с помощью APSK с нулевым смещением фазы для внутреннего круга и смещением фазы пи/6 для внешнего круга.

Задайте векторы для порядка модуляции, кольцевых радиусов PSK и кольцевого смещения фазы PSK. Сгенерируйте случайные данные.

M = [8 8];
modOrder = sum(M);
radii = [0.5 1];
phOff = [0 pi/6];

x = randi([0 modOrder-1],100,1);

Примените модуляцию APSK к данным.

y = apskmod(x,M,radii,phOff);

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

scatterplot(y)

Постройте созвездия APSK для серых и пользовательских отображений символа.

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

M = [8 8];
modOrder = sum(M);
radii = [0.5 1.5];
x = 0:modOrder-1;
xBit = de2bi(x);

Примените модуляцию APSK к данным с помощью смещения фазы по умолчанию. Начиная со значений элемента для M равны, и значения элемента для смещения фазы равны, значения по умолчанию отображения символа к 'gray'. Двоичный вход используется, чтобы подсветить природу Грэя отображения созвездия. Постройте созвездие.

y = apskmod(xBit,M,radii,'PlotConstellation',true,'InputType','bit');

Создайте пользовательский вектор отображения символа. Это пользовательское отображение, оказывается, другой Грэй, сопоставляющий.

cmap = [0;1;9;8;12;13;5;4;2;3;11;10;14;15;7;6];

Примените модуляцию APSK с пользовательским отображением символа. Постройте созвездие. Двоичный вход используется, чтобы подсветить, что пользовательское отображение задает различное отображение символа Грэя.

z = apskmod(xBit,M,radii,'SymbolMapping',cmap,'PlotConstellation',true,'InputType','bit');

Модулируйте случайную последовательность битов с помощью APSK, и выходные данные вводят single. Передайте сигнал через шумный канал и отобразите схему созвездия.

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

M = [8 12 20 24];
radii = [0.8 1.2 2 2.5];
bitsPerSym = log2(sum(M));

x = randi([0 1],2000*bitsPerSym,1);

Примените модуляцию APSK к данным и используйте пару "имя-значение", чтобы вывести как тип данных single.

y = apskmod(x,M,radii,'InputType','bit','OutputDataType','single');

Пройдите через канал AWGN с ОСШ на 25 дБ.

yrec = awgn(y,25,'measured');

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

scatterplot(yrec)

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

свернуть все

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

Примечание

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

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

Созвездие указывает на звонок PSK, заданный как вектор больше чем с одним элементом. Каждый векторный элемент указывает на количество точек созвездия в его соответствующем звонке PSK. Первый элемент соответствует самому внутреннему кругу, и так далее, до последнего элемента, который соответствует наиболее удаленному кругу. Значения элемента должны быть множителями четыре и сумма (M) должна быть степень двойки. Порядок модуляции является общим количеством точек в сигнальном созвездии и равняется сумме векторных элементов, сумме (M).

Пример: [4 12 16] задает три кольцевых созвездия PSK с порядком модуляции sum(M) = 32.

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

Радиус на звонок PSK, заданный как вектор с той же длиной как M. Первый элемент соответствует самому внутреннему кругу, и так далее, до последнего элемента, который соответствует наиболее удаленному кругу. Элементы должны быть положительными и расположены в увеличивающемся порядке.

Пример: [0.5 1 2] задает радиусы для трех звонков PSK созвездия. Внутренний звонок имеет радиус 0,5, второй звонок имеет радиус 1,0, и внешний звонок имеет радиус 2,0.

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

Смещение фазы на PSK звенит в радианах, заданных как скаляр или вектор с той же длиной как M. Первый элемент соответствует самому внутреннему кругу, и так далее, до последнего элемента, который соответствует наиболее удаленному кругу. phaseoffset может быть скаляр только если все элементы M то же значение.

Пример: [pi/4 pi/12 pi/16] задает три кольцевых смещения фазы PSK созвездия. Внутренний звонок имеет смещение фазы пи/4, второй звонок имеет смещение фазы пи/12, и внешний звонок имеет смещение фазы пи/16.

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

Аргументы в виде пар имя-значение

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

Пример: y = apskmod(x,M,radii,'InputType','bit','OutputDataType','single');

Отображение символа, заданное как разделенная запятой пара, состоящая из 'SymbolMapping' и одно из следующего:

  • 'contourwise-gray' — Использование Серое отображение вдоль контура в размерности фазы для каждого звонка PSK.

  • 'gray' — Использование Серое отображение вдоль контура и в амплитуде и в размерностях фазы. Для Серого отображения символа, всех значений для M должно быть равным и все значения для phaseoffset должно быть равным. Для описания используемого отображения Грэя см. [2].

  • целочисленный вектор — Использование пользовательское отображение символа. Вектор должен состоять из суммы (M) уникальные элементы со значениями в области значений [0, (сумма (M)-1]. Первый элемент соответствует точке созвездия в первом квадранте самого внутреннего круга с последующими элементами, расположенными против часовой стрелки вокруг звонков PSK.

Отображение символа по умолчанию зависит от M и phaseOffset. Когда все элементы M равны и все элементы phaseOffset равны, значением по умолчанию является 'gray'. Для всех других случаев значением по умолчанию является 'contourwise-gray'.

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

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

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

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

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

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

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

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

свернуть все

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

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

Алгоритмы

Функция реализует чистое созвездие APSK.

Чистое созвездие M-APSK состоит из N C концентрические кольца или контуры, каждый с однородно расположенными с интервалами точками PSK. Набор созвездия M-APSK

где

  • Порядок модуляции равен сумме всего l M для l = 1, 2..., N C.

  • N C является количеством концентрических колец. N C ≥ 2.

  • M l является количеством точек созвездия в l th звонок.

  • R l является радиусом l th звонок.

  • θ l является смещением фазы l th звонок.

Ссылки

[1] Corazza, Джованни Э. Цифровая спутниковая связь. Нью-Йорк: научные СМИ бизнеса Спрингера, LLC, 2007.

[2] Лю, Z., Ц. Се, К. Пенг и З. Янг. "Созвездие APSK с Серым Отображением". Коммуникационные Буквы IEEE. Издание 15, Номер 12, декабрь 2011, стр 1271–1273.

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

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

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

Функции

Объекты

Введенный в R2018a