SignalProcessing
DCT
compute forward discrete cosine transform
InverseDCT
compute inverse discrete cosine transform
Calling Sequence
Parameters
Options
Description
Thread Safety
Examples
Compatibility
DCT(A)
InverseDCT(A)
A
-
Array of real numeric values; the signal
container : Array, predefined Array for holding results
inplace : truefalse, specifies that output should overwrite input
The DCT(A) command computes the discrete cosine transform (DCT) of the Array A and returns the result in an Array with datatype float[8].
The InverseDCT(A) command computes the inverse discrete cosine transform of the Array A and returns the result in an Array with datatype float[8].
Before the code performing the computation runs, A is converted to datatype float[8] if it does not have that datatype already. For this reason, it is most efficient if A has this datatype beforehand.
The discrete cosine transform B of a sample of N elements with initial index 1 is defined by the formula
Bk=Ck∑i=1NAicos2i−1πk−12N
where Ck is given by
Ck=1Nk=12Notherwise
Samples may be of arbitrary length, but when the length is a power of 2, a faster algorithm is used,
If the container=C option is provided, then the results are put into C and C is returned. With this option, no additional memory is allocated to store the result. The container must be an Array having datatype float[8] and size equal to those of A.
If the inplace or inplace=true option is provided, then A is overwritten with the results. In this case, the container option is ignored. Furthermore, A must have datatype float[8].
The SignalProcessing[DCT] and SignalProcessing[InverseDCT] commands are thread-safe as of Maple 17.
For more information on thread safety, see index/threadsafe.
withSignalProcessing:
withplots:
N≔10:
A≔GenerateToneN,1,0.1,0+GenerateToneN,3,0.4,0.2:
B≔DCTA
B≔
displaylistplotA,title=Signal,listplotB,title=Cosine Transform
C≔InverseDCTB
C≔
mapfnormal,A−C
A≔GenerateJaehne10,3
A≔
C≔Array1..10,datatype=float8:
DCTA,container=C
C
InverseDCTC,inplace
The SignalProcessing[DCT] and SignalProcessing[InverseDCT] commands were introduced in Maple 17.
For more information on Maple 17 changes, see Updates in Maple 17.
See Also
SignalProcessing[DFT]
SignalProcessing[DWT]
SignalProcessing[FFT]
Download Help Document