Main Content


(Removed) Discrete cosine transform (DCT)

The dsp.DCT System object™ has been removed. Use dct instead. For more information, see Compatibility Considerations.


The DCT object computes the discrete cosine transform (DCT) of input.

To compute the DCT of input:

  1. Define and set up your DCT object. See Construction.

  2. Call step to compute the DCT according to the properties of dsp.DCT. The behavior of step is specific to each object in the toolbox.


Starting in R2016b, instead of using the step method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.


dct = dsp.DCT returns a discrete cosine transform (DCT) object, dct, used to compute the DCT of a real or complex input signal.

dct = dsp.DCT('PropertyName',PropertyValue, ...) returns a DCT object, dct, with each property set to the specified value.



Method to compute sines and cosines

Specify how the DCT object computes the trigonometric values as Trigonometric function or Table lookup. This property must be set to Table lookup for fixed-point inputs. The default is Table lookup.

 Fixed-Point Properties


stepDiscrete cosine transform (DCT) of input
Common to All System Objects

Allow System object property value changes


collapse all


This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent step syntax. For example, myObject(x) becomes step(myObject,x).

Use DCT to analyze the energy content in a sequence:

x = (1:128).' + 50*cos((1:128).'*2*pi/40);
dct = dsp.DCT;
X = dct(x);

Set the DCT coefficients which represent less than 0.1% of the total energy to 0 and reconstruct the sequence using IDCT.

[XX, ind] = sort(abs(X),1,'descend');
ii = 1;
while (norm([XX(1:ii);zeros(128-ii,1)]) <= 0.999*norm(XX))
    ii = ii+1;
disp(['Number of DCT coefficients that represent 99.9%',...
    'of the total energy in the sequence: ',num2str(ii)]);
Number of DCT coefficients that represent 99.9%of the total energy in the sequence: 10
XXt = zeros(128,1);
XXt(ind(1:ii)) = X(ind(1:ii));
idct = dsp.IDCT;
xt = idct(XXt);
plot(1:128,[x xt]);
legend('Original signal','Reconstructed signal',...


This object implements the algorithm, inputs, and outputs described on the DCT block reference page. The object properties correspond to the block parameters.

Compatibility Considerations

expand all

Errors starting in R2021a

Extended Capabilities

See Also



Introduced in R2012a