comm.GeneralQAMDemodulator

Демодулируйте с использованием произвольных созвездий QAM

Описание

The GeneralQAMDemodulator объект демодулирует сигнал, который был модулирован с помощью квадратурной амплитудной модуляции. Вход является представлением модулированного сигнала в основной полосе частот.

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

  1. Определите и настройте объект демодулятора QAM. См. «Конструкция».

  2. Функции step для демодуляции сигнала в соответствии со свойствами comm.GeneralQAMModulator. Поведение step характерен для каждого объекта в тулбоксе.

Примечание

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

Конструкция

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

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

H = comm.GeneralQAMDemodulator(CONST,Name,Value) создает общий объект демодулятора QAM, H. Этот объект имеет Constellation значение свойства установлено в CONST, и другие заданные свойства устанавливаются на заданные значения.

Свойства

Constellation

Сигнальное созвездие

Задайте точки созвездия как действительный или комплексный вектор типа данных с двойной точностью. По умолчанию это exp (2×π×1i×(0:7)8). Длина вектора определяет порядок модуляции.

Когда вы устанавливаете BitOutput свойство к false, а step метод выводит вектор с целочисленными значениями. Эти целые числа находятся между 0 и M -1, где M - длина этого вектора свойств. Длина выходного вектора равна длине входного сигнала .

Когда вы устанавливаете BitOutput свойство к trueсигнал выхода содержит биты. Для битовых выходов размер сигнального созвездия требует целого числа степень двойки а выходная длина является целым числом, кратным количеству бит на символ.

BitOutput

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

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

Когда вы устанавливаете это свойство на true а step метод выводит вектор-столбец с битовыми значениями с длиной, равной log2 (M), умноженной на количество демодулированных символов, где M - длина сигнального совокупности, заданная в Constellation свойство. Длина M определяет порядок модуляции.

Когда вы устанавливаете это свойство на false, а step метод выводит вектором-столбцом, длиной, равной входному вектору данных. Вектор содержит целочисленные значения символов между 0 и M -1 .

DecisionMethod

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

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

VarianceSource

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

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

Variance

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

Задайте отклонение шума как ненулевое, действительное скалярное значение. Значение по умолчанию является 1. Если это значение очень мало (то есть ОСШ очень высок), расчеты логарифмического отношения логарифмической правдоподобности (LLR) могут привести к получению Inf или -Inf. Этот результат происходит, потому что алгоритм LLR вычисляет экспоненциал очень больших или очень малых чисел с помощью арифметики конечной точности. В таких случаях рекомендуется использовать приблизительный LLR, потому что его алгоритм не вычисляет экспоненциалов. Это свойство применяется, когда вы устанавливаете 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 или Approximate log-likelihood ratio. В этом случае, когда вы устанавливаете OutputDataType свойство к Full precisionтип выходных данных аналогичен типу входных данных, когда входные данные имеют тип данных с одной или двойной точностью.

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

Когда входной сигнал является целочисленным типом данных, у вас должна быть пользовательская лицензия Fixed-Point Designer™, чтобы использовать это свойство в Smallest unsigned integer или Full precision режим.

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

Когда вы устанавливаете BitOutput свойство к true и DecisionMethod свойство к Approximate log-likelihood ratio вы можете задать только это свойство Full precision | Custom.

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

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

Методы

шагДемодулируйте с использованием произвольных созвездий QAM
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

Примеры

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

 % Setup a three point constellation
 c = [1 1i -1];
 hQAMMod = comm.GeneralQAMModulator(c);
 hAWGN = comm.AWGNChannel('NoiseMethod', ...
     'Signal to noise ratio (SNR)','SNR',15,'SignalPower',0.89);
 hQAMDemod = comm.GeneralQAMDemodulator(c);

 %Create an error rate calculator
 hError = comm.ErrorRate;
 for counter = 1:100
     % Transmit a 50-symbol frame
     data = randi([0 2],50,1);
     modSignal = step(hQAMMod, data);
     noisySignal = step(hAWGN, modSignal);
     receivedData = step(hQAMDemod, noisySignal);
     errorStats = step(hError, data, receivedData);
 end
 fprintf('Error rate = %f\nNumber of errors = %d\n', ...
      errorStats(1), errorStats(2))

Подробнее о

расширить все

Алгоритмы

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

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

.

См. также

Функции

Объекты

Введенный в R2012a