<< Chapter < Page Chapter >> Page >
C ( k ) = n = 0 N - 1 x ( n ) W N n k

One should notice that with the finite summation of the DFT, there is no question of convergence or of the ability to interchange the order ofsummation. No “delta functions” are needed and the N transform values can be calculated exactly (within the accuracy of the computer orcalculator used) from the N signal values with a finite number of arithmetic operations.

Matrix formulation of the dft

There are several advantages to using a matrix formulation of the DFT. This is given by writing [link] or [link] in matrix operator form as

C 0 C 1 C 2 C N - 1 = W 0 W 0 W 0 W 0 W 0 W 1 W 2 W 0 W 2 W 4 W 0 W ( N - 1 ) ( N - 1 ) x 0 x 1 x 2 x N - 1

or

C = Fx .

The orthogonality of the basis function in [link] shows up in this matrix formulation by the columns of F being orthogonal to each other as are the rows. This means that F T F = k I , where k is a scalar constant, and, therefore, F T = k F - 1 . This is called a unitary operator.

The definition of the DFT in [link] emphasizes the fact that each of the N DFT values are the sum of N products. The matrix formulation in [link] has two interpretations. Each k -th DFT term is the inner product of two vectors, k -th row of F and x ; or, the DFT vector, C is a weighted sum of the N columns of F with weights being the elements of the signal vector x . A third view of the DFT is the operator view which is simply the single matrix equation [link] .

It is instructive at this point to write a computer program to calculate the DFT of a signal. In Matlab [link] , there is a pre-programmed function to calculate the DFT, but that hides the scalar operations. Oneshould program the transform in the scalar interpretive language of Matlab or some other lower level language such as FORTRAN, C, BASIC, Pascal, etc.This will illustrate how many multiplications and additions and trigonometric evaluations are required and how much memory is needed. Donot use a complex data type which also hides arithmetic, but use Euler's relations

e j x = cos ( x ) + j sin ( x )

to explicitly calculate the real and imaginary part of C ( k ) .

If Matlab is available, first program the DFT using only scalar operations. It will require two nested loops and will run ratherslowly because the execution of loops is interpreted. Next, program it using vector inner products to calculate each C ( k ) which will require only one loop and will run faster. Finally, program itusing a single matrix multiplication requiring no loops and running much faster. Check the memory requirements of the three approaches.

The DFT and IDFT are a completely well-defined, legitimate transform pair with a sound theoretical basis that do not need to be derived from orinterpreted as an approximation to the continuous-time Fourier series or integral. The discrete-time and continuous-time transforms and othertools are related and have parallel properties, but neither depends on the other.

The notation used here is consistent with most of the literature and with the standards given in [link] . The independent index variable n of the signal x ( n ) is an integer, but it is usually interpreted as time or, occasionally, as distance. The independent index variable k of the DFT C ( k ) is also an integer, but it is generally considered as frequency. The DFT is called the spectrum of the signal and the magnitudeof the complex valued DFT is called the magnitude of that spectrum and the angle or argument is called the phase.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Digital signal processing and digital filter design (draft). OpenStax CNX. Nov 17, 2012 Download for free at http://cnx.org/content/col10598/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Digital signal processing and digital filter design (draft)' conversation and receive update notifications?

Ask