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=1N⁡Ai⁢cos⁡2⁢i−1⁢π⁢k−12⁢N
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.
with⁡SignalProcessing:
with⁡plots:
N≔10:
A≔GenerateTone⁡N,1,0.1,0+GenerateTone⁡N,3,0.4,0.2:
B≔DCT⁡A
B≔
display⁡listplot⁡A,title=Signal,listplot⁡B,title=Cosine Transform
C≔InverseDCT⁡B
C≔
map⁡fnormal,A−C
A≔GenerateJaehne⁡10,3
A≔
C≔Array⁡1..10,datatype=float8:
DCT⁡A,container=C
C
InverseDCT⁡C,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