Вычислите 2D дискретное косинусное преобразование (DCT)
Преобразовывания
visiontransforms
2D блок DCT вычисляет двумерное дискретное косинусное преобразование входного сигнала. Уравнение для двумерного DCT
где для и в противном случае.
Количество строк и столбцов входного сигнала должно быть степенями двойки. Выход этого блока имеет размерности те же размерности как вход.
Порт | Ввод/вывод | Поддерживаемые типы данных | Поддерживаемые комплексные числа |
---|---|---|---|
Входной параметр | Вектор или матрица значений интенсивности |
| Нет |
Вывод | 2D DCT входа | То же самое как Input port | Нет |
Если тип данных входного сигнала является плавающей точкой, выход блока является совпадающим типом данных.
Используйте the Sine and cosine computation параметр, чтобы задать, как блок вычисляет синус и условия косинуса в алгоритме DCT. Если вы выбираете Trigonometric fcn
, блок вычисляет синус и значения косинуса во время симуляции. Если вы выбираете Table lookup
, блок вычисляет и хранит тригонометрические значения, прежде чем симуляция запустится. В этом случае блок требует дополнительной памяти.
Следующая схема показывает типы данных, используемые в 2D блоке DCT в сигналах фиксированной точки. Входные параметры сначала брошены к типу выходных данных и сохранены в буфере вывода. Каждый этап бабочки процессы сигнализирует в типе данных аккумулятора с окончательным результатом бабочки, бросаемой в тип выходных данных.
Выход множителя находится в типе выходных данных продукта, когда по крайней мере одни из входных параметров ко множителю действительны. Когда оба входных параметров ко множителю являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации на комплексном выполняемом умножении, обратитесь к Типам данных Умножения. Можно накрыть на стол синуса, продукт выход, аккумулятор и типы выходных данных в маске блока, как обсуждено в следующем разделе.
Задайте, как блок вычисляет синус и условия косинуса в алгоритме DCT. Если вы выбираете Trigonometric fcn
, блок вычисляет синус и значения косинуса во время симуляции. Если вы выбираете Table lookup
, блок вычисляет и хранит тригонометрические значения, прежде чем симуляция запустится. В этом случае блок требует дополнительной памяти.
Выберите Rounding Modes для операций фиксированной точки. Табличные значения синуса не повинуются этому параметру; они всегда вокруг к Nearest
.
Выберите режим переполнения для операций фиксированной точки. Смотрите Точность и Область значений. Табличные значения синуса не повинуются этому параметру; вместо этого, они всегда насыщаются.
Выберите, как вы задаете размер слова значений таблицы синуса. Дробная длина табличных значений синуса всегда равняется размеру слова минус один. Можно установить этот параметр на:
Правило, которое наследовало тип данных, например, 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 data type.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Задайте тип выходных данных. Смотрите Типы данных с фиксированной точкой для рисунков, изображающих использование типа выходных данных в этом блоке. Можно установить этот параметр на:
Правило, которое наследовало тип данных, например, Inherit: Inherit via internal rule
.
Когда вы выбираете Inherit: Inherit via internal rule
, блок вычисляет выходной размер слова и дробную длину автоматически. Внутреннее правило сначала вычисляет идеальный выходной размер слова и дробную длину с помощью следующих уравнений:
Используя эти идеальные результаты, внутреннее правило затем выбирает размеры слова и дробные длины, которые подходят для вашего оборудования. Для получения дополнительной информации смотрите, Наследовались через Внутреннее Правило.
Выражение, которое оценивает к допустимому типу данных, например, fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Output data type.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Выберите этот параметр, чтобы предотвратить любую фиксированную точку, масштабирующую вас, задают в этой маске блока от того, чтобы быть замененным инструментом автомасштабирования в Fixed-Point Tool. Для получения дополнительной информации смотрите fxptdlg
, страница с описанием на Fixed-Point Tool в документации Simulink®.
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока. Для получения дополнительной информации смотрите fxptdlg
, страница с описанием на Fixed-Point Tool в документации Simulink.
[1] Чен, W.H, К.Х. Смит и Южная Каролина Fralick, “Быстрый вычислительный алгоритм для дискретного косинусного преобразования”, Сделка IEEE Commun., издание COM-25, стр 1004-1009. 1977.
[2] Ван, Z. “Алгоритмы FAST для дискретного W преобразовывают и для дискретного преобразования Фурье”, Сделка IEEE Acoust., Речь, Обработка сигналов, издание ASSP-32, стр 803-816, август 1984.