Digital Signal Processing Reference
In-Depth Information
communications, and one of the ways to meet this challenge is to compress data
efficiently. This section briefly discusses data compression using the discrete
cosine transform (DCT).
Many popular transforms in signal processing decompose a given time-domain
signal x(t) into a weighted sum of elementary functions or signals. This group of
elementary functions is known as the basis of the transform. Often transforms are
chosen to have basis functions which are orthogonal (or uncorrelated), because of
the many advantages that such basis functions bring. These advantages include:
i.
reduced computation compared to that required with non-orthogonal basis
functions,
ii.
good immunity to noise,
iii.
invertibility, and
iv.
compact representations for many naturally occurring signals.
The general class of invertible orthogonal transforms is defined using an
orthogonal basis f / ð k Þj k ¼ 0 ; 1 ; ... ; N 1 g as follows:
X ð k Þ¼ X
N 1
x ð n Þ / k ð n Þ
n ¼ 0
N 1
X
x ð n Þ¼ 1
N
X ð k Þ / k ð n Þ
k ¼ 0
where:
:
N 1
X
1
N
/ k ð n Þ / m ð n Þ¼ 1 ;
m ¼ k
0 ;
m k
n ¼ 0
For the DFT / k (n) = exp(j2pkn/N). Note that in the case of the DFT, X(k)isa
complex function even if x(n)isreal. In some applications, it is preferable to have
a real transform for a real signal. One such real transform is the Discrete Cosine
Transform (DCT). The definition for the DCT and its inverse is:
X ð k Þ¼ 2
N
r w ð k Þ X
k ¼ 0 ; 1 ; ... ; N 1
N 1
pk ð 2n þ 1 Þ
2N
x ð n Þ cos
n ¼ 0
r X
2
N
n ¼ 0 ; 1 ; ... ; N 1
N 1
pk ð 2n þ 1 Þ
2N
x ð n Þ¼
w ð k Þ X ð k Þ cos
n ¼ 0
where w ð k Þ¼ 1 = 2
p
:
;
k ¼ 0
1 ;
k ¼ 1 ; ... ; N 1
This transform is given in MATLAB as dct(x) and idct(X). It is closely related
to the DFT/IDFT and can be calculated using a similarly efficient algorithm. It is
worth noting that Parseval's Theorem is preserved by the DCT as reflected in the
following equation:
Search WWH ::




Custom Search