type II Inverse DCT (i.e. type III DCT)
Updated 29 Feb 2008

View License

This code does the same as matlab's idct with a few improvements:

1) on the first call, it's a bit faster than the builtin idct

2) on subsequent calls, due to persistent variables, it's about 2x or more faster than the builtin idct, and only about 1.5x slower than a fft call

3) you can specify which version of the type II IDCT you want: either matlab's orthogonal version, or the standard version (cf. fftw website, or wikipedia). With the "fftw" version, there are two further choices: 1) compute the true inverse (up to scaling) to the forward "fftw" type II DCT, or 2) compute the adjoint (i.e. transpose) to the forward "fftw" type II DCT.

4) If the forward transform sampled the "rows" of the (implicit) DCT matrix, then giving the dimension and the index of sampled rows will allow idctt to return the appropriate inverse or adjoint.

This complements the code "dctt".

The extra "t" at the end of the filename has no meaning other than to distinguish it from the builtin dct.

Type "help idctt" for usage instructions.

Ex. test if dctt and idctt (w/o fftw arguments) are really adjoints:

n = 10;
F = dctt(eye(n));
Ft = idctt(eye(n));
F.' - Ft % this should be a zero matrix

Cite As

Stephen Becker (2024). idctt (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2006a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Performance in Help Center and MATLAB Answers

Inspired by: dctt

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes