DCT

Дискретное косинусоидное преобразование (DCT) входа

Библиотека

Преобразовывает

dspxfrm3

  • DCT block

Описание

Блок DCT вычисляет унитарное дискретное косинусоидное преобразование (DCT) каждого канала в входной матрице M -by N, u.

y = dct(u)					% Equivalent MATLAB code

Для всех N-D входных массивов блок вычисляет DCT через первую размерность. Размер первой размерности (формата кадра) должен быть степенью двойки. Чтобы работать с другими форматами кадра, используйте блок Pad, чтобы дополнить или обрезать формат кадра до степени двойки длины.

Когда вход в блок DCT является M -by - N матрицей, блок обрабатывает каждый входной столбец как независимый канал, содержащий M последовательных выборок. Блок выводит M -by - N матрицу, l-й столбец которой содержит DCT M длины соответствующего входного столбца.

y(k,l)=w(k)m=1Mu(m,l)cosπ(2m1)(k1)2M,k=1,...,M

где

w(k)={1M,2M,k=12kM

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

Установка параметров расчета синуса и косинуса

Метод расчета синуса и косинуса

Эффект на эффективность блоков

Table lookup

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

Блок обычно запускается намного быстрее, но требует дополнительной памяти для хранения предварительно вычисленных тригонометрических значений.

Trigonometric fcn

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

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

Этот блок поддерживает Simulink® виртуальные автобусы.

Типы данных с фиксированной точкой

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

Входы в блок DCT сначала приводятся к типу данных выходов и сохраняются в буфере выхода. Каждый каскад бабочки обрабатывает сигналы в типе данных аккумулятора, причем конечный выход бабочки переводится назад в тип выходных данных.

Выход умножителя находится в типе выходных данных продукта, когда, по меньшей мере, один из входов в умножитель является вещественным. Когда оба входов в умножитель являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации о выполненном комплексном умножении смотрите Типы данных умножения.

Примечание

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

Параметры

Main Tab

Sine and cosine computation

Устанавливает блок для вычисления синусов и косинусов путем поиска значений синуса и косинуса в оптимизированной по скорости таблице (Table lookup), или путем выполнения вызовов функций синуса и косинуса (Trigonometric fcn). См. таблицу в разделе «Описание».

Data Types Tab

Rounding mode

Выберите режим округления для операций с фиксированной точкой. Значения синусоидальной таблицы не подчиняются этому параметру; они всегда округляются до Nearest.

Saturate on integer overflow

Когда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate и wrap, см. Режим переполнения для операций с фиксированной точкой.

Примечание

Параметры Rounding mode и Saturate on integer overflow не влияют на числовые результаты, когда все эти условия выполняются:

  • Product output данных Inherit: Inherit via internal rule.

  • Accumulator данных Inherit: Inherit via internal rule.

С этими настройками типа данных блок работает в режиме полной точности.

Sine table

Выберите способ задания размера слова для значений синусоидальной таблицы. Длина дроби значений синусоидальной таблицы всегда равна размеру слова минус единица. Можно задать этот параметр как:

  • Правило, которое наследует тип данных, например Inherit: Same word length as input

  • Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16)

Значения синусоидальной таблицы не подчиняются параметрам Rounding mode и Saturate on integer overflow; вместо этого они всегда насыщены и округлены до Nearest.

Product output data type

Укажите тип выходных данных продукта. Смотрите Типы данных с фиксированной точкой и Типы данных умножения для рисунков, описывающих использование типа выходных данных продукта в этом блоке. Можно задать этот параметр как:

  • Правило, которое наследует тип данных, например Inherit: Inherit via internal rule. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.

  • Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Product output data type.

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

Accumulator

Задайте тип данных аккумулятора. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа данных аккумулятора в этом блоке. Можно задать этот параметр как:

  • Правило, которое наследует тип данных, например Inherit: Inherit via internal rule. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.

  • Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Accumulator.

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

Output

Задайте тип выходных данных. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа выходных данных в этом блоке. Можно задать этот параметр как:

  • Правило, которое наследует тип данных, например Inherit: Inherit via internal rule.

    Когда вы выбираете Inherit: Inherit via internal ruleблок вычисляет выход размера слова и длину дроби автоматически. Внутреннее правило сначала вычисляет идеальный выход размера слова и длину дроби, используя следующие уравнения:

    WLideal output=WLinput+floor(log2(DCT length1))+1

    FLideal output=FLinput

    Используя эти идеальные результаты, внутреннее правило затем выбирает размеры слова и длины дробей, которые подходят для вашего оборудования. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.

  • Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Output.

Смотрите Типы Данных Управляющего Сигнала (Simulink) для получения дополнительной информации.

Output Minimum

Задайте минимальное значение, которое должен выдать блок. Значение по умолчанию [] (не определено). Программное обеспечение Simulink использует это значение для выполнения:

  • Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))

  • Автоматическое масштабирование типов данных с фиксированной точкой

Output Maximum

Задайте максимальное значение, которое должен выдать блок. Значение по умолчанию [] (не определено). Программное обеспечение Simulink использует это значение для выполнения:

  • Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))

  • Автоматическое масштабирование типов данных с фиксированной точкой

Lock data type settings against changes by the fixed-point tools

Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока.

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

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

Вход

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

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

  • Фиксированная точка (со знаком и без знака)

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

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

Выход

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

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

  • Фиксированная точка (только со знаком)

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

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

.

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

См. также

Функции

Блоки

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте