dyadup

Dyadic upsampling

Syntax

Y = dyadup(X,EVENODD)
Y = dyadup(X)
Y = dyadup(X,EVENODD,'type')
Y = dyadup(X,'type',EVENODD)
Y = dyadup(X)
Y = dyaddown(X,1,'c')
Y = dyadup(X,'type')
Y = dyadup(X,1,'type')
Y = dyadup(X,EVENODD)
Y = dyadup(X,EVENODD,'c')

Description

dyadup implements a simple zero-padding scheme very useful in the wavelet reconstruction algorithm.

Y = dyadup(X,EVENODD), where X is a vector, returns an extended copy of vector X obtained by inserting zeros. Whether the zeros are inserted as even- or odd-indexed elements of Y depends on the value of positive integer EVENODD:

  • If EVENODD is even, then Y(2k–1) = X(k), Y(2k) = 0.

  • If EVENODD is odd, then Y(2k–1) = 0, Y(2k) = X(k).

Y = dyadup(X) is equivalent to Y = dyadup(X,1) (odd-indexed samples).

Y = dyadup(X,EVENODD,'type') or Y = dyadup(X,'type',EVENODD), where X is a matrix, returns extended copies of X obtained by inserting

Columns in X

If 'type'= 'c'

Rows in X

If 'type'= 'r'

Rows and columns in X

If 'type'= 'm'

according to the parameter EVENODD, which is as above.

If you omit the EVENODD or 'type' arguments, dyadup defaults to EVENODD = 1 (zeros in odd-indexed positions) and 'type'= 'c' (insert columns).

Y = dyadup(X) is equivalent to Y = dyaddown(X,1,'c').

Y = dyadup(X,'type') is equivalent to Y = dyadup(X,1,'type').
Y = dyadup(X,EVENODD) is equivalent to Y = dyadup(X,EVENODD,'c').

Examples

% For a vector.
s = 1:5 
s =
    1 2 3 4 5

dse = dyadup(s) % Upsample elements at odd indices.
dse =
    0 1 0 2 0 3 0 4 0 5 0

% or equivalently 
dse = dyadup(s,1)
dse =
    0 1 0 2 0 3 0 4 0 5 0

dso = dyadup(s,0) % Upsample elements at even indices.
dso =
    1 0 2 0 3 0 4 0 5

% For a matrix.
s = (1:2)'*(1:3)
s = 
    1 2 3
    2 4 6

der = dyadup(s,1,'r') % Upsample rows at even indices.
der =
    0 0 0
    1 2 3
    0 0 0
    2 4 6
    0 0 0

doc = dyadup(s,0,'c') % Upsample columns at odd indices.
doc =
    1 0 2 0 3
    2 0 4 0 6
dem = dyadup(s,1,'m') % Upsample rows and columns
                      % at even indices.
dem =
     0     0     0     0     0     0     0
     0     1     0     2     0     3     0
     0     0     0     0     0     0     0
     0     2     0     4     0     6     0
     0     0     0     0     0     0     0

% Using default values for dyadup and dyaddown, we have: 
% dyaddown(dyadup(s)) = s. 
s = 1:5
s =
    1 2 3 4 5

uds = dyaddown(dyadup(s))
uds =
    1 2 3 4 5

% In general reversed identity is false.

References

Strang, G.; T. Nguyen (1996), Wavelets and Filter Banks, Wellesley-Cambridge Press.

Extended Capabilities

See Also

Introduced before R2006a