IDCT

streaming mode | Standard category

Inputs

  • dct (vector_real) - the discrete cosine transform

Outputs

  • idct (vector_real) - the inverse cosine transform of the input array

Parameters

  • dctType (integer ∈ [2, 3], default = 2) :

    the DCT type

  • inputSize (integer ∈ [1, ∞), default = 10) :

    the size of the input array

  • liftering (integer ∈ [0, ∞), default = 0) :

    the liftering coefficient. Use ‘0’ to bypass it

  • outputSize (integer ∈ [1, ∞), default = 10) :

    the number of output coefficients

Description

This algorithm computes the Inverse Discrete Cosine Transform of an array. It can be configured to perform the inverse DCT-II form, with the 1/sqrt(2) scaling factor for the first coefficient or the inverse DCT-III form based on the HTK implementation.

IDCT can be used to compute smoothed Mel Bands. In order to do this:

  • compute MFCC

  • smoothedMelBands = 10^(IDCT(MFCC)/20)

Note: The second step assumes that ‘logType’ = ‘dbamp’ was used to compute MFCCs, otherwise that formula should be changed in order to be consistent.

Note: The ‘inputSize’ parameter is only used as an optimization when the algorithm is configured. The IDCT will automatically adjust to the size of any input.

References:

[1] Discrete cosine transform - Wikipedia, the free encyclopedia, http://en.wikipedia.org/wiki/Discrete_cosine_transform [2] HTK book, chapter 5.6 , http://speech.ee.ntu.edu.tw/homework/DSP_HW2-1/htkbook.pdf

Source code

See also

DCT (standard) DCT (streaming) IDCT (standard) MFCC (standard) MFCC (streaming) MelBands (standard) MelBands (streaming)