Дискретное косинусное преобразование (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 которой th столбец содержит DCT длины-M соответствующего входного столбца.
где
Параметр The Sine and cosine computation определяет, как блок вычисляет необходимый синус и значения косинуса. Этот параметр имеет две настройки, каждого с его преимуществами и недостатками, как описано в следующей таблице.
Синус и установка параметра расчета косинуса | Синус и метод расчета косинуса | Эффект на производительности блока |
---|---|---|
| Блок вычисляет и хранит тригонометрические значения, прежде чем симуляция запустится и получит их во время симуляции. Когда вы генерируете код от блока, процессор, запускающий сгенерированный код, хранит тригонометрические значения, вычисленные блоком в оптимизированной скоростью таблице, и получает значения во время выполнения кода. | Блок обычно запускается намного более быстро, но требует дополнительной памяти для хранения предварительно вычисленных тригонометрических значений. |
| Блок вычисляет синус и значения косинуса во время симуляции. Когда вы генерируете код от блока, процессор, запускающий сгенерированный код, вычисляет синус и значения косинуса, в то время как код запускается. | Блок обычно запускается более медленно, но не нуждается в дополнительной памяти данных. Для генерации кода блок требует, чтобы вспомогательная библиотека эмулировала тригонометрические функции, увеличивая размер сгенерированного кода. |
Этот блок поддерживает Simulink® виртуальные шины.
Следующие схемы показывают типы данных, используемые в блоке DCT в сигналах фиксированной точки. Можно накрыть на стол синуса, аккумулятор, продукт выход и типы выходных данных, отображенные в схемах в диалоговом окне блока DCT, как обсуждено в Параметрах.
Входные параметры с блоком DCT сначала брошены к типу выходных данных и сохранены в буфере вывода. Каждый этап бабочки процессы сигнализирует в типе данных аккумулятора с окончательным результатом бабочки, бросаемой в тип выходных данных.
Выход множителя находится в типе выходных данных продукта, когда по крайней мере одни из входных параметров ко множителю действительны. Когда оба из входных параметров ко множителю являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации на комплексном выполняемом умножении, смотрите Типы данных Умножения.
Когда вход блока является фиксированной точкой, все внутренние типы данных являются подписанной фиксированной точкой.
Main Tab
Устанавливает блок вычислять синусы и косинусы любым поиском синуса и значений косинуса в оптимизированной скоростью таблице (Table lookup
), или путем совершения вызовов синусоидальной и косинусной функции (Trigonometric fcn
). См. таблицу в разделе Description.
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)
Табличные значения синуса не выполняют параметры Saturate on integer overflow и Rounding mode; вместо этого, они всегда насыщаются и округляются к 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)),
Автоматическое масштабирование типов данных с фиксированной точкой
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока.
Порт | Поддерживаемые типы данных |
---|---|
Входной параметр |
|
Вывод |
|