TVec.IDCT Method

Overload List

#SignatureDescription
1TVec IDCTCalculate the inverse DCT in-pllace.
2TVec IDCT(TVec Vec)The inverse discrete cosine transform (DCT).
3TMtxVec IDCT(TMtxVec Vec, Int32 VecIndex, Int32 Index, Int32 Len)The inverse discrete cosine transform (DCT).

Overload 1: TVec IDCT

Calculate the inverse DCT in-pllace.

Result: stored in self (calling object), returns self for chaining

Remarks:

The length of the calling vector is adjusted automatically.

Overload 2: TVec IDCT(TVec Vec)

The inverse discrete cosine transform (DCT).

#NameTypeDescription
1VecTVecsource TVec

Result: stored in self (calling object), returns self for chaining

Remarks:

Calculates the inverse discrete cosine transform (DCT) of a Vec and writes the results in the calling vector. If Vec Dew.Math.TMtxVecBase.Length is a power of 2, the function uses an efficient algorithm that is significantly faster than the direct computation of DCT. For other values of Vec length, this function uses the direct formulas given below; however, the symmetry of cosine function is taken into account, which allows to perform about half of the multiplication operations in the formulas. In the following definition of inverse DCT, N=Vec.Length and V is the calling vector:

C(k)={1Nk=02Nk>0V[k]=C(k)Vec[k]n=0N1cos((2n+1)kπ2N)\begin{aligned} C(k) &= \begin{cases} \sqrt{\frac{1}{N}} & k=0 \\ \sqrt{\frac{2}{N}} & k > 0 \end{cases} \\ \text{V}[k] &= C(k)\cdot \text{Vec}[k]\sum _{n=0} ^{N-1} \cos \left( \frac{(2n+1)k\pi}{2N}\right) \end{aligned}
Examples
TVec a;
TVec b;
MtxVec.CreateIt(out a, out b);
try
    {
        a.SetIt(false,new double[] {1,-2,3,4});
        b.IDCT(a);
    }
finally
    {
        MtxVec.FreeIt(ref a, ref b);
    }
See Also: TVec.DCT

Overload 3: TMtxVec IDCT(TMtxVec Vec, Int32 VecIndex, Int32 Index, Int32 Len)

The inverse discrete cosine transform (DCT).

#NameTypeDescription
1VecTMtxVecsource TVec or TMtx
2VecIndexInt32
3IndexInt32start index
4LenInt32element count

Result: stored in self (calling object), returns self for chaining

Remarks:

Calculate the inverse discrete cosine transform (DCT) from Vec elements [VecIndex]..[VecIndex+Len-1] and store the results in the calling object elements [Index]..[Index+Len-1]. The Len parameter must be the power of two. Size and Dew.Math.TMtxVec.Complex properties of the calling vector must be set explicitly. An exception is raised if Dew.Math.TMtxVecBase.ConditionCheck is True and array borders are overrun.