Multidimensional Discrete Cosine Transform (DCT)

Fast forward and inverse Multidimensional Discrete Cosine Transforms (DCT, IDCT).

You are now following this Submission

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://uk.mathworks.com/matlabcentral/fileexchange/24050-multidimensional-discrete-cosine-transform-dct), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
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