DCT

Дискретное косинусное преобразование (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 соответствующего входного столбца.

y(k,l)=w(k)m=1Mu(m,l)потому чтоπ(2m1)(k1)2M,k=1,...,M

где

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

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

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

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

Эффект на производительности блока

Table lookup

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

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

Trigonometric fcn

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

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

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

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

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

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

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

Примечание

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

Параметры

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 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(журнал2(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

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

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

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

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

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

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

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

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

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

Вывод

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

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

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

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

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

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

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

Функции

Блоки

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