This is where navigation should be.

DCTIII - Discrete Consine Transform type III

Usage

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

Description

dctiii(f) computes the discrete cosine transform of type III of the input signal f. If f is multi-dimensional, the transformation is applied along the first non-singleton dimension.

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

dctiii(f,[],dim) or dctiii(f,L,dim) applies the transformation along dimension dim.

The transform is real (output is real if input is real) and orthonormal.

This is the inverse of dctii.

Let f be a signal of length L, let c=dctiii(f) and define the vector w of length L by

\begin{equation*} w\left(n\right)=\begin{cases}\frac{1}{\sqrt{2}} & \text{if }n=0\\\\1 & \text{otherwise}\end{cases} \end{equation*}

Then

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

Examples:

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

% The dctii is the adjoint of dctiii.
F=dctii(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.