Rectangular QAM Demodulator Baseband

Демодулируйте прямоугольные данные с модуляцией QAM

Библиотека

AM, в цифровой поддиапазоне базовых частот модуляции

  • Rectangular QAM Demodulator Baseband block

Описание

Блок Rectangular QAM Demodulator Baseband демодулирует сигнал, который был модулирован с помощью квадратурной амплитудной модуляции с созвездием на прямоугольной решетке.

Примечание

Все значения степени принимают номинальное сопротивление 1 Ом.

Сигнальное созвездие имеет M точек, где M является M-ary number параметром. M должен иметь форму 2K для некоторого положительного целого числа K. Блок масштабирует сигнальное созвездие на основе того, как вы устанавливаете параметр Normalization method. Для получения дополнительной информации см. страницу с описанием для блока Rectangular QAM Modulator Baseband.

Этот блок принимает скаляр или вектор-столбец входной сигнал. Для получения дополнительной информации о типах данных, которые поддерживает каждый порт блока см. Таблицу типов Поддерживаемые данные на этой странице.

Алгоритм жесткого принятия решений

Алгоритм демодулятора преобразует полученные значения созвездия входных сигналов в M-арное целое число I и Q индексы символов между 0 и M1 и затем преобразует эти индексы демодулированных символов в форматированные выходные значения.

Целочисленный индекс символа расчета выполняется первым удалением и масштабированием комплексного входного сигнала созвездия (возможно, с шумом) коэффициентом удаления и коэффициентом денормализации, соответственно. Эти факторы получают из Phase offset, Normalization method и связанных параметров. Эти удаленные и денормализованные значения добавляются к M1 чтобы перевести их в приблизительную область значений от 0 до 2×(M1) (плюс шум). Получившиеся значения затем перерассчитываются через деление на два (или, эквивалентно, сдвиг вправо на один бит для операции с фиксированной точкой), чтобы получить область значений приблизительно между 0 и M1 (плюс шум) для I и Q. Шумные значения индекса округляются до ближайшее целого числа и обрезаются, через насыщение, и преобразуются в целочисленные значения символов в области значений [0 M-1]. Наконец, основываясь на других параметрах блоков, целочисленный индекс преобразуется в значение символа, которое форматировано и приведено к выбранной Output data type.

Следующие рисунки содержат поток сигналов схемы для операции алгоритма с плавающей точкой и с фиксированной точкой. Схемы с плавающей точкой применяются, когда тип данных входных сигналов double или single. Схемы с фиксированной точкой применяются, когда входной сигнал является типом данных с фиксированной точкой со знаком. Обратите внимание, что схема упрощается, когда Phase offset является произведением и/или 1 производный коэффициент денормализации.

Потоки сигналов с тривиальным смещением фазы и коэффициентом денормализации, равным 1

Потоки сигналов с нетривиальным смещением фазы и фактором денормализации неоднородности

Параметры

M-ary number

Число точек в сигнальном созвездии. Он должен иметь форму 2K для некоторого положительного целого числа K.

Normalization method

Определяет, как блок масштабирует сигнальное созвездие. Варианты Min. distance between symbols, Average Power, и Peak Power.

Minimum distance

Этот параметр появляется, когда Normalization method установлено на Min. distance between symbols.

Расстояние между двумя ближайшими точками созвездия.

Average power, referenced to 1 ohm (watts)

Средняя степень символов в созвездии, указанная на 1 Ом. Это поле появляется только, когда Normalization method установлено на Average Power.

Peak power, referenced to 1 ohm (watts)

Максимальная степень символов в созвездии, указанная на 1 Ом. Это поле появляется только, когда Normalization method установлено на Peak Power.

Phase offset (rad)

Вращение сигнального созвездия, в радианах.

Constellation ordering

Определяет, как блок присваивает двоичные слова точкам сигнального созвездия. Подробнее о страницу с описанием для блока Rectangular QAM Modulator Baseband.

Выбор User-defined отображает Constellation mapping полей, разрешающее пользовательское отображение.

Constellation mapping

Этот параметр появляется, когда User-defined выбран в раскрывающемся списке Constellation ordering.

Это строка или вектор-столбец размера M и должно иметь уникальные значения целого числа в область значений [0, M-1]. Значения должны быть типа данных double.

Первый элемент этого вектора соответствует самой верхней левой точке созвездия, с последующими элементами, идущими вниз по столбцу слева направо. Последний элемент соответствует самой нижней правой точке.

Output type

Определяет, создает ли блок целые числа или двоичные представления целых чисел.

Если установлено значение Integerблок создает целые числа.

Если установлено значение Bitблок создает группу K биты, называемых двоичным словом, для каждого символа, когда Decision type задано значение Hard decision. Если для Decision type задано значение Log-likelihood ratio или Approximate log-likelihood ratioблок выводит побитовые LLR и приблизительные LLR, соответственно.

Decision type

Этот параметр появляется, когда Bit выбран в раскрывающемся списке Output type.

Задает использование жесткого решения, LLR или приблизительного LLR во время демодуляции. Подробные сведения об алгоритме см. в разделах «Точный алгоритм LLR» и «Аппроксимация алгоритма LLR» в Руководстве Communications Toolbox™ User's Guide.

Noise variance source

Этот параметр появляется, когда Approximate log-likelihood ratio или Log-likelihood ratio выбран для Decision type.

Когда установлено значение Dialog, отклонение шума может быть задано в поле Noise variance. Когда установлено значение Portна блоке появляется порт, через который может быть введена отклонение шума.

Noise variance

Этот параметр появляется, когда для Noise variance source задано значение Dialog и задает отклонение шума в входном сигнале. Этот параметр настраивается в режиме normal mode, режим Accelerator и Rapid Accelerator mode.

Если вы используете Simulink® Coder™ быстрой симуляции (RSIM), чтобы создать исполняемый файл RSIM, тогда можно настроить параметр, не перекомпилируя модель. Это полезно для симуляций Монте-Карло, в которых вы запускаете симуляцию несколько раз (возможно, на нескольких компьютерах) с разным количеством шума.

Алгоритм LLR включает вычисление экспоненциалов очень больших или очень малых чисел с помощью арифметики конечной точности и дал бы:

  • Inf на -Inf если Noise variance очень высока

  • NaN если Noise variance и степень сигнала очень малы

В таких случаях используйте приблизительный LLR, так как его алгоритм не включает вычисление экспоненциалов.

Output

Когда параметр установлен в 'Inherit via internal rule' (настройка по умолчанию), блок наследует тип выходных данных от входного порта. Тип выходных данных будет таким же, как и тип входных данных, если вход имеет тип single или double. В противном случае тип выходных данных будет таким, как если бы этот параметр был установлен на 'Smallest unsigned integer'.

Когда параметр установлен в 'Smallest unsigned integer'тип выходных данных выбирается на основе настроек, используемых в панели Hardware Implementation диалогового окна Параметры конфигурации модели. Если ASIC/FPGA выбран на панели Hardware Implementation, тип выходных данных является идеальным минимальным размером, т.е. ufix(1) для битовых выходов и ufix(ceil(log2(M))) для целочисленных выходов. Для всех других вариантов выбора это беззнаковое целое число с наименьшим доступным размером слова, достаточной для соответствия идеальному минимальному размеру, обычно соответствующему размеру char (например uint8).

Для целочисленных выходов этот параметр может быть установлен на Smallest unsigned integer, int8, uint8, int16, uint16, int32, uint32, single, и double. Для битовых выходов опции Smallest unsigned integer, int8, uint8, int16, uint16, int32, uint32, boolean, single, или double.

Derotate factor

Этот параметр применяется только, когда вход является фиксированной точкой и Phase offset не является произведением, кратным

Это может быть задано как Same word length as input или Specify word length, в этом случае поле активировано для входа.

Denormalization factor

Этот параметр применяется только, когда вход является фиксированной точкой, и производный коэффициент денормализации является неоднородностью (не равной 1). Этот масштабный коэффициент определяется из Normalization method и других значений параметров в диалоге блоков.

Это может быть задано как Same word length as input или Specify word length, в этом случае поле активировано для входа. Всегда используется наиболее точная длина дроби.

Product output

Этот параметр применяется только, когда вход является сигналом с фиксированной точкой, и существует неоднородность (не равная 1) денормализованный коэффициент. Для него можно задать значение Inherit via internal rule или Specify word length, который включает поле для входа.

Установка значения Inherit via internal rule вычисляет полную точность размера слова продукта и длины дроби. Внутреннее правило для типов данных продукта в DSP System Toolbox™ Руководство описывает полное точность Product output внутреннее правило.

Установка значения Specify word length позволяет вам задать размер слова. Блок вычисляет лучшую по точности длину дроби на основе заданного размера слова и предварительно вычисленного значения Product output результата наихудшего случая (мин/макс) реального мира. Результат Product output в худшем случае предварительно вычисляется путем умножения денормализованного фактора с наихудшей областью значений входных сигналов (min/max), чисто на основе типа данных входного сигнала.

Блок использует Rounding mode, когда результат вычисления с фиксированной точкой не точно сопоставлен с числом, представленным типом данных и масштабированием, сохраняющим результат. Для получения дополнительной информации смотрите Режимы округления или Режим округления: самый простой (Fixed-Point Designer).

Sum

Этот параметр применяется только, когда вход является сигналом с фиксированной точкой. Для него можно задать значение Inherit via internal rule, Same as product output, или Specify word length, в этом случае поле включено для входа

Установка значения Inherit via internal rule вычисляет полную точность суммарного размера слова и длины дроби, основываясь на двух входах в Сумму в Алгоритме принятия решений с фиксированной точкой потока сигналов схеме. Правило совпадает с правилом наследования с фиксированной точкой параметра внутреннего Accumulator data type в блоке Simulink Sum (Simulink).

Установка значения Specify word length позволяет вам задать размер слова. Лучшая точная длина дроби вычисляется на основе размера слова, заданной в предварительно вычисленном максимальной области значений, необходимом демодулированному алгоритму для получения точных результатов. Тип данных с фиксированной точкой со знаком, который имеет лучшую точность, полностью содержит значения в области значений 2*(M1) для заданного размера слова.

Установка значения Same as product output позволяет, чтобы тип данных Sum совпадал с типом данных Product output (когда используется Product output). Если Product output не используется, этот параметр будет проигнорирован и Inherit via internal rule Будет использоваться настройка суммы.

Примеры

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

Модулируйте и демодулируйте шумный сигнал QAM.

Используйте бутон Open model, чтобы открыть модель демодуляции QAM.

Запустите симуляцию. Результаты сохраняются в базовом рабочем пространстве, где переменная ErrorVec является вектор-строка 1 на 3. BER находится в первом элементе.

Отображение статистики ошибок. Для Eb/No, 2 дБ, полученный BER составляет приблизительно 0,1. Ваши результаты могут незначительно варьироваться.

ans =

    0.0948

Увеличьте Eb/No до 4 дБ. Перезапустите симуляцию и заметьте, что BER уменьшился.

ans =

    0.0167

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

Вход

  • Плавающая точка двойной точности

  • Плавающая точка с одной точностью

  • Подписанная фиксированная точка, когда M-ary number является четной степенью 2 и:

    • Output type Integer

    • Output type Bit а Decision type есть Hard-decision

Вар

  • Плавающая точка двойной точности

  • Плавающая точка с одной точностью

Выход

  • Плавающая точка двойной точности

  • Плавающая точка с одной точностью

  • Логический, когда Output type Bit

  • 8-, 16- и 32-битные целые числа со знаком

  • 8-, 16- и 32-битные беззнаковые целые числа

  • ufix (1) в ASIC/FPGA, когда Output type Bit

  • ufix(log2M) в ASIC/FPGA, когда Output type Integer

Ссылки

[1] Smith, Joel G., «Odd-Bit Quadrature Amplitude-Shift Keying», IEEE Transactions on Communications, Vol. COM-23, March 1975, 385-389.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Представлено до R2006a