This is where navigation should be.

DSTIV - Discrete Sine Transform type IV

Usage

c=dstiv(f);
c=dstiv(f,L);
c=dstiv(f,[],dim);
c=dstiv(f,L,dim);

Description

dstiv(f) computes the discrete sine transform of type IV of the input signal f. If f is a matrix, then the transformation is applied to each column. For N-D arrays, the transformation is applied to the first non-singleton dimension.

dstiv(f,L) zero-pads or truncates f to length L before doing the transformation.

dstiv(f,[],dim) applies the transformation along dimension dim. dstiv(f,L,dim) does the same, but pads or truncates to length L.

The transform is real (output is real if input is real) and it is orthonormal. It is its own inverse.

Let f be a signal of length L and let c=dstiv(f). Then

\begin{equation*} c\left(n+1\right)=\sqrt{\frac{2}{L}}\sum_{m=0}^{L-1}f\left(m+1\right)\sin\left(\frac{\pi}{L}\left(n+\frac{1}{2}\right)\left(m+\frac{1}{2}\right)\right) \end{equation*}

Examples:

The following figures show the first 4 basis functions of the DSTIV of length 20:

% The dstiv is its own adjoint.
F=dstiv(eye(20));

for ii=1:4
  subplot(4,1,ii);
  stem(F(:,ii));
end;

References:

K. Rao and P. Yip. Discrete Cosine Transform, Algorithms, Advantages, Applications. Academic Press, 1990.

M. V. Wickerhauser. Adapted wavelet analysis from theory to software. Wellesley-Cambridge Press, Wellesley, MA, 1994.