IDCT

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

Библиотека

Преобразовывания

dspxfrm3

  • IDCT block

Описание

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

y = idct(u)					% Equivalent MATLAB code 

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

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

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

где

w(k)={1M2M,,k=12kM

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

Синус и установка параметра расчета косинусаСинус и метод расчета косинусаЭффект на эффективности блока

Table lookup

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

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

Trigonometric fcn

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

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

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

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

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

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

Примечание

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

Параметры

Main Tab

Sine and cosine computation

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

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)

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

Product output

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

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

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

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

Смотрите Задают Типы данных Используя Ассистент Типа данных (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® программное обеспечение использует это значение, чтобы выполнить:

Output Maximum

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

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

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока.

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

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

Входной параметр

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

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

  • Фиксированная точка (подписанный и без знака)

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

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

Вывод

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

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

  • Фиксированная точка (подписался только),

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

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

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

Смотрите также

Функции

Блоки

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