exponenta event banner

fwind1

2-D FIR-фильтр методом окна 1-D

Описание

fwind1 конструирование функций 2-D фильтров FIR с использованием метода окна. fwind1 использует спецификацию окна 1-D для проектирования фильтра 2-D FIR на основе требуемой частотной характеристики. fwind1 работает только с окнами 1-D. Использовать fwind2 для работы с 2-D окнами.

Вы можете применить 2-й фильтр ЕЛИ к изображениям при помощи filter2 функция.

пример

h = fwind1(Hd,win) создает фильтр 2-D FIR h на основе требуемой частотной характеристики Hd. fwind1 функция использует окно 1-D win для формирования приблизительно кругового симметричного окна 2-D методом Хуана.

h = fwind1(Hd,win1,win2) использует два окна 1-D, win1 и win2, для создания разделяемого окна 2-D.

h = fwind1(f1,f2,Hd,___) позволяет задать требуемую частотную характеристику Hd на произвольных частотах f1 и f2 вдоль осей X и Y.

Примеры

свернуть все

В этом примере показано, как сконструировать приблизительно круговой симметричный двухмерный полосовой фильтр с использованием метода 1-D окна.

Создание векторов частотного диапазона f1 и f2 использование freqspace. Эти векторы имеют длину 21.

[f1,f2] = freqspace(21,'meshgrid');

Вычислите расстояние каждой позиции от центральной частоты.

r = sqrt(f1.^2 + f2.^2);

Создание матрицы Hd который содержит требуемый полосовой отклик. В этом примере желаемая полоса пропускания находится в диапазоне от 0,1 до 0,5 (нормированная частота, где 1,0 соответствует половине частоты дискретизации, или δ радиан).

Hd = ones(21); 
Hd((r<0.1)|(r>0.5)) = 0;

Отображение идеального полосового отклика.

colormap(parula(64))
mesh(f1,f2,Hd)

Figure contains an axes. The axes contains an object of type surface.

Спроектируйте окно 1-D. В этом примере используется окно Хэмминга длиной 21.

win = 0.54 - 0.46*cos(2*pi*(0:20)/20);

Постройте график окна 1-D.

figure
plot(linspace(-1,1,21),win);

Figure contains an axes. The axes contains an object of type line.

С помощью окна 1-D спроектируйте фильтр, который лучше всего выдает эту частотную характеристику

h = fwind1(Hd,win);

Отображение фактической частотной характеристики этого фильтра.

freqz2(h)

Figure contains an axes. The axes contains an object of type surface.

Входные аргументы

свернуть все

Требуемая частотная характеристика, заданная как числовая матрица. Hd Дискретизируют в равноотстоящих точках от -1,0 до 1,0 (в нормированной частоте, где 1,0 соответствует половине частоты дискретизации, или δ радиан) по осям частоты x и y. Для получения точных результатов создайте Hd с помощью freqspace функция.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Окно 1-D, указанное как числовая матрица. При наличии программного обеспечения Signal Processing Toolbox™ можно указать win использование таких окон, как hamming(Панель инструментов обработки сигналов), hann(Панель инструментов обработки сигналов), bartlett(Панель инструментов обработки сигналов), blackman(Панель инструментов обработки сигналов), kaiser(Панель инструментов обработки сигналов), или chebwin(Панель инструментов обработки сигналов).

Типы данных: single | double

Окно 1-D, указанное как числовая матрица.

Типы данных: single | double

Окно 1-D, указанное как числовая матрица.

Типы данных: single | double

Требуемая частота вдоль оси X. Частотный вектор должен находиться в диапазоне [-1, 1], где 1,0 соответствует половине частоты дискретизации, или δ радиан.

Типы данных: single | double

Требуемая частота вдоль оси Y. Частотный вектор должен находиться в диапазоне [-1, 1], где 1,0 соответствует половине частоты дискретизации, или δ радиан.

Типы данных: single | double

Выходные аргументы

свернуть все

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

  • При указании одного окна win длины n, то размер h является nоколо-n.

  • При указании двух окон win1 и win2 длины n и m соответственно, то размер h является mоколо-n.

Если Hd имеет тип данных single, то h имеет тип данных single. В противном случае h имеет тип данных double.

Типы данных: single | double

Алгоритмы

fwind1 функция принимает спецификацию одномерного окна и формирует приблизительно кругово симметричное двумерное окно с помощью метода Хуана,

w (n1, n2) = w (t) | t = n12 + n22,

где w (t) - одномерное окно, а w (n1, n2) - результирующее двумерное окно.

Учитывая два окна, fwind1 функция образует разделяемое двумерное окно:

w (n1, n2) = w1 (n1) w2 (n2).

fwind1 функция вызывает fwind2 с требуемой частотной характеристикой Hd и двумерное окно. fwind2 функция вычисляет h используя обратное преобразование Фурье и умножение на двумерное окно:

hd (n1, n2) = 1 () 2∫−ππ∫−ππHd (start1, start2) ej

h (n1, n2) = hd (n1, n2) w (n1, n2)

Ссылки

[1] Lim, Jae S., двумерная обработка сигналов и изображений, Englewood Cliffs, NJ, Prentice Hall, 1990.

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