]> AND Private Git Repository - these_gilles.git/blob - THESE/codes/wave/allcode/afb.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
07 sep
[these_gilles.git] / THESE / codes / wave / allcode / afb.m
1 function [lo, hi] = afb(x, af)
2
3 % Analysis filter bank
4 %
5 % USAGE:
6 %    [lo, hi] = afb(x, af)
7 % INPUT:
8 %    x - N-point vector, where
9 %            1) N is even
10 %            2) N >= length(af)
11 %    af - analysis filters
12 %    af(:, 1) - lowpass filter (even length)
13 %    af(:, 2) - highpass filter (even length)
14 % OUTPUT:
15 %    lo - Low frequecy output
16 %    hi - High frequency output
17 % EXAMPLE:
18 %    [af, sf] = farras;
19 %    x = rand(1,64);
20 %    [lo, hi] = afb(x, af);
21 %    y = sfb(lo, hi, sf);
22 %    err = x - y; 
23 %    max(abs(err))
24 %
25 % WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY
26 % http://taco.poly.edu/WaveletSoftware/
27
28 N = length(x);
29 L = length(af)/2;
30 x = cshift(x,-L);
31
32 % lowpass filter
33 lo = upfirdn(x, af(:,1), 1, 2);
34 lo(1:L) = lo(N/2+[1:L]) + lo(1:L);
35 lo = lo(1:N/2);
36
37 % highpass filter
38 hi = upfirdn(x, af(:,2), 1, 2);
39 hi(1:L) = hi(N/2+[1:L]) + hi(1:L);
40 hi = hi(1:N/2);
41