Rectangular QAM Demodulator Baseband

Демодулируйте rectangular-QAM-modulated данные

Библиотека

AM, в подбиблиотеке Digital Baseband Модуляции

  • Rectangular QAM Demodulator Baseband block

Описание

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

Примечание

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

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

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

Алгоритм трудного решения

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

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

Следующие фигуры содержат схемы потока сигналов для операции алгоритма и фиксированной точки с плавающей точкой. Схемы с плавающей точкой применяются, когда типом данных входного сигнала является double или single. Схемы фиксированной точки применяются, когда входной сигнал является типом данных с фиксированной точкой со знаком. Обратите внимание на то, что схема упрощена, когда Phase offset кратный π/2, и/или выведенный фактор денормализации равняется 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™ для деталей алгоритма.

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 и Быстром Режиме Accelerator.

Если вы используете 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 диалогового окна Configuration Parameters модели. Если ASIC/FPGA выбран в панели Hardware Implementation, тип выходных данных является идеальным минимальным размером, т.е. ufix(1) для битных выходных параметров и ufix(ceil(log2(M))) для целочисленных выходных параметров. Для всех других выборов это - беззнаковое целое с самым маленьким доступным размером слова, достаточно большим, чтобы соответствовать идеальному минимальному размеру, обычно соответствуя размеру char (например, uint8).

Для целочисленных выходных параметров этот параметр может быть установлен на Smallest unsigned integerint8uint8int16uint16int32uint32единственный, и double. Для битных выходных параметров опциями является Smallest unsigned integerint8uint8int16uint16int32uint32, booleanединственный, или double.

Derotate factor

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

Это может быть установлено в 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 позволяет вам задавать размер слова. Блок вычисляет длину части лучшей точности на основе заданного размера слова и предварительно вычисленный худший случай (min / макс.) значение реального мира результат Product output. Худший случай результат Product output предварительно вычисляется путем умножения денормализованного фактора с худшим случаем (min / макс.) область значений входного сигнала, просто на основе типа данных входного сигнала.

Блок использует 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 позволяет типу данных Суммы совпадать с типом данных Product output (когда Product output используется). Если Product output не будет использоваться, то эта установка будет проигнорирована и Inherit via internal rule Установка суммы будет использоваться.

Примеры

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

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

Откройте модель демодуляции 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

Var

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

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

Вывод

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

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

  • Булевская переменная, когда Output type является Bit

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

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

  • ufix (1) в ASIC/FPGA, когда Output type является Bit

  • ufix(log2M) в ASIC/FPGA, когда Output type является Integer

Ссылки

[1] Смит, Джоэл Г., “нечетно-битное квадратурное манипулирование Амплитудного Сдвига”, транзакции IEEE на коммуникациях, издании COM-23, март 1975, 385–389.

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

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

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