2-D FIR Filter

Выполните 2D КИХ-фильтрацию на входной матрице

Библиотека

Фильтрация

visionfilter

Описание

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

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

I

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

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

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

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

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

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

Да

H

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

То же самое, когда я портирую.

Да

HH

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

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

Да

HV

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

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

Да

PVal

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

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

Да

Вывод

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

То же самое, когда я портирую.

Да

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

Установите флажок 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 of Specify via dialog, Vertical coefficients (across height) и параметры Horizontal coefficients (across width) появляются в диалоговом окне. Можно использовать эти параметры, чтобы ввести векторы вертикальных и горизонтальных коэффициентов фильтра, соответственно.

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

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

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

Блок выводит результат операции фильтрации в Выходном порту. Параметр Output size и размеры входных параметров в портах I и H диктуют размерности выхода. Например, примите, что вход в порте, у меня есть размерности (Mi, Ni) и вход в порте H, имеет размерности (Mh, Nh). Если вы выбираете Output size of Full, выход имеет размерности (Mi +Mh-1, Ni +Nh-1). Если вы выбираете Output size of Same as input port I, выход имеет те же размерности как вход в порте I. Если вы выбираете Output size of 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 ofInput port, порт PVal появляется на блоке. Используйте этот порт, чтобы задать постоянное значение, которым можно заполнить вашу матрицу. Значение клавиатуры должно быть действительным, если входное изображение действительно. Вы получите сообщение об ошибке, если значение клавиатуры будет комплексным, когда входное изображение действительно.

Используйте параметр 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 многомерных изображений.

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

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

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

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

Параметры

Separable filter coefficients

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

Coefficient source

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

Coefficients

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

Vertical coefficients (across height)

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

Horizontal coefficients (across width)

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

Output size

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

Padding options

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

Pad value source

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

Pad value

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

Filtering based on

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

Rounding mode

Выберите Rounding Modes для операций фиксированной точки.

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

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

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

imfilter

Image Processing Toolbox

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

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

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