коммуникация. RectangularQAMDemodulator

(Чтобы быть удаленным), Демодулируют использующее прямоугольное сигнальное созвездие QAM

comm.RectangularQAMDemodulator будет удален в будущем релизе. Используйте qamdemod вместо этого.

Описание

Объект RectangularQAMDemodulator демодулирует сигнал, который модулировался с помощью квадратурной амплитудной модуляции с совокупностью на прямоугольной решетке.

Чтобы демодулировать сигнал, который модулировался с помощью квадратурной амплитудной модуляции:

  1. Задайте и настройте свой прямоугольный объект демодулятора QAM. Смотрите Конструкцию.

  2. Вызовите step, чтобы демодулировать сигнал согласно свойствам comm.RectangularQAMDemodulator. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

При запуске в R2016b, вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Конструкция

H = comm.RectangularQAMDemodulator создает Системный объект демодулятора, H. Этот объект демодулирует входной сигнал с помощью прямоугольного метода квадратурной амплитудной модуляции (QAM).

H = comm.RectangularQAMDemodulator(Name,Value) создает прямоугольный объект демодулятора QAM, H, с каждым заданным набором свойств к заданному значению. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

H = comm.RectangularQAMDemodulator(M,Name,Value) создает прямоугольный объект демодулятора QAM, H. Этот объект имеет набор свойств ModulationOrder к M и другой заданный набор свойств к заданным значениям.

Свойства

ModulationOrder

Число точек в сигнальном созвездии

Задайте число точек в сигнальном созвездии как скалярное значение с положительной, целочисленной степенью двойки. Значением по умолчанию является 16.

PhaseOffset

Смещение фазы совокупности

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

BitOutput

Выходные данные как биты

Задайте, состоит ли вывод из групп битов или целочисленных значений символа. Когда вы устанавливаете это свойство на истину, метод шага выводит вектор-столбец битных значений, длина которых равняется log2 (ModulationOrder) времена количество демодулируемых символов. Когда вы устанавливаете это свойство на false, метод step выводит вектор-столбец с длиной, равной вектору входных данных. Этот вектор содержит целочисленные значения символа между 0 и ModulationOrder-1. Значением по умолчанию является false.

SymbolMapping

Кодирование совокупности

Задайте, как объект сопоставляет целое число или группу log2 (ModulationOrder) биты к соответствующему символу как один из Binary | Gray | Custom. Значением по умолчанию является Gray. Когда вы устанавливаете это свойство на Gray, объект использует серо-закодированное сигнальное созвездие. Когда вы устанавливаете это свойство на Binary, объект использует естественную двоично кодированную совокупность. Когда вы устанавливаете это свойство на Custom, объект использует сигнальное созвездие, заданное в свойстве CustomSymbolMapping.

CustomSymbolMapping

Пользовательское кодирование совокупности

Задайте пользовательский вектор отображения символа совокупности. Значением по умолчанию является 0:15. Это свойство является строкой или вектор-столбцом с размером ModulationOrder и с уникальными целочисленными значениями в области значений [0, ModulationOrder-1]. Значения должны иметь тип данных double. Первый элемент этого вектора соответствует главной крайней левой точке совокупности, с последующими элементами, бегущими по столбцам, слева направо. Последний элемент соответствует самой правой нижней частью точке. Это свойство применяется, когда вы устанавливаете свойство SymbolMapping на Custom.

NormalizationMethod

Метод нормализации совокупности

Укажите, что метод раньше нормировал сигнальное созвездие как Minimum distance between symbols | Average power | Peak power. Значением по умолчанию является Minimum distance between symbols.

MinimumDistance

Минимальное расстояние между символами

Задайте расстояние между двумя самыми близкими точками совокупности как положительное, действительное значение числового скаляра. Значением по умолчанию является 2. Это свойство применяется, когда вы устанавливаете свойство NormalizationMethod на Minimum distance between symbols.

AveragePower

Средняя степень совокупности

Задайте среднюю степень символов в совокупности как положительное, действительное значение числового скаляра. Значением по умолчанию является 1. Это свойство применяется, когда вы устанавливаете свойство NormalizationMethod на Average power.

PeakPower

Пиковая мощность совокупности

Задайте максимальную мощность символов в совокупности как положительное, действительное значение числового скаляра. Значением по умолчанию является 1. Это свойство применяется, когда вы устанавливаете свойство NormalizationMethod на Peak power.

DecisionMethod

Метод решения демодуляции

Задайте метод решения объектное использование в качестве Hard decision | Log-likelihood ratio | Approximate log-likelihood ratio. Значением по умолчанию является Hard decision. Когда вы устанавливаете свойство BitOutput на false, объект всегда выполняет демодуляцию трудного решения. Это свойство применяется, когда вы устанавливаете свойство BitOutput на true.

VarianceSource

Источник шумового отклонения

Задайте источник шумового отклонения как Property | Input port. Значением по умолчанию является Property. Это свойство применяется, когда вы устанавливаете свойство BitOutput на true и свойство DecisionMethod к Log-likelihood ratio или Approximate log-likelihood ratio.

Variance

Шумовое отклонение

Задайте отклонение шума как положительное, действительное скалярное значение. Значением по умолчанию является 1. Если это значение является очень маленьким (т.е. ОСШ очень высок), вычисления логарифмического отношения правдоподобия (LLR) могут привести к Inf или-Inf. Этот результат происходит, потому что алгоритм LLR вычисляет экспоненциал очень больших или очень небольших чисел с помощью арифметики конечной точности. В таких случаях, с помощью аппроксимированного LLR рекомендуется, потому что его алгоритм не вычисляет экспоненциалы. Это свойство применяется, когда вы устанавливаете свойство BitOutput на true, свойство DecisionMethod к Log-likelihood ratio или Approximate log-likelihood ratio, и свойство VarianceSource к Property. Это свойство является настраиваемым.

OutputDataType

Тип данных вывода

Задайте тип выходных данных как Full precision | Smallest unsigned integer | double | single | int8 | uint8 | int16 | uint16 | int32 | uint32. Значением по умолчанию является Full precision.

Это свойство применяется только, когда вы устанавливаете свойство BitOutput на false или когда вы устанавливаете свойство BitOutput на true и свойство DecisionMethod к Hard decision. В этом случае, когда свойство OutputDataType установлено в Full precision, и тип входных данных является одним - или с двойной точностью, выходные данные имеет совпадающий тип данных как вход.

Когда входные данные имеют фиксированную точку, тип выходных данных ведет себя, как будто вы установили свойство OutputDataType на Smallest unsigned integer.

Когда вы устанавливаете свойство BitOutput на true и свойство DecisionMethod к Hard Decision, затем тип данных logical становится допустимой опцией.

Когда вы устанавливаете свойство BitOutput на true и свойство DecisionMethod к Log-likelihood ratio или Approximate log-likelihood ratio, тип выходных данных совпадает с типом входа. В этом случае тот тип данных может только быть одним - или с двойной точностью.

 Свойства фиксированной точки

Методы

совокупность(Чтобы быть удаленным), Вычисляют или строят идеальное сигнальное созвездие
шаг(Чтобы быть удаленным), Демодулируют использующий прямоугольный метод QAM
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

развернуть все

Этот пример показывает, как модулировать и демодулировать данные с помощью 16-QAM модуляции.

Создайте прямоугольный модулятор QAM и объекты демодулятора с набором порядка модуляции к 16.

hMod = comm.RectangularQAMModulator('ModulationOrder',16);
hDemod = comm.RectangularQAMDemodulator('ModulationOrder',16);

Создайте объект канала AWGN.

hAWGN = comm.AWGNChannel('EbNo',2,'BitsPerSymbol',4);

Чтобы отследить количество ошибок, создайте объект счетчика коэффициента ошибок.

hError = comm.ErrorRate;

Установите генератор случайных чисел на его состояние по умолчанию гарантировать воспроизводимость.

rng default

Сгенерируйте случайные символы данных и примените 16-QAM модуляцию.

dataIn = randi([0 15],10000,1);
txSig = step(hMod,dataIn);

Передайте модулируемые данные через канал AWGN.

rxSig = step(hAWGN,txSig);

Отобразите шумную совокупность с помощью функции scatterplot.

scatterplot(rxSig)

Демодулируйте полученные символы данных.

dataOut = step(hDemod,rxSig);

Используя функцию step hError, вычислите ошибочную статистику.

errorStats = step(hError,dataIn,dataOut);

Отобразите ошибочную статистику, где можно заметить, что 8 ошибок были зарегистрированы в 10 000 переданных символов.

fprintf('\nError rate = %f\nNumber of errors = %d\nNumber of symbols = %d\n', ...
errorStats)
Error rate = 0.000800
Number of errors = 8
Number of symbols = 10000

Больше о

развернуть все

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока Rectangular QAM Demodulator Baseband. Свойства объектов соответствуют параметрам блоков.

Вопросы совместимости

развернуть все

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

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

Функции

Системные объекты

Представленный в R2012a