Дискретное косинусоидное преобразование (DCT) входа
Преобразовывает
dspxfrm3
Блок 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 длины соответствующего входного столбца.
где
Параметр Sine and cosine computation определяет, как блок вычисляет необходимые значения синуса и косинуса. Этот параметр имеет две настройки, каждая с его преимуществами и недостатками, как описано в следующей таблице.
Установка параметров расчета синуса и косинуса | Метод расчета синуса и косинуса | Эффект на эффективность блоков |
---|---|---|
| Блок вычисляет и сохраняет тригонометрические значения перед началом симуляции и извлекает их во время симуляции. Когда вы генерируете код из блока, процессор, выполняющий сгенерированный код, сохраняет тригонометрические значения, вычисленные блоком, в оптимизированной по скорости таблице и извлекает значения во время выполнения кода. | Блок обычно запускается намного быстрее, но требует дополнительной памяти для хранения предварительно вычисленных тригонометрических значений. |
| Блок вычисляет значения синуса и косинуса во время симуляции. Когда вы генерируете код из блока, процессор, выполняющий сгенерированный код, вычисляет значения синуса и косинуса во время выполнения кода. | Блок обычно запускается медленнее, но не нуждается в дополнительной памяти данных. Для генерации кода блоку требуется библиотека поддержки, чтобы эмулировать тригонометрические функции, увеличивая размер сгенерированного кода. |
Этот блок поддерживает Simulink® виртуальные автобусы.
Следующие схемы показывают типы данных, используемые в блоке DCT для сигналов с фиксированной точкой. Можно задать синусоидальную таблицу, аккумулятор, выходные данные продукта и типы выходных данных, отображенные в схемах в диалоговом окне блока DCT, как обсуждается в Параметрах.
Входы в блок DCT сначала приводятся к типу данных выходов и сохраняются в буфере выхода. Каждый каскад бабочки обрабатывает сигналы в типе данных аккумулятора, причем конечный выход бабочки переводится назад в тип выходных данных.
Выход умножителя находится в типе выходных данных продукта, когда, по меньшей мере, один из входов в умножитель является вещественным. Когда оба входов в умножитель являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации о выполненном комплексном умножении смотрите Типы данных умножения.
Примечание
Когда вход блока является фиксированной точкой, все внутренние типы данных являются подписанными фиксированной точкой.
Main Tab
Устанавливает блок для вычисления синусов и косинусов путем поиска значений синуса и косинуса в оптимизированной по скорости таблице (Table lookup
), или путем выполнения вызовов функций синуса и косинуса (Trigonometric fcn
). См. таблицу в разделе «Описание».
Data Types Tab
Выберите режим округления для операций с фиксированной точкой. Значения синусоидальной таблицы не подчиняются этому параметру; они всегда округляются до Nearest
.
Когда вы выбираете этот параметр, блок насыщает результат своей операции с фиксированной точкой. Когда вы очищаете этот параметр, блок переносит результат своей операции с фиксированной точкой. Для получения дополнительной информации о saturate
и wrap
, см. Режим переполнения для операций с фиксированной точкой.
Примечание
Параметры Rounding mode и Saturate on integer overflow не влияют на числовые результаты, когда все эти условия выполняются:
Product output данных Inherit: Inherit via internal rule
.
Accumulator данных Inherit: Inherit via internal rule
.
С этими настройками типа данных блок работает в режиме полной точности.
Выберите способ задания размера слова для значений синусоидальной таблицы. Длина дроби значений синусоидальной таблицы всегда равна размеру слова минус единица. Можно задать этот параметр как:
Правило, которое наследует тип данных, например Inherit: Same word length as input
Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16)
Значения синусоидальной таблицы не подчиняются параметрам Rounding mode и Saturate on integer overflow; вместо этого они всегда насыщены и округлены до Nearest
.
Укажите тип выходных данных продукта. Смотрите Типы данных с фиксированной точкой и Типы данных умножения для рисунков, описывающих использование типа выходных данных продукта в этом блоке. Можно задать этот параметр как:
Правило, которое наследует тип данных, например Inherit: Inherit via internal rule
. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.
Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Product output data type.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип данных аккумулятора. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа данных аккумулятора в этом блоке. Можно задать этот параметр как:
Правило, которое наследует тип данных, например Inherit: Inherit via internal rule
. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.
Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Accumulator.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип выходных данных. См. типы данных с фиксированной точкой для рисунков, описывающих использование типа выходных данных в этом блоке. Можно задать этот параметр как:
Правило, которое наследует тип данных, например Inherit: Inherit via internal rule
.
Когда вы выбираете Inherit: Inherit via internal rule
блок вычисляет выход размера слова и длину дроби автоматически. Внутреннее правило сначала вычисляет идеальный выход размера слова и длину дроби, используя следующие уравнения:
Используя эти идеальные результаты, внутреннее правило затем выбирает размеры слова и длины дробей, которые подходят для вашего оборудования. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.
Выражение, которое вычисляет допустимый тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Output.
Смотрите Типы Данных Управляющего Сигнала (Simulink) для получения дополнительной информации.
Задайте минимальное значение, которое должен выдать блок. Значение по умолчанию []
(не определено). Программное обеспечение Simulink использует это значение для выполнения:
Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))
Автоматическое масштабирование типов данных с фиксированной точкой
Задайте максимальное значение, которое должен выдать блок. Значение по умолчанию []
(не определено). Программное обеспечение Simulink использует это значение для выполнения:
Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))
Автоматическое масштабирование типов данных с фиксированной точкой
Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока.
Порт | Поддерживаемые типы данных |
---|---|
Вход |
|
Выход |
|