Modified Discrete Cosine Transform
As a lapped transform, the MDCT is a bit unusual compared to other Fourier-related transforms in that it has half as many outputs as inputs (instead of the same number). In particular, it is a linear function F : R2n -> Rn (where R denotes the set of real numbers). The 2n real numbers x0, ..., x2n-1 are transformed into the n real numbers f0, ..., fn-1 according to the formula:
The inverse MDCT is known as the IMDCT. Because there are different numbers of inputs and outputs, at first glance it might seem that the MDCT should not be invertible. However, perfect invertibility is achieved by adding the overlapped IMDCTs of subsequent overlapping blocks, causing the errors to cancel and the original data to be retrieved; this technique is known as time-domain aliasing cancellation (TDAC).
The IMDCT transforms n real numbers f0, ..., fn-1 into 2n real numbers y0, ..., y2n-1 according to the formula:
The MDCT was developed by Henrique Malvar, an engineer now working for Microsoft who had considerable participation in creating the WMA format.