fwind1

2D КИХ-фильтр с помощью 1D метода окна

Синтаксис

h = fwind1(Hd,win)
h = fwind1(Hd,win1,win2)
h = fwind1(f1,f2,Hd,___)

Описание

пример

h = fwind1(Hd,win) использует 1D спецификацию окна, чтобы разработать двумерный КИХ-фильтр h на основе желаемой частотной характеристики Hd. fwind1 возвращает h как вычислительную молекулу, которая является соответствующей формой, чтобы использовать с filter2. fwind1 использует одномерное окно win, чтобы сформировать приблизительно циркулярное симметричное двумерное окно с помощью метода Хуана.

fwind1 работает с 1D окнами только; используйте fwind2, чтобы работать с двумерными окнами.

h = fwind1(Hd,win1,win2) использует два 1D окна, win1 и win2, чтобы создать отделимое 2D окно. Если length(win1) является n, и length(win2) является m, то h является m-by-n. Длина окон управляет размером получившегося фильтра.

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

Примеры

свернуть все

Этот пример показывает, как разработать приблизительно циркулярный симметричный двумерный полосовой фильтр с помощью 1D метода окна.

Создайте векторы частотного диапазона 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)

Разработайте 1D окно. Этот пример использует Окно Хэмминга длины 21.

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

Постройте 1D окно.

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

Используя 1D окно, разработайте фильтр, который лучше всего производит эту частотную характеристику

h = fwind1(Hd,win);

Отобразите фактическую частотную характеристику этого фильтра.

freqz2(h)

Входные параметры

свернуть все

Желаемая частотная характеристика, заданная как числовая матрица. Hd выбирается в равномерно распределенных точках между-1.0 и 1.0 (в нормированной частоте, где 1.0 соответствует половине частоты дискретизации или π радианов) вдоль осей частоты X и Y. Для точных результатов используйте точки частоты, возвращенные freqspace, чтобы создать Hd.

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

1D окно, заданное как числовая матрица. Можно задать окна использования win из программного обеспечения Signal Processing Toolbox, такие как boxcar, hamming, hanning, bartlett, blackman, kaiser или chebwin. Если length(win) является n, то h является n-by-n.The, длина окна управляет размером получившегося фильтра.

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

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

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

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

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

Желаемая частота вдоль оси X. Вектор частоты должен быть в области значений-1.0 к 1,0, где 1.0 соответствует половине частоты дискретизации или π радианов.

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

Желаемая частота вдоль оси Y. Вектор частоты должен быть в области значений-1.0 к 1,0, где 1.0 соответствует половине частоты дискретизации или π радианов.

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

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

свернуть все

2D КИХ-фильтр, возвращенный как числовая матрица класса double, когда вход Hd имеет класс double или любой целочисленный класс. Если Hd имеет класс single, выходная матрица имеет класс single.

Алгоритмы

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π)2ππππHd(ω1,ω2)ejω1n1ejω2n2dω1dω2

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

Ссылки

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

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