apskmod

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

Описание

пример

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

Примечание

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

пример

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

пример

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

Примеры

свернуть все

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

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

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)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

Модулируйте случайную последовательность данных, используя APSK со смещением нулевой фазы для внутреннего круга и смещением фазы pi/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)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

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

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

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

The apskmod функция принимает, что одноканальный двоичный вход выровнен по левому краю msb и задан по столбцу. Измените форму матрицы бита, чтобы выразить сигнал с одним каналом в одном столбце.

xBit = de2bi(x,'left-msb');
xBit = xBit.';

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

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

Figure contains an axes. The axes with title 16-APSK with Gray Mapping contains 19 objects of type line, text.

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

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');

Figure contains an axes. The axes with title 16-APSK with Custom Mapping contains 19 objects of type line, text.

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

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

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)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Входной тип, заданный как разделенная разделенными запятой парами, состоящая из 'InputType' и любой из следующих опций:

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

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

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

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

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

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

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

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

свернуть все

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

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

Алгоритмы

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

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

χ={R1exp(j(2πM1i+θ1)),i=0,,M11,R2exp(j(2πM2i+θ2)),i=0,,M21,RNCexp(j(2πMNCi+θNc)),i=0,,MNC1,

где

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

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

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

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

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

  • j=1

Ссылки

[1] Corazza, Giovanni E. Digital Satellite Communications. Нью-Йорк: Springer Science Business Media, LLC, 2007.

[2] Лю, З., К. Се, К. Пэн и З. Ян. APSK Созвездия с серым Отображением. Буквы IEEE. Том 15, № 12, декабрь 2011, стр. 1271-1273.

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

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

.

См. также

Функции

Объекты

Введенный в R2018a