(Removed) Discrete cosine transform (DCT)
DCT object computes the discrete cosine
transform (DCT) of input.
To compute the DCT of input:
Starting in R2016b, instead of using the
method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For
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
dct = dsp.DCT('
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
|step||Discrete cosine transform (DCT) of input|
|Common to All System Objects|
Allow System object property value changes
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
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; end 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',... 'location','best');
This object implements the algorithm, inputs, and outputs described on the DCT block reference page. The object properties correspond to the block parameters.
dsp.DCTSystem object has been removed
Errors starting in R2021a
System object has been removed. Use
This table shows typical usage of the System object and explains how to update existing code to use the equivalent function.
|Discouraged Usage||Recommended Replacement|
x = (1:128).' + 50*cos((1:128).'*2*pi/40); dctObj = dsp.DCT; X = dctObj(x);
you are using a release prior to R2016b, replace
x = (1:128).' + 50*cos((1:128).'*2*pi/40); X = dct(x);
Usage notes and limitations:
See System Objects in MATLAB Code Generation (MATLAB Coder).