Signal Processing Toolbox | Help Desk |
dct
Discrete cosine transform (DCT).
y = dct(x) y = dct(x,n)
y = dct(x)
returns the 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 and k 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.
If x
is a matrix, dct
transforms its columns.
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
Two-dimensional DCT (see Image Processing Toolbox User's Manual). |
|
Two-dimensional inverse DCT (see Image Processing Toolbox User's Manual). |