You are here : matlab → Signal Processing → idct
# idct() - Signal Processing

### Syntax

### Example

### Output / Return Value

### Limitations

### Alternatives / See Also

### Reference

The inverse discrete cosine transform reconstructs a sequence from its discrete cosine transform (DCT) coefficients. The idct function is the inverse of the dct function.x = idct(y) returns the inverse discrete cosine transform of yx(n)=∑k=1Nw(k)y(k)cos(π(2n−1)(k−1)2N), n=1,2,…Nwherew(k)={1N,k=12N,2≤k≤Nand N = length(x), which is the same as length(y). The series is indexed from n = 1 and k = 1 instead of the usual n = 0 and k = 0 because MATLAB® vectors run from 1 to N instead of from 0 to N-1.x = idct(y,n) appends zeros or truncates the vector y to length n before transforming.If y is a matrix, idct transforms its columns.

x = idct(y)x = idct(y,n)

Signal Reconstruction via Inverse Discrete Cosine TransformOpen This Example Generate a signal that consists of a 25 Hz sinusoid sampled at 1000 Hz for 1 second. The sinusoid is embedded in white Gaussian noise with variance 0.01. rng('default') Fs = 1000; t = 0:1/Fs:1-1/Fs; x = sin(2*pi*25*t) + randn(size(t))/10; Compute the discrete cosine transform of the sequence. Determine how many of the 1000 DCT coefficients are significant, that is, greater than 1.y = dct(x); sigcoeff = abs(y)>=1; howmany = sum(sigcoeff) howmany = 17 Reconstruct the signal using only the significant components.y(~sigcoeff) = 0; z = idct(y); Plot the original and reconstructed signals.subplot(2,1,1) plot(t,x) yl = ylim; title('Original') subplot(2,1,2) plot(t,z) ylim(yl) title('Reconstructed') Related ExamplesDCT for Speech Signal Compression