You are on page 1of 27

Attia, John Okyere. Fourier Analysis.

Electronics and Circuit Analysis using MATLAB.


Ed. John Okyere Attia
Boca Raton: CRC Press LLC, 1999

1999 by CRC PRESS LLC

CHAPTER EIGHT
FOURIER ANALYSIS
In this chapter, Fourier analysis will be discussed. Topics covered are Fourier series expansion, Fourier transform, discrete Fourier transform, and fast
Fourier transform. Some applications of Fourier analysis, using MATLAB,
will also be discussed.
8.1
If a function

FOURIER SERIES

g (t ) is periodic with period Tp , i.e.,

g (t ) = g (t Tp )

(8.1)

and in any finite interval g ( t ) has at most a finite number of discontinuities


and a finite number of maxima and minima (Dirichlets conditions), and in
addition,
Tp

g(t )dt <

(8.2)

then

g (t ) can be expressed with series of sinusoids. That is,

a0
g (t ) =
+ a n cos(nw0 t ) + bn sin(nw0 t )
2 n =1

where

w0 =

2
Tp

(8.4)

and the Fourier coefficients


tions.

2
an =
Tp

1999 CRC Press LLC

(8.3)

a n and bn are determined by the following equa-

t o + Tp

g(t ) cos(nw t )dt


0

to

n = 0, 1,2,

(8.5)

2
bn =
Tp

t o + Tp

g (t ) sin(nw t )dt

n = 0, 1, 2

(8.6)

to

Equation (8.3) is called the trigonometric Fourier series. The term

a0
in
2

Equation (8.3) is the dc component of the series and is the average value of
g (t ) over a period. The term a n cos(nw0 t ) + bn sin(nw0 t ) is called the nth harmonic. The first harmonic is obtained when n = 1. The latter is also
called the fundamental with the fundamental frequency of o . When n = 2,
we have the second harmonic and so on.
Equation (8.3) can be rewritten as

a0
+ A cos(nw0 t + n )
g (t ) =
2 n =1 n

(8.7)

An = a n2 + bn2

(8.8)

b
n = tan 1 n
an

(8.9)

where

and

The total power in

1
P=
Tp

g (t ) is given by the Parsevals equation:


t o + Tp

to

(t )dt = A +
2
dc

n =1

An2
2

(8.10)

where

a0
A =
2
2
dc

(8.11)

The following example shows the synthesis of a square wave using Fourier
series expansion.

1999 CRC Press LLC

Example 8.1
Using Fourier series expansion, a square wave with a period of 2 ms, peak-topeak value of 2 volts and average value of zero volt can be expressed as

g (t ) =

4
1
sin[(2n 1)2f 0 t ]

n =1 (2n 1)

(8.12)

where

f 0 = 500 Hz
if

a (t ) is given as
4 12
1
sin[(2n 1)2f 0 t ]
a (t ) =
n =1 (2n 1)

Write a MATLAB program to plot


ms and to show that

a (t ) from 0 to 4 ms at intervals of 0.05

a (t ) is a good approximation of g(t).

Solution
MATLAB Script
% fourier series expansion
f = 500; c = 4/pi; dt = 5.0e-05;
tpts = (4.0e-3/5.0e-5) + 1;
for n = 1: 12
for m = 1: tpts
s1(n,m) = (4/pi)*(1/(2*n - 1))*sin((2*n - 1)*2*pi*f*dt*(m-1));
end
end
for m = 1:tpts
a1 = s1(:,m);
a2(m) = sum(a1);
end
f1 = a2';
t = 0.0:5.0e-5:4.0e-3;
clg
plot(t,f1)
xlabel('Time, s')

1999 CRC Press LLC

(8.13)

ylabel('Amplitude, V')
title('Fourier series expansion')
Figure 8.1 shows the plot of

a (t ) .

Figure 8.1 Approximation to Square Wave


By using the Eulers identity, the cosine and sine functions of Equation (8.3)
can be replaced by exponential equivalents, yielding the expression

g (t ) =

n =

exp( jnw0 t )

(8.14)

where

1
cn =
Tp
and

w0 =

1999 CRC Press LLC

Tp / 2

g (t ) exp( jnw t )dt


0

t p / 2

2
Tp

(8.15)

Equation (8.14) is termed the exponential Fourier series expansion. The coefficient cn is related to the coefficients a n and bn of Equations (8.5) and (8.6)
by the expression

cn =
In addition,
tion

(8.16)

cn relates to An and n of Equations (8.8) and (8.9) by the rela-

cn =
The plot of

b
1 2
a n + bn2 tan 1 ( n )
2
an

An
n
2

(8.17)

cn versus frequency is termed the discrete amplitude spectrum or

the line spectrum. It provides information on the amplitude spectral components of g ( t ). A similar plot of cn versus frequency is called the discrete phase spectrum and the latter gives information on the phase components
with respect to the frequency of g ( t ) .
If an input signal

x n (t )

x n (t ) = cn exp( jnwo t )
passes through a system with transfer function
system

(8.18)

H ( w) , then the output of the

y n (t ) is
y n (t ) = H ( jnwo )cn exp( jnwo t )

(8.19)

The block diagram of the input/output relation is shown in Figure 8.2.

xn(t)

H(s)

yn(t)

Figure 8.2 Input/Output Relationship


However, with an input
excitations,

1999 CRC Press LLC

x (t ) consisting of a linear combination of complex

x n (t ) =

n =

cn exp( jnwo t )

(8.20)

the response at the output of the system is

y n (t ) =

n =

H ( jnwo )cn exp( jnwo t )

(8.21)

The following two examples show how to use MATLAB to obtain the coefficients of Fourier series expansion.
Example 8.2
For the full-wave rectifier waveform shown in Figure 8.3, the period is 0.0333s
and the amplitude is 169.71 Volts.
(a)
Write a MATLAB program to obtain the exponential Fourier series
coefficients cn for n = 0,1, 2, .. , 19
(b)
Find the dc value.
(c)
Plot the amplitude and phase spectrum.

Figure 8.3 Full-wave Rectifier Waveform

1999 CRC Press LLC

Solution
diary ex8_2.dat
% generate the full-wave rectifier waveform
f1 = 60;
inv = 1/f1; inc = 1/(80*f1); tnum = 3*inv;
t = 0:inc:tnum;
g1 = 120*sqrt(2)*sin(2*pi*f1*t);
g = abs(g1);
N = length(g);
%
% obtain the exponential Fourier series coefficients
num = 20;
for i = 1:num
for m = 1:N
cint(m) = exp(-j*2*pi*(i-1)*m/N)*g(m);
end
c(i) = sum(cint)/N;
end
cmag = abs(c);
cphase = angle(c);
%print dc value
disp('dc value of g(t)'); cmag(1)
% plot the magnitude and phase spectrum
f = (0:num-1)*60;
subplot(121), stem(f(1:5),cmag(1:5))
title('Amplitude spectrum')
xlabel('Frequency, Hz')
subplot(122), stem(f(1:5),cphase(1:5))
title('Phase spectrum')
xlabel('Frequency, Hz')
diary
dc value of g(t)
ans =
107.5344
Figure 8.4 shows the magnitude and phase spectra of Figure 8.3.

1999 CRC Press LLC

Figure 8.4 Magnitude and Phase Spectra of a Full-wave


Rectification Waveform

Example 8.3
The periodic signal shown in Figure 8.5 can be expressed as

1 t < 1
g (t ) = e 2 t
g (t + 2) = g ( t )
(i) Show that its exponential Fourier series expansion can be expressed as

g (t ) =

( 1) n (e 2 e 2 )
2(2 + jn ) exp( jnt )
n =

(ii) Using a MATLAB program, synthesize

1999 CRC Press LLC

g (t ) using 20 terms, i.e.,

(8.22)

( 1) n (e 2 e 2 )
2(2 + jn ) exp( jnt )
n =10
10

g( t ) =

g(t)
1

Figure 8.5 Periodic Exponential Signal


Solution
(i)

g (t ) =

n =

exp( jnwo t )

where
Tp / 2

1
cn =
Tp
and

wo =

g (t ) exp( jnw t )dt


o

Tp / 2

2 2
=
=
2
Tp
1

1
cn = exp( 2t ) exp( jnt )dt
2 1
cn =
thus

1999 CRC Press LLC

( 1) n (e 2 e 2 )
2(2 + jn )

t(s)

g (t ) =

( 1) n (e 2 e 2 )
2(2 + jn ) exp( jnt )
n =

(ii) MATLAB Script


% synthesis of g(t) using exponential Fourier series expansion
dt = 0.05;
tpts = 8.0/dt +1;
cst = exp(2) - exp(-2);
for n = -10:10
for m = 1:tpts
g1(n+11,m) = ((0.5*cst*((-1)^n))/(2+j*n*pi))*(exp(j*n*pi*dt*(m1)));
end
end
for m = 1: tpts
g2 = g1(:,m);
g3(m) = sum(g2);
end
g = g3';
t = -4:0.05:4.0;
plot(t,g)
xlabel('Time, s')
ylabel('Amplitude')
title('Approximation of g(t)')
Figure 8.6 shows the approximation of

1999 CRC Press LLC

g (t ) .

Figure 8.6 An Approximation of

8.2

g (t ) .

FOURIER TRANSFORMS

g (t ) is a nonperiodic deterministic signal expressed as a function of time


t, then the Fourier transform of g ( t ) is given by the integral expression:
If

G( f ) =

g (t ) exp( j 2ft )dt

(8.23)

where

j = 1

and

f denotes frequency
g (t ) can be obtained from the Fourier transform G ( f ) by the Inverse Fourier Transform formula:

1999 CRC Press LLC

g (t ) =

G( f ) exp( j 2ft )df

(8.24)

g (t ) to be Fourier transformable, it should satisfy the Dirichlets


conditions that were discussed in Section 8.1. If g ( t ) is continuous and nonperiodic, then G ( f ) will be continuous and periodic. However, if g(t) is
continuous and periodic, then G ( f ) will discrete and nonperiodic; that is

For a signal

g (t ) = g (t nTp )

(8.25)

where

Tp = period
then the Fourier transform of

1
G( f ) =
Tp

g (t ) is

c ( f

n =

1
)
Tp

(8.26)

where

1
cn =
Tp
8.2.1
If

Tp / 2

g (t ) exp( j 2nf

t )dt

(8.27)

t p / 2

Properties of Fourier transform

g (t ) and G ( f ) are Fourier transform pairs, and they are expressed as


g (t ) G ( f )

(8.28)

then the Fourier transform will have the following properties:


Linearity

ag1 (t ) + bg 2 (t ) aG1 ( f ) + bG2 ( f )


where
a and b are constants

1999 CRC Press LLC

(8.29)

Time scaling

1 f
G
a a

g (at )

(8.30)

Duality

G (t ) g ( f )

(8.31)

Time shifting

g (t t 0 ) G ( f ) exp( j 2ft 0 )

(8.32)

Frequency Shifting

exp( j 2 f C t ) g (t ) G ( f f C )

(8.33)

Definition in the time domain

dg (t )
j 2fG ( f )
dt

(8.34)

Integration in the time domain


t

g ( )d

1
G (0)
( f ) (f)
G( f ) +
2
j 2f

(8.35)

Multiplication in the time domain

G ( )G

( f ) d

(8.36)

(t )d G1 ( f )G2 ( f )

(8.37)

g1 ( t ) g 2 ( t )

Convolution in the time domain

g ( ) g
1

1999 CRC Press LLC

8.3

DISCRETE AND FAST FOURIER TRANSFORMS

Fourier series links a continuous time signal into the discrete-frequency domain. The periodicity of the time-domain signal forces the spectrum to be discrete. The discrete Fourier transform of a discrete-time signal g[ n] is given
as

G[ k ] =

N 1

g[n]exp( j 2nk / N )

k = 0,1, , N-1

(8.38)

n = 0,1,, N-1

(8.39)

n=0

The inverse discrete Fourier transform,

g[n] =

g[n] is

N 1

G[ k ]exp( j 2nk / N )
k =0

where

g[n] . It is also
the total number frequency sequence values in G[ k ] .

is the number of time sequence values of

is the time interval between two consecutive samples of the


input sequence g[ n] .

is the frequency interval between two consecutive samples


of the output sequence G[ k ] .

N, T, and F are related by the expression

NT =

1
F

(8.40)

NT is also equal to the record length. The time interval, T, between samples
should be chosen such that the Shannons Sampling theorem is satisfied. This
means that T should be less than the reciprocal of 2 f H , where f H is the
highest significant frequency component in the continuous time signal
from which the sequence g[ n] was obtained.
require N to be an integer power of 2.

g (t )

Several fast DFT algorithms

A discrete-time function will have a periodic spectrum. In DFT, both the time
function and frequency functions are periodic. Because of the periodicity of
DFT, it is common to regard points from n = 1 through n = N/2 as positive,

1999 CRC Press LLC

and points from n = N/2 through n = N - 1 as negative frequencies. In addition, since both the time and frequency sequences are periodic, DFT values at
points n = N/2 through n = N - 1 are equal to the DFT values at points n = N/2
through n = 1.
In general, if the time-sequence is real-valued, then the DFT will have real
components which are even and imaginary components that are odd. Similarly, for an imaginary valued time sequence, the DFT values will have an odd
real component and an even imaginary component.
If we define the weighting function

WN = e

j 2
N

WN as

= e j 2 FT

(8.41)

Equations (8.38) and (8.39) can be re-expressed as

G[ k ] =

N 1

g[n]W
n=0

kn
N

(8.42)

and

g[n] =

N 1

G[ k ]W
k =0

kn
N

(8.43)

The Fast Fourier Transform, FFT, is an efficient method for computing the
discrete Fourier transform. FFT reduces the number of computations needed
for computing DFT. For example, if a sequence has N points, and N is an in-

N 2 operations, whereas FFT requires


N
N
log 2 ( N ) complex multiplication,
log 2 ( N ) complex additions and
2
2
N
log 2 ( N ) subtractions. For N = 1024, the computational reduction from
2

tegral power of 2, then DFT requires

DFT to FFT is more than 200 to 1.


The FFT can be used to (a) obtain the power spectrum of a signal, (b) do digital filtering, and (c) obtain the correlation between two signals.

1999 CRC Press LLC

8.3.1

MATLAB function fft

The MATLAB function for performing Fast Fourier Transforms is

fft ( x )
where

x is the vector to be transformed.


fft ( x , N )

is also MATLAB command that can be used to obtain N-point fft. The vector
x is truncated or zeros are added to N, if necessary.
The MATLAB functions for performing inverse fft is

ifft ( x ).

[z , z ] = fftplot ( x, ts)
m

is used to obtain fft and plot the magnitude

zm and z p of DFT of x. The

sampling interval is ts. Its default value is 1. The spectra are plotted versus
the digital frequency F. The following three examples illustrate usage of
MATLAB function fft.
Example 8.4

x[n] = ( 1, 2, 1). (a) Calculate the DFT of x[n] . (b)


Use the fft algorithm to find DFT of x[ n] . (c) Compare the results of (a)
Given the sequence

and (b).
Solution
(a) From Equation (8.42)

G[ k ] =

N 1

g[n]W
n=0

From Equation (8.41)

1999 CRC Press LLC

kn
N

W30 = 1
W31 = e

j 2
3

j 4
3

W32 = e

= 0.5 j 0.866
= 0.5 + j 0.866

W33 = W30 = 1
W34 = W31
Using Equation (8.41), we have
2

G[0] = g[n]W30 = 1 + 2 + 1 = 4
n =0
2

G[1] = g[n]W3n = g[0]W30 + g[1]W31 + g[2]W32


n=0

. j0866
. ) + (05
. + j0866
. ) = 05
. j0866
.
= 1 + 2(05
2

G[2] = g[n]W32n = g[0]W30 + g[1]W32 + g[2]W34


n =0

. + j0866
. ) + (05
. j0866
. ) = 05
. + j 0866
.
= 1 + 2(05
(b) The MATLAB program for performing the DFT of

x[n] is

MATLAB Script
diary ex8_4.dat
%
x = [1 2 1];
xfft = fft(x)
diary
The results are
xfft =
4.0000

-0.5000 - 0.8660i

-0.5000 + 0.8660i

(c) It can be seen that the answers obtained from parts (a) and (b) are
identical.

1999 CRC Press LLC

Example 8.5
Signal

g (t ) is given as
g (t ) = 4e 2 t cos[2 (10)t ]u(t )
g (t ) , i.e., G ( f ) .

(a)

Find the Fourier transform of

(b)

Find the DFT of g ( t ) when the sampling interval is 0.05 s with N


= 1000.
Find the DFT of g ( t ) when the sampling interval is 0.2 s with N =
250.
Compare the results obtained from parts a, b, and c.

(c)
(d)
Solution
(a)

g (t ) can be expressed as
1
1

g (t ) = 4e 2 t e j 20t + e j 20t u(t )


2
2

Using the frequency shifting property of the Fourier Transform, we get

G( f ) =

2
2
+
2 + j 2 ( f 10) 2 + j 2 ( f + 10)

(b, c) The MATLAB program for computing the DFT of


MATLAB Script
% DFT of g(t)
% Sample 1, Sampling interval of 0.05 s
ts1 = 0.05; % sampling interval
fs1 = 1/ts1; % Sampling frequency
n1 = 1000; % Total Samples
m1 = 1:n1; % Number of bins
sint1 = ts1*(m1 - 1); % Sampling instants
freq1 = (m1 - 1)*fs1/n1; % frequencies
gb = (4*exp(-2*sint1)).*cos(2*pi*10*sint1);
gb_abs = abs(fft(gb));
subplot(121)

1999 CRC Press LLC

g (t ) is

plot(freq1, gb_abs)
title('DFT of g(t), 0.05s Sampling interval')
xlabel('Frequency (Hz)')
% Sample 2, Sampling interval of 0.2 s
ts2 = 0.2; % sampling interval
fs2 = 1/ts2; % Sampling frequency
n2 = 250; % Total Samples
m2 = 1:n2; % Number of bins
sint2 = ts2*(m2 - 1); % Sampling instants
freq2 = (m2 - 1)*fs2/n2; % frequencies
gc = (4*exp(-2*sint2)).*cos(2*pi*10*sint2);
gc_abs = abs(fft(gc));
subplot(122)
plot(freq2, gc_abs)
title('DFT of g(t), 0.2s Sampling interval')
xlabel('Frequency (Hz)')
The two plots are shown in Figure 8.7.

Figure 8.7 DFT of

g (t )

(d) From Figure 8.7, it can be seen that with the sample interval of 0.05 s,
there was no aliasing and spectrum of G[ k ] in part (b) is almost the same

1999 CRC Press LLC

G ( f ) of part (a). With the sampling interval being 0.2 s (less


than the Nyquist rate), there is aliasing and the spectrum of G[ k ] is different from that of G ( f ) .

as that of

Example 8.6
Given a noisy signal

g (t ) = sin(2f 1 t ) + 0.5n(t )
where

f 1 = 100 Hz
n(t) is a normally distributed white noise. The duration of g ( t ) is 0.5 seconds. Use MATLAB function rand to generate the noise signal.
Use
MATLAB to obtain the power spectral density of g ( t ) .

Solution
A representative program that can be used to plot the noisy signal and obtain
the power spectral density is
MATLAB Script
% power spectral estimation of noisy signal
t = 0.0:0.002:0.5;
f1 =100;
% generate the sine portion of signal
x = sin(2*pi*f1*t);
% generate a normally distributed white noise
n = 0.5*randn(size(t));
% generate the noisy signal
y = x+n;
subplot(211), plot(t(1:50),y(1:50)),
title('Nosiy time domain signal')
% power spectral estimation is done
yfft = fft(y,256);

1999 CRC Press LLC

len = length(yfft);
pyy = yfft.*conj(yfft)/len;
f = (500./256)*(0:127);
subplot(212), plot(f,pyy(1:128)),
title('power spectral density'),
xlabel('frequency in Hz')
The plot of the noisy signal and its spectrum is shown in Figure 8.8. The amplitude of the noise and the sinusoidal signal can be changed to observe their
effects on the spectrum.

Figure 8.8 Noisy Signal and Its Spectrum

SELECTED BIBLIOGRAPHY

1999 CRC Press LLC

1.

Math Works Inc., MATLAB, High Performance Numeric


Computation Software, 1995.

2.

Etter, D. M., Engineering Problem Solving with MATLAB, 2nd


Edition, Prentice Hall, 1997.

3.

Nilsson, J. W., Electric Circuits, 3rd Edition, Addison-Wesley


Publishing Company, 1990.

4.

Johnson, D. E., Johnson, J.R., and Hilburn, J.L., Electric Circuit


Analysis, 3rd Edition, Prentice Hall, 1997.

EXERCISES
8.1

The triangular waveform, shown in Figure P8.1 can be expressed as

8 A ( 1) n +1
cos((2n 1) w0 t )
g (t ) = 2 2
n =1 4 n 1
where

w0 =

1
Tp

g(t)
A

2Tp

Tp

-A
Figure P8.1 Triangular Waveform

1999 CRC Press LLC

If

A = 1, T = 8 ms, and sampling interval is 0.1 ms.

(a)

Write MATLAB program to resynthesize

g (t ) if 20

terms are used.


(b)

What is the root-mean-squared value of the function that is


the difference between g ( t ) and the approximation to

g (t ) when 20 terms are used for the calculation of g (t ) ?


8.2

A periodic pulse train

g (t ) is shown in Figure P8.2.

g(t)
4

t(s)

Figure P8.2 Periodic Pulse Train


If g ( t ) can be expressed by Equation (8.3) ,
(a)
Derive expressions for determining the Fourier Series coefficients an and bn .

8.3

1999 CRC Press LLC

(b)

Write a MATLAB program to obtain an and bn for n = 0 ,


1, ......, 10 by using Equations (8.5) and (8.6).

(c)

Resynthesis g(t) using 10 terms of the values an , bn


obtained from part (b).

For the half-wave rectifier waveform, shown in Figure P8.3, with a


period of 0.01 s and a peak voltage of 17 volts.
(a)

Write a MATLAB program to obtain the exponential


Fourier series coefficients cn for n = 0, 1, ......., 20.

(b)

Plot the amplitude spectrum.

(c)

Using the values obtained in (a), use MATLAB to


regenerate the approximation to g ( t ) when 20 terms of the
exponential Fourier series are used.

Figure P8.3 Half-Wave Rectifier Waveform


8.4

Figure P8.4(a) is a periodic triangular waveform.


v(t)
2

-2

Figure P8.4(a) Periodic Triangular Waveform


(a)

Derive the Fourier series coefficients an and bn .

(b)

With the signal

v (t ) of the circuit shown in P8.4(b),


i (t ) .

derive the expression for the current

1999 CRC Press LLC

t(s)

4H
i(t)

VL(t)
3

V(t)

VR(t)

Figure P8.4(b) Simple RL Circuit

v R ( t ), v L (t ) and also the sum of


v R (t ) and v L ( t ).

(c)

Plot the voltages

(d)

8.5

Compare the voltages of

v R (t ) + v L (t ) to V(t).

If the periodic waveform shown in Figure 8.5 is the input of the


circuit shown in Figure P8.5.
(a)
Derive the mathematical expression for v C ( t ).
(b)

Use MATLAB to plot the signals

g (t ) and v C ( t ).

g(t)

Figure P8.5 RC Circuit

1999 CRC Press LLC

2F

VC(t)

8.6

The unit sample response of a filter is given as

h[n] = (0 1 1 0 1 1 0)
(a)

Find the discrete Fourier transform of


the values of

(b)

h[n] ; assume that

h[n] not shown are zero.

If the input to the filter is

n
x[n] = sin u[n] , find the
8

output of the filter.

8.7

g (t ) = sin(200t ) + sin(400t )
(a)

Generate 512 points of

g (t ). Using the FFT algorithm,

generate and plot the frequency content of g ( t ) .


Assume a sampling rate of 1200 Hz. Find the power
spectrum.
(b)

8.8

Verify that the frequencies in


FFT plot.

g (t ) are observable in the

Find the DFT of

g (t ) = e 5t u(t )

1999 CRC Press LLC

g (t ) .

(a)

Find the Fourier transform of

(b)

Find the DFT of g ( t ) using the sampling interval of 0.01 s


and time duration of 5 seconds.

(c)

Compare the results obtained from parts (a) and (b).

You might also like