0% found this document useful (0 votes)
179 views20 pages

Errors in DFT Processing

1. A sonar transmits a sinusoidal pulse that is Doppler shifted upon reflection from a moving target. 2. Taking the DFT of the received signal allows the Doppler shift to be measured, revealing the target's velocity along the line of sight. 3. The target velocity can be calculated from the Doppler shift by determining the frequency difference between the transmitted and received signal peaks.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
179 views20 pages

Errors in DFT Processing

1. A sonar transmits a sinusoidal pulse that is Doppler shifted upon reflection from a moving target. 2. Taking the DFT of the received signal allows the Doppler shift to be measured, revealing the target's velocity along the line of sight. 3. The target velocity can be calculated from the Doppler shift by determining the frequency difference between the transmitted and received signal peaks.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

EECE 301 Signals & Systems Prof.

Mark Fowler
Discussion #9
Illustrating the Errors in DFT Processing DFT for Sonar Processing

Example #1
Illustrating The Errors in DFT Processing

Illustrating the Errors in DFT processing


This example does a nice job of showing the relationships between: the CTFT, the DTFT of the infinite-duration signal, the DTFT of the finite-duration collected samples, and the DFT computed from those samples. However, it lacks any real illustration of why we do DFT processing in practice. There are many practical applications of the DFT and well look at one in the next example.

Recall the processing setup: (Note: no anti-aliasing filter shown but we should have one!) sensor
x(t )

ADC

Inside Computer
x[n]

x[0] x[1]

X [0]

X ( ) CTFT (theory)

X () DTFT (theory)

x[2]

x[N-1] 0 0

DFT processing

X[1] X[2]

X[Nzp-3]

ZeroX[Nzp-2] padding to X[Nzp-1] length Nzp memory array Practical computed DFT to understand what this shows us

memory array We study the theory of these


X N ()

DTFTN (theory)

Lets imagine we have the following CT Signal: 1


x(t )

x(t ) = e bt u (t ) for b > 0

Now analyze what we will get from the DFT processing for this signal From our FT Table we find the FT of x(t) is:

1 1 X ( ) = X(f ) = j + b j 2f + b
CTFT Result(Theory)

If we sample x(t) at the rate of Fs samples/second That is, sample every T = 1/Fs sec we get the DT Signal coming out of the ADC is:

x[n] = x(t ) |t = nT = x(nT )


For this example we get:

x[n ] = e bt u(t ) t =nT = e bTn u[n ] = (e


bT n

) u[n] = a u[n]
n

Note: |a| < 1

Now imagine that in theory we have all of the samples x[n] - < n < at the ADC output. Then, in theory the DTFT of this signal is found using the DTFT table to be:

1 X () = 1 ae j
DTFT Result(Theory)

For |a| < 1 which we have because:

a = e bT & b > 0, T > 0

Now, in reality we can collect only N < samples in our computer:

xn [n] = a n , 0 n ( N 1) (" Assume" xn [n] = 0 elsewhere)


Necessary to connect the DFT result to the theoretical results wed like to see. The DTFT of this collected finite-duration is easily found by hand:

C X N () = 1 (ae

j N

1 ae j

Note that we think of this as follows:

x N [n ] = x[n ]wN [n ]
..and DTFT theory tells us that

1, 0, 1, 2, K, N 1 wN [n ] = 0, otherwise

1 X N () = 2

( )WN ( )d = X () WN ()

A form of convolution (DT Freq. Domain Convolution) and this convolution has a smearing effect. Finally, the DFT of the zero-padded collected samples is
x[0] x[1] ... x zp [n] = x[ N 1] 0 ... 0

X zp [k ] =
Total of Nzp points

N zp 1 n =0

j zp

[ n]

2kn N zp

(The only part of this example wed really do)

Our theory tells us that the zero-padded DFT is nothing more than points on DTFTN:

X zp [k ] = X N ( k )

where k =

2k N zp

k = 0, 1, 2, ..., N 1

Spacing between DFT points is 2/Nzp Increasing the amount of zero-padding gives closer spacing

Now run the m-file called DFT_Relations.m for different Fs , N, & Nap values

Results from DFT_Relations.m Plot #1: shows CTFT computed using: X ( f ) =

1 j 2f + b

Notice that this is not ideally bandlimited, but is essentially bandlimited. Therefore we expect some aliasing when we sample.

Plot #2: shows DTFT computed using: (For plotting)

1 X () = 1 ae j

Our theory says that: (For analysis)

+ k 2 1 X () = X Fs T k = 2
(CTFT rescaled to and then shifted by multiples of 2)

So we should see replicas in X() and we do! We plot TX() to undo the 1/T here

Plot #2: DTFT:

X () =

1 1 ae j

2 We also plot the CTFT against f = F s 1 1 X( f ) = X () = j 2f + b j 2 ( Fs / 2 ) + b

Recall the two equivalent axes:

Fs

Fs 2

0 0

Fs 2

Fs

The theory in

+ k 2 1 X () = X Fs T k = 2

says well see significant aliasing in X() unless Fs is high enough The first error visible in plot #2

DTFT

CTFT

1 (ae j ) N Plot #3 shows DTFTN computed using X N () = 1 ae j

We see that XN() shows signs of the smearing due to: X N () = X () WN () Also called leakage error The second error visible in plot #3

DTFT

DTFTN

This leakage error is less significant as we increase N, the number of collected samples

Plot #4 shows DFT computed using: X zp [k ] =

N zp 1 n =0

zp

[n ]e

j 2kn N zp

It is plotted vs. k =

2k N zp

but with the right half moved down to lie between - & 0 rad/sample

For comparison we also plot XN() DFT DTFTN

Note: We show an artificially small number of DFT points here

Theory says Xzp[k] points should lie on top of XN() not X() !! We see that this is true If Nzp is too small (i.e. Nzp = N) then there arent enough DFT points on XN() to allow us to see the real underlying shape of XN() This is Grid Error and it is less significant when Nzp is large. The third error visible in plot #4

DFT DTFTN

Summary of Results:

sensor
x(t )

ADC
x[n]

Inside Computer X [0]

CTFT

x[0] x[1] x[2]

DTFT
Aliasing Error

DFT processing

X[1] X[2]

X[Nzp-3] X[Nzp-2] X[Nzp-1]

x[N-1] 0 0 Zeropadding to length Nzp

memory array
Smearing /Leakage Error

memory array

DTFTN

Grid Error

DFT

Example #2
Sonar Processing using the DFT

Radar/Sonar Processing using the DFT


Imagine a stationary sonar and moving target v v target y

Vs
Radar/Sonar

Component of velocity along line of sight x

Say we transmit a sinusoidal pulse:

A cos(2f ot ), 0 t To xTX (t ) = 0, else

Tx = Transmit Rx = Receive

f oVs t + , 0 t To A cos 2 f o + c xRX (t ) = else Doppler shift in Hz 0,


(c speed of propagation 331m/s for sound in air)

Physics tells us (Doppler effect) that the reflected signal received will be:

(for radars, this is generally in the kHz range) (for sonar, this is in the 100s of Hz range)

Our CTFT theory tells us that the CTFT of the Tx signal will be:

X tx ( f )

abs. value of shifted sinc

Beff

fo

fo

Beff

Assume that fo is large enough that this decays to a negligible level by f 0 Hz and by f Beff Center fo between 0 and Beff Fs 2 Beff Also CTFT theory tells us that the CTFT of the Rx signal will be: Peak is shifted from fo by the doppler shift

X tx ( f )

f fo f oVs = fr C fr = fo + f oVs C Beff

If we know fo and we can find where V = c f r 1 (m / s) s f this peak is then we can find Vs: o

Hydrophone sensor Anti-aliasing ADC filter CT CT signal signal

Computer: DT processing DFT processor DT signal peak search DFT values

Get Vs

You might also like