Multidimensional Discrete Cosine Transform (DCT)

Fast forward and inverse Multidimensional Discrete Cosine Transforms (DCT, IDCT).
4.8K Downloads
Updated 6 May 2010

View License

The function is much faster than Matlab's native (dct, idct, dct2, idct2). It also allows N-D (multidimensional) input.

Example:
x=randn(100,200,300);

y=mirt_dctn(x); % forward DCT
x=mirt_idctn(y); % inverse DCT

Find more at my home page:
http://www.bme.ogi.edu/~myron

Enjoy and comment below if you like it!

Cite As

Andriy Myronenko (2026). Multidimensional Discrete Cosine Transform (DCT) (https://www.mathworks.com/matlabcentral/fileexchange/24050-multidimensional-discrete-cosine-transform-dct), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Version Published Release Notes
1.5.0.0

I have made it even faster by using only fft, without ifft, for both forward and inverse dct.

1.4.0.0

Corrected a bug with processing of 1D row vectors. Now it's as fast as with column vectors (and much faster then 1D Matlab's dct, idct)

1.3.0.0

added a screenshot of computational times of mirt_dctn and mirt_idctn vs Matlab's native (dct,idct,dct2,idct2).

1.0.0.0