Code covered by the BSD License

Multiresolution Gabor-like transforms

Kunal Chaudhury (view profile)

11 May 2012 (Updated )

Matlab implementation of the multiresolution Gabor filters in 1 and 2 dimensions.

projectionFilters(M, alpha, tau)
```function  [P1, P2]  =  projectionFilters(M, alpha, tau)
%
% projects the signal onto the two 'matched' approximtion spaces.
% note that M must be odd.
%
shift = 1/2;
h     = 1/(M - 1);
mid   = (M + 1)/2;

% symmetric frequency (center at the origin)
nu    = zeros(1, M);
for k = 1 : (M-1)/2
nu(1, mid+k) =  k * h;
nu(1, mid-k) = -k * h;
end
w = sqrt(-1)*(2*pi*nu);

p1  = 0.5*(alpha + 1) + tau;
q1  = 0.5*(alpha + 1) - tau;
p2  = 0.5*(alpha + 1) + tau + shift;
q2  = 0.5*(alpha + 1) - tau - shift;

P1 = zeros(1, M);
P2 = zeros(1, M);
P1(mid) = 1;
P2(mid) = 1;

% sample the continuous filter (defined on the real line)
for k = 1 : M
if k == mid
continue;
else
temp     = (1 - exp(-w(k)))/w(k);
tempConj = conj(temp);
P1(k) = temp^p1 * tempConj^q1;
P2(k) = temp^p2 * tempConj^q2;
end
end

% move the center frequency to one end (Matlab convention)
P1 = conj( ifftshift(P1) );
P2 = conj( ifftshift(P2) );

```