| Products & Services | Industries | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Signal Processing Toolbox |
| Contents | Index |
| Learn more about Signal Processing Toolbox |
y = dct(x)
y = dct(x,n)
y = dct(x) returns the unitary discrete cosine transform of x
![]()
where

N is the length of x, and x and y are the same size. If x is a matrix, dct transforms its columns. The series is indexed from n = 1 and k = 1 instead of the usual n = 0 and k = 0 because MATLAB vectors run from 1 to N instead of from 0 to N- 1.
y = dct(x,n) pads or truncates x to length n before transforming.
The DCT is closely related to the discrete Fourier transform. You can often reconstruct a sequence very accurately from only a few DCT coefficients, a useful property for applications requiring data reduction.
Find how many DCT coefficients represent 99% of the energy in a sequence:
x = (1:100) + 50*cos((1:100)*2*pi/40);
X = dct(x);
[XX,ind] = sort(abs(X)); ind = fliplr(ind);
i = 1;
while (norm([X(ind(1:i)) zeros(1,100-i)])/norm(X)<.99)
i = i + 1;
end
i =
3
[1] Jain, A.K. Fundamentals of Digital Image Processing, Englewood Cliffs, NJ: Prentice-Hall, 1989.
[2] Pennebaker, W.B., and J.L. Mitchell. JPEG Still Image Data Compression Standard, New York, NY: Van Nostrand Reinhold, 1993. Chapter 4.
![]() | db2pow | decimate | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |