Last Modified: January 12, 2018

Computes the inverse Discrete Cosine Transform (DCT) of a sequence.

The real input sequence.

This input can be a 1D or 2D array of double-precision, floating-point numbers.

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an **error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Default: **No error

The inverse DCT of the real input sequence.

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

If *y* represents a 1D array as the input sequence **DCT{x}**, the one-dimensional inverse Discrete Cosine Transform of *y* is defined as:

${x}_{n}=\sqrt{\frac{2}{N}}\underset{k=0}{\overset{N-1}{\sum}}{{\alpha}_{k}y}_{k}\mathrm{cos}\frac{(2n+1)k\pi}{2N}$

and

${\alpha}_{k}=\{\begin{array}{c}\frac{1}{\sqrt{2}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}k=0\\ 1\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}k=1,\text{\hspace{0.17em}}2,\text{\hspace{0.17em}}\mathrm{...},\text{\hspace{0.17em}}N-1\end{array}$

where

*N*is the length of**DCT{x}***y*_{k}is the*k*^{th}element of**DCT{x}***x*_{n}is the*n*^{th}element of**x**

This node applies a fast inverse DCT algorithm instead of calculating the inverse DCT directly. This node implements the fast inverse DCT algorithm using an FFT-based technique.

If *y* represents a 2D array as the input sequence **DCT{x}**, the two-dimensional inverse Discrete Cosine Transform of *y* is defined as:

$x(m,n)=\sqrt{\frac{2}{M}}\sqrt{\frac{2}{N}}\underset{u=0}{\overset{M-1}{\sum}}\underset{v=0}{\overset{N-1}{\sum}}{\alpha}_{u}{\alpha}_{v}y(u,v)\mathrm{cos}\frac{(2m+1)u\pi}{2M}\mathrm{cos}\frac{(2n+1)v\pi}{2N}$

where

*M*is the number of rows of**DCT{x}***N*is the number of columns of**DCT{x}**- x(m, n) is the element of
**x**with row number*m*and column number*n* - y(u, v) is the element of
**DCT{x}**with row number*u*and column number*v*

This node performs a two-dimensional inverse DCT using the following two steps:

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application