exponenta event banner

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)

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 для серых и пользовательских отображений символов.

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

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

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

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. Пропустите сигнал через шумный канал и отобразите диаграмму созвездия.

Определите векторы для порядка модуляции и радиусов кольца 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 с SNR 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, (sum(M)-1)].

Примечание

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

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

Точки созвездия на кольцо PSK, заданные как вектор с несколькими элементами. Каждый векторный элемент указывает количество точек созвездия в соответствующем кольце PSK. Первый элемент соответствует самому внутреннему кругу и так далее, до последнего элемента, который соответствует самому внешнему кругу. Значения элементов должны быть кратны четырем и sum(M) должно быть, сила двух. Порядок модуляции представляет собой общее количество точек в сигнальной совокупности и равен сумме векторных элементов. sum(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. Внутреннее кольцо имеет фазовый сдвиг 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' - использует отображение серого по контуру в фазовом измерении для каждого кольца PSK.

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

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

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

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

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

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

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

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

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

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

Опорное созвездие графика, указанное как разделенная запятыми пара, состоящая из 'PlotConstellation' и логический скаляр. Для построения графика опорной совокупности установите PlotConstellation кому true.

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

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

свернуть все

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

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

Алгоритмы

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

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

χ = {R1exp (j (2πM1i +θ1)), i=0..., M1−1, R2exp (j (2πM2i +θ2)), i=0..., M2−1, ⋮⋮ RNCexp (j (2πMNCi +θNc)), i=0..., MNC−1,

где

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

  • ЧПУ - количество концентрических колец. ЧПУ ≥ 2.

  • Ml - количество точек созвездия в I кольце.

  • R1 - радиус первого кольца.

  • startl - фазовый сдвиг первого кольца.

  • j = − 1

Ссылки

[1] Корацца, Джованни Э. Цифровая спутниковая связь. Нью-Йорк: Springer Science Business Media, LLC, 2007.

[2] Лю, З., К. Се, К. Пэн и З. Ян. «APSK Constellation с серым отображением». Информационные письма IEEE. Том 15, номер 12, декабрь 2011 г., стр. 1271-1273.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Функции

Объекты

Представлен в R2018a