<< Chapter < Page Chapter >> Page >

In this lab, we learn how to compute the continuous-time Fourier transform (CTFT), normally referred to as Fourier transform, numerically and examine its properties. Also, we explore noise cancellation and amplitude modulation as applications of Fourier transform.

Properties of ctft

The continuous-time Fourier transform (CTFT) (commonly known as Fourier transform) of an aperiodic signal x ( t ) size 12{x \( t \) } {} is given by

X ( ω ) = x ( t ) e jωt dt size 12{X \( ω \) = Int cSub { size 8{ - infinity } } cSup { size 8{ infinity } } {x \( t \) e rSup { size 8{ - jωt} } ital "dt"} } {}

The signal x ( t ) size 12{x \( t \) } {} can be recovered from X ( ω ) size 12{X \( ω \) } {} via this inverse transform equation

x ( t ) = 1 X ( ω ) e jωt size 12{x \( t \) = { {1} over {2π} } Int cSub { size 8{ - infinity } } cSup { size 8{ infinity } } {X \( ω \) e rSup { size 8{jωt} } dω} } {}

Some of the properties of CTFT are listed in [link] .

Properties of CTFT
Properties Time domain Frequency domain
Time shift x ( t t 0 ) size 12{x \( t - t rSub { size 8{0} } \) } {} X ( ω ) e jωt 0 size 12{X \( ω \) e rSup { size 8{ - jωt rSub { size 6{0} } } } } {}
Time scaling x ( at ) size 12{x \( ital "at" \) } {} 1 a X ω a size 12{ { {1} over { lline a rline } } X left ( { {ω} over {a} } right )} {}
Linearity a 1 x 1 ( t ) + a 2 x 2 ( t ) size 12{a rSub { size 8{1} } x rSub { size 8{1} } \( t \) +a rSub { size 8{2} } x rSub { size 8{2} } \( t \) } {} a 1 X 1 ( ω ) + a 2 X 2 ( ω ) size 12{a rSub { size 8{1} } X rSub { size 8{1} } \( ω \) +a rSub { size 8{2} } X rSub { size 8{2} } \( ω \) } {}
Time convolution x ( t ) h ( t ) size 12{x \( t \) * h \( t \) } {} X ( ω ) H ( ω ) size 12{X \( ω \) H \( ω \) } {}
Frequency convolution x ( t ) h ( t ) size 12{x \( t \) h \( t \) } {} X ( ω ) H ( ω ) size 12{X \( ω \) * H \( ω \) } {}

Refer to signals and systems textbooks [link] - [link] for more theoretical details on this transform.

Numerical approximations to ctft

Assuming that the signal x ( t ) size 12{x \( t \) } {} is zero for t <0 size 12{t"<0"} {} and t T size 12{t>= T} {} , we can approximate the CTFT integration in Equation (1) as follows:

x ( t ) e jωt dt = 0 T x ( t ) e jωt dt n = 0 N 1 x ( ) e jωnτ τ size 12{ Int cSub { size 8{ - infinity } } cSup { size 8{ infinity } } {x \( t \) e rSup { size 8{ - jωt} } ital "dt"} = Int cSub { size 8{0} } cSup { size 8{T} } {x \( t \) e rSup { size 8{ - jωt} } ital "dt"} approx Sum cSub { size 8{n=0} } cSup { size 8{N - 1} } {x \( nτ \) e rSup { size 8{ - jωnτ} } τ} } {}

where T = size 12{T=Nτ} {} and N is an integer. For sufficiently small τ size 12{τ} {} , the above summation provides a close approximation to the CTFT integral. The summation n = 0 N 1 x ( ) e jωnτ size 12{ Sum cSub { size 8{n=0} } cSup { size 8{N - 1} } {x \( nτ \) e rSup { size 8{ - jωnτ} } } } {} is widely used in digital signal processing (DSP), and both LabVIEW MathScript and LabVIEW have a built-in function for it called fft . In a .m file, if N samples x ( ) size 12{x \( nτ \) } {} are stored in a vector x size 12{x} {} , then the function call

>>xw=tau*fft (x)

calculates

X ω ( k + 1 ) = τ n = 0 N 1 x ( ) e k 0 k N 1 X ( ω k ) alignl { stack { size 12{X rSub { size 8{ω} } \( k+1 \) =τ Sum cSub {n=0} cSup {N - 1} {x \( nτ \) e rSup { size 8{ - jω rSub { size 6{k} } nτ} } } matrix {{} # size 12{0<= k<= N - 1} {} } } {} #size 12{~~~~ approx X \( ω rSub { size 8{k} } \) } {} } } {}

where

ω k = { 2πk 0 k N 2 2πk τ N 2 + 1 k N 1 size 12{ω rSub { size 8{k} } = left lbrace matrix { { {2πk} over {Nτ} } {} # 0<= k<= { {N} over {2} } {} ## { {2πk} over {Nτ} } - { {2π} over {τ} } {} # { {N} over {2} } +1<= k<= N - 1{} } right none } {}

with N assumed to be even. The fft function returns the positive frequency samples before the negative frequency samples. To place the frequency samples in the right order, use the function fftshift as indicated below:

>>xw=fftshift(tau*fft (x ) )

Note that X ( ω ) size 12{X \( ω \) } {} is a vector (actually, a complex vector) of dimension N. X ( ω ) size 12{X \( ω \) } {} is complex in general despite the fact that x ( t ) size 12{x \( t \) } {} is real-valued. The magnitude of X ( ω ) size 12{X \( ω \) } {} can be computed using the function abs and the phase of X ( ω ) size 12{X \( ω \) } {} using the function angle .

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, An interactive approach to signals and systems laboratory. OpenStax CNX. Sep 06, 2012 Download for free at http://cnx.org/content/col10667/1.14
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'An interactive approach to signals and systems laboratory' conversation and receive update notifications?

Ask