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

Задайте векторы для порядка модуляции и кольцевых радиусов 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)

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. Первый элемент соответствует самому внутреннему кругу, и так далее, до последнего элемента, который соответствует наиболее удаленному кругу. 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' – Входной сигнал должен состоять из целых чисел в области значений [0, (сумма (M) – 1)].

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

Типы данных: 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

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

где

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

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

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

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

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

  • j=1

Ссылки

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

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

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

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

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

Функции

Объекты

Введенный в R2018a