Свертка

Свертка двух входных параметров

Библиотека

Операции сигнала

dspsigops

Описание

Блок Convolution применяет операцию свертки к первой размерности входного массива N-D u с первой размерностью входного массива N-D v. Блок может также независимо применить операцию свертки к вектор-столбцу с первой размерностью входного массива N-D.

Свертка с блоками DSP System Toolbox

Общее уравнение для свертки

y(k)=nu(nk)v(k)

Существует два блока DSP System Toolbox™, которые могут использоваться с этой целью:

Блок Convolution принимает, что весь u и h доступен на каждом временном шаге Simulink®, и вычисляет целую свертку во всех.

Блок Discrete FIR Filter может использоваться для свертки к сигналам в ситуациях, где весь h доступен на каждом временном шаге, но u является последовательностью, которая входит по жизни симуляции. Когда вы используете блок Discrete FIR Filter, свертка вычисляется только однажды.

Используйте следующие вопросы помочь вам определить, какой блок лучше всего соответствует вашим потребностям:

ВопросОтветРекомендуемый блок (блоки)

Сколько сверток вы намереваетесь выполнить?

Много сверток, один на каждом временном шаге

  • Блок Convolution

Одна свертка по жизни симуляции

  • Блок Convolution

  • Дискретный блок FIR Filter

Какой длины ваши входные последовательности?

Обе последовательности имеют конечную длину

  • Блок Convolution

  • Дискретный блок FIR Filter

Одна последовательность имеет большое количество (не предопределенный) длина

  • Дискретный блок FIR Filter

Сколько из входных параметров скалярные потоки?

'none'

  • Блок Convolution

  • Дискретный блок FIR Filter

Один или оба

  • Буферный блок сопровождается блоком Convolution

  • Дискретный блок FIR Filter

Свертка к двум массивам N-D

Блок всегда вычисляет свертку двух входных массивов N-D по первому измерению. Когда оба входных параметров являются массивами N-D, размер их первой размерности может отличаться, но размер всех других размерностей должен быть равным. Например, когда u является Mu-by-N-by-P массив, и v является Mv-by-N-by-P массив, вывод (Mu +Mv–1)-by-N-by-P массив.

Когда входом к блоку Convolution является Mu-by-N матричный u и Mv-by-N матричный v, вывод, y, (Mu +Mv–1)-by-N матрица, j которой th столбец имеет следующие элементы

yi,j=k=0max (Mu,Mv)1uk,jv(ik),j0i(Mu+Mv2)

Входные параметры u и v являются нулем, когда индексировано за пределами их допустимых областей значений. Когда оба входных параметров действительны, вывод действителен; когда одни или оба входных параметров являются комплексными, вывод является комплексным.

Свертка к вектор-столбцу с массивом N-D

Когда один вход является вектор-столбцом, и другой массив N-D, блок независимо применяет операцию свертки к вектору с первой размерностью входного массива N-D. Например, когда u является Mu-by-1 вектор-столбец, и v является Mv-by-N матрица, вывод (Mu +Mv–1)-by-N матрица, j которой th столбец имеет следующие элементы

yi,j=k=0max (Mu,Mv)1ukv(ik),j0i(Mu+Mv2)

Свертка к двум вектор-столбцам

Блок Convolution также принимает два входных параметров вектор-столбца. Когда u и v являются вектор-столбцами с длинами Mu и Mv, блок Convolution выполняет векторную свертку

yi=k=0max (Mu,Mv)1ukv(ik)0i(Mu+Mv2)

Вывод (M u+Mv–1)-by-1 вектор-столбец.

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

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

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

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

Примечание

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

Параметры

Main Tab

Computation domain

Установите область, в которой блок вычисляет свертки:

  • Время Блок вычисляет во временном интервале, который минимизирует использование памяти.

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

  • Fastest — Блок вычисляет в области, которая минимизирует количество вычислений.

Data Types Tab

Примечание

Сигналы фиксированной точки только поддержаны для временного интервала. Чтобы использовать параметры на этой панели, убедитесь, что Time выбран для параметра Computation domain на панели Main.

Rounding mode

Выберите округляющийся режим для операций фиксированной точки.

Примечание

Настройки Rounding mode и Saturate on integer overflow не имеют никакого эффекта на числовые результаты, когда все следующие условия существуют:

  • Product output является Inherit: Inherit via internal rule

  • Accumulator является Inherit: Inherit via internal rule

  • Output является Inherit: Same as accumulator

С этими настройками типа данных блок эффективно действует в режиме максимальной точности.

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.

С этими настройками типа данных блок действует в режиме максимальной точности.

Product output

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

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

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

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

Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.

Accumulator

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

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

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

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

Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.

Output

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

  • Правило, которое наследовало тип данных, например, Inherit: Same as accumulator

  • Выражение, которое оценивает к допустимому типу данных, например, fixdt([],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-битные целые числа со знаком

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

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

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

Функции

Блоки

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