2-D FIR Filter

Выполните 2-D конечная импульсная характеристика на входной матрице

Библиотека

Фильтрация

visionfilter

  • 2-D FIR Filter block

Описание

Блок 2-D фильтра с конечной импульсной характеристикой (КИХ) фильтрует матрицу входа I использование матрицы коэффициентов H или векторы коэффициентов HH и HV.

ПортВвод/выводПоддерживаемые типы данныхКомплексные числа

Я

Вектор или матрица значений интенсивности

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

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

  • Фиксированная точка

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

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

Да

H

Матрица коэффициентов фильтра

То же, что и у меня.

Да

ГД

Вектор коэффициентов фильтра

То же, что и у меня. Значение входа к портам HH и HV должно быть совпадающим типом данных.

Да

HV

Вектор коэффициентов фильтра

То же, что и у меня. Значение входа к портам HH и HV должно быть совпадающим типом данных.

Да

PVal

Скалярное значение, которое представляет значение постоянной подстройки

Вход должен иметь совпадающий тип данных, что и вход в I порт.

Да

Выход

Скаляр, вектор или матрица отфильтрованных значений

То же, что и у меня.

Да

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

Установите флажок Separable filter coefficients, если коэффициенты фильтра разделимы. Использование разделяемых коэффициентов фильтра уменьшает количество вычислений, которые блок должен выполнить, чтобы вычислить выход. Например, предположим, что ваше входное изображение M -by- N, а матрица коэффициентов фильтра - x-by-y. Для неотделимого фильтра с Output size набора параметров, чтобы Same as input port I, это заняло бы

xyMN

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

(x+y)MN

Операции MAC. Если вы не знаете, являются ли ваши коэффициенты фильтра разделимыми, используйте isfilterseparable функция.

Вот пример синтаксиса функции, [S, HCOL, HROW] = isfilterseparable(H). isfilterseparable функция принимает ядро фильтра, H, и возвращает S, HCOL и HROW. Здесь, S - логическая переменная, которая равна 1, если фильтр разделим, и 0, если нет. HCOL является вектором коэффициентов вертикального фильтра и HROW является вектором горизонтальных коэффициентов фильтра.

Используйте параметр Coefficient source, чтобы задать, как задать коэффициенты фильтра. Если установить флажок Separable filter coefficients, а затем выбрать Coefficient source Specify via dialogпараметры Vertical coefficients (across height) и Horizontal coefficients (across width) отображаются в диалоговом окне. Можно использовать эти параметры, чтобы ввести векторы вертикального и горизонтального коэффициентов фильтра, соответственно.

Можно также использовать переменные HCOL и HROW, выходные выходы isfilterseparable функция, для этих параметров. Если установить флажок Separable filter coefficients, а затем выбрать Coefficient source Input portна блоке появляются порты HV и HH. Используйте эти порты, чтобы задать векторы вертикальных и горизонтальных коэффициентов фильтра.

Если снять флажок Separable filter coefficients и выбрать Coefficient source Specify via dialogпараметр Coefficients появляется в диалоговом окне. Используйте этот параметр, чтобы ввести матрицу коэффициентов фильтра.

Если снять флажок Separable filter coefficients и выбрать Coefficient source Input port, порт H появляется на блоке. Используйте этот порт, чтобы задать матрицу коэффициентов фильтра.

Блок выводит результат операции фильтрации в порте Выхода. Параметр Output size и размеры входов в портах I и H диктуют размерности выхода. Например, предположим, что вход в порту I имеет размерности (Mi, Ni), а вход в порту H имеет размерности (Mh, Nh). Если вы выбираете Output size Full, выход имеет размерности (Mi + Mh -1, Ni + Nh -1). Если вы выбираете Output size Same as input port I, выход имеет те же размерности что и вход в порту I. Если вы выбираете Output size Validблок фильтрует входное изображение только там, где матрица коэффициентов полностью находится внутри него, поэтому заполнение не требуется. Выход имеет размерности (Mi - Mh + 1, Ni - Nh + 1). Однако, если all(size(I)<size(H)), ошибки блока исчерпаны.

Используйте параметр Padding options, чтобы задать, как дополнить контур матрицы входа. Чтобы дополнить матрицу постоянным значением, выберите Constant. Чтобы дополнить свой вход матрицу повторением ее граничных значений, выберите Replicate. Чтобы дополнить матрицу входа ее зеркальными изображениями, выберите Symmetric. Чтобы дополнить свой вход матрицу с помощью циклического повторения ее элементов, выберите Circular. Для получения дополнительной информации о заполнении смотрите Image Pad страницы с описанием блоков.

Если для параметра Padding options выбран Constantпараметр Pad value source появляется в диалоговом окне. Если вы выбираете Specify via dialogпараметр Pad value появляется в диалоговом окне. Используйте этот параметр, чтобы ввести постоянное значение, с помощью которого можно дополнить матрицу. Если вы выбираете Pad value source из Input portпорт PVal появляется на блоке. Используйте этот порт, чтобы задать постоянное значение, которым можно дополнить матрицу. Значение pad должно быть вещественным, если входное изображение реально. Вы получите сообщение об ошибке, если значение pad комплексно, когда входное изображение реально.

Используйте параметр Filtering based on, чтобы задать алгоритм, по которому блок фильтрует матрицу входа. Если вы выбираете Convolution и установите параметр Output size равным Full, блок фильтрует ваш вход с помощью следующего алгоритма

C(i,j)=m=0(Ma1)n=0(Na1)A(m,n)*H(im,jn)

где 0i<Ma+Mh1 и 0j<Na+Nh1. Если вы выбираете Correlation и установите параметр Output size равным Full, блок фильтрует ваш вход с помощью следующего алгоритма

C(i,j)=m=0(Ma1)n=0(Na1)A(m,n)conj(H(m+i,n+j))

где 0i<Ma+Mh1 и 0j<Na+Nh1.

imfilter функция из продукта Image Processing Toolbox™ аналогично выполняет N-D фильтрацию многомерных изображений.

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

Следующая схема показывает типы данных, используемые в блоке 2-D FIR Filter для сигналов с фиксированной точкой.

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

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

Параметры

Separable filter coefficients

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

Coefficient source

Задайте, как задать коэффициенты фильтра. Выберите Specify via dialog для ввода коэффициентов в диалоговое окно параметров блоков. Выберите Input port чтобы задать матрицу коэффициентов фильтра с помощью порта H или портов HH и HV.

Coefficients

Введите действительную или комплексную матрицу коэффициентов фильтра. Этот параметр появляется, если снять флажок Separable filter coefficients и затем выбрать Coefficient source Specify via dialog. Настраиваемый.

Vertical coefficients (across height)

Введите вектор коэффициентов вертикального фильтра для вашего разделяемого фильтра. Этот параметр появляется, если установить флажок Separable filter coefficients, а затем выбрать Coefficient source Specify via dialog.

Horizontal coefficients (across width)

Введите вектор коэффициентов горизонтального фильтра для вашего разделяемого фильтра. Этот параметр появляется, если установить флажок Separable filter coefficients, а затем выбрать Coefficient source Specify via dialog.

Output size

Этот параметр управляет размером отфильтрованного выхода. Если вы выбираете Full, выход имеет размерности (Ma + Mh -1, Na + Nh -1). Если вы выбираете Same as input port I, выход имеет такие же размерности как и вход в порту I Если вы выбираете Valid, выход имеет размерности (Ma - Mh + 1, Na - Nh + 1).

Padding options

Задайте, как дополнить контур матрицы входа. Выберите Constant чтобы дополнить матрицу постоянным значением. Выберите Replicate чтобы дополнить ваш вход матрицу повторением ее граничных значений. Выберите Symmetricчтобы дополнить ваш вход матрицу ее зеркальным изображением. Выберите Circular чтобы дополнить матрицу входа с помощью циклического повторения ее элементов. Этот параметр появляется, если вы выбираете Output size Full или Same as input port I.

Pad value source

Используйте этот параметр, чтобы задать, как задать постоянное краевое значение. Выберите Specify via dialog для ввода вашего значения в диалоговое окно параметров блоков. Выберите Input port чтобы задать ваше постоянное значение с помощью порта PVal. Этот параметр появляется, если вы выбираете Padding options Constant.

Pad value

Введите постоянное значение, которым можно дополнить матрицу. Этот параметр видим, если для параметра Pad value source вы выбираете Specify via dialog. Настраиваемый. Значение pad должно быть вещественным, если входное изображение реально. Вы получите сообщение об ошибке, если значение pad комплексно, когда входное изображение реально.

Filtering based on

Задайте алгоритм, которым блок фильтрует матрицу входа. Можно выбрать Convolution или Correlation.

Rounding mode

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

Saturate on integer overflow

Выберите режим переполнения для операций с фиксированной точкой. См. «Точность и область значений».

Coefficients

Выберите, как задать размер слова и длину дроби коэффициентов фильтра.

  • Когда вы выбираете Inherit: Same word length as input, размеры слова коэффициентов фильтра совпадают с таковыми у входа к блоку. В этом режиме блок автоматически устанавливает длину дроби коэффициентов только в двоичную точку, которая обеспечивает вам лучшую точность, учитывая значение и размер слова коэффициентов.

  • Когда вы выбираете fixdt(1,16), можно ввести размер слова коэффициентов, в битах. В этом режиме блок автоматически устанавливает длину дроби коэффициентов только в двоичную точку, которая обеспечивает вам лучшую точность, учитывая значение и размер слова коэффициентов.

  • Когда вы выбираете fixdt(1,16,0), можно ввести размер слова и длину дроби коэффициентов, в битах.

  • Когда вы выбираете <data type expression>, можно ввести выражение типа данных.

Коэффициенты фильтра не подчиняются параметрам Rounding mode и Saturate on integer overflow; вместо этого они всегда насыщены и округлены до Nearest.

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

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

Product output

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

  • Когда вы выбираете Inherit: Same as inputэти характеристики совпадают с характеристиками входов блока.

  • Когда вы выбираете fixdt([],16,0), можно ввести размер слова и длину дроби выходного продукта, в битах.

  • Когда вы выбираете <data type expression>, можно ввести выражение типа данных.

Если вы задаете Coefficient source (на вкладке Main) значение Input port Выход продукта наследует его знак в соответствии с входами. Если все входные I1 и I2 подписаны, будут подписаны выходы продукта. В противном случае выходы продукта не подписываются. В следующей таблице показаны все случаи.

Признаки Входа I1Признаки Входа I2Знак выхода продукта
неподписанныйнеподписанныйнеподписанный
неподписанныйподписанныйподписанный
подписанныйнеподписанныйподписанный
подписанныйподписанныйподписанный

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

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

Accumulator

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

  • Когда вы выбираете Inherit: Same as inputэти характеристики совпадают с характеристиками входов блока.

  • Когда вы выбираете Inherit: Same as product output, эти характеристики совпадают с характеристиками выходных данных продукта.

  • Когда вы выбираете fixdt([],16,0), можно ввести размер слова и длину дроби аккумулятора, в битах.

  • Когда вы выбираете Slope and bias scaling, можно ввести размер слова, в битах, и наклон аккумулятора. Все сигналы в программном обеспечении Computer Vision Toolbox™ имеют смещение 0.

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

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

Output

Выберите, как задать размер слова и длину дроби выхода блока:

  • Когда вы выбираете Inherit: Same as inputэти характеристики совпадают с характеристиками входов блока.

  • Когда вы выбираете fixdt([],16,0), можно ввести размер слова и длину дроби выхода, в битах.

    Можно принять решение задать сигнальность выхода равной Auto, Signed или Unsigned.

  • Когда вы выбираете <data type expression>можно ввести выражение типа данных.

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

Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).

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

Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока. Для получения дополнительной информации см. fxptdlg (Fixed-Point Designer), ссылочная страница на Fixed-Point Tool в Simulink® документация.

См. также

imfilter

Image Processing Toolbox

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

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

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