2D КИХ-фильтр

Выполните 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