apskmod

Модуляция амплитудного манипулирования сдвига фазы (APSK)

Синтаксис

y = apskmod(x,M,radii)
y = apskmod(x,M,radii,phaseoffset)
y = apskmod(___,Name,Value)

Описание

пример

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, (sum(M)-1)].

Примечание

Чтобы обработать входной сигнал как двоичные элементы, установите пару "имя-значение" 'InputType' на 'bit'. Для двоичных входов количество строк должно быть целочисленным кратным log2 (сумма (M)). Группы log2 (сумма (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 совокупности. Внутренний звонок имеет смещение фазы пи/4, второй звонок имеет смещение фазы пи/12, и внешний звонок имеет смещение фазы пи/16.

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

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

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

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

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

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

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

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

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

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

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