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

Демодулируйте использующую произвольную совокупность QAM

Описание

Объект 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 на ложь, объект всегда выполняет демодуляцию трудного решения. Это свойство применяется, когда вы устанавливаете свойство BitOutput на истину.

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