EE449 Computer Architecture
Matt Aldrich
5/04/04
Fast Ultrasound Signal
Processing Techniques
Analog & DSP Detection Techniques
•
EE449 Final Project
•
Detection of Ultrasound Pulses
–
Explanation of problem; Analog vs. Digital
–
Analog implementation and schematic
–
DSP Techniques; brief intro into transform theory
–
Results: Analog, Digital
–
Further work
–
Lessons Learned
How Do We Detect a Pulse?
•
Two Methods for Measuring the Signal
–
Analog Solution
•
Transmitted signal is amplified and compared to a reference (threshold) voltage.
•
Triggers board interrupts and declares a found signal
–
Digital Processing Solution
•
Transmitted signal is amplified and sampled (via on board ADC)
•
Sampled signal is processed and correlated with a similar signal in memory
Analog Processing: Discrete components = easy ($)
Digital Processing: Algorithms = difficult ($$$)
Why Not Always Use Analog?!
•
Analog Signal Processing

Problems
–
Error In Measurement
•
Noise
•
“Delay” in measurement due to threshold voltage level (small in this example)
rx_signal
threshold
error
Why Not Always Use Analog?! (2)
•
Delay is small
–
who cares?
–
Time of Flight Measurement
•
Accurate prediction of distance from 1 node to the next depends upon
reliable estimate of pulse travel time
•
To minimize error threshold must be set low enough to accurately
predict initial signal, but not low enough to trigger from noise
Analog Detection adds delay to
TOF
measurement!
Small delays = inaccurate results
Analog Processing Techniques
•
How is this done?
–
Initialize board at transmitter to trigger transducer
–
At receiver end, signal processing is done with discrete components
•
Operation Amplifiers (Op

Amps) amplify signal
•
Resistor networks generate reference voltage
•
Capacitors filter out AC components of signal to allow for amplifiers “work”
1
2
3
U1
R1
R2
RZ
V_SIGNAL
1
2
1
R
R
v
v
gain
i
o
Circuit Schematic
R7
100k
R8
1.1k
C1
10u
C4
47p
C6
47p

+
U1A
LM358
2
3
1
8
4
RX_SIG_IN
Vcc
Vcc
+

U1B
LM358
5
6
7
ADC_OUT
RL
5.1k
R10
27k
R5
4.7k
R6
150
C2
10u
C7
485p
R9
100k
Vcc
C3
2.2n
Vss
R1
33k
R4
100k
C5
6.8n
Vss
R2
33k
+

U2A
TLV2352I
3
2
1
8
4
R3
1.2k
RX_OUT
Greater Accuracy
–
DSP Techniques
•
What is our alternative?
–
Use the on board processor!
•
Digital Signal Processing
–
Detect a Signal Quickly
–
Sample the waveform
–
Convert sample signal to the frequency domain
–
Perform the correlation of the received signal with one in memory
–
The resulting waveform gives an estimate of how well the received signal
represents the signal in memory
Greater Accuracy
–
DSP Techniques (2)
•
The Frequency Domain
–
Assume some signal processing
background
–
any signals and
systems book for information
–
A Fourier transform allows us to look
at the frequency components of any
signal
•
Implementation: DFT, FFT:
DFT simpler
–
easier to code
for initial tests
1
,....
1
,
0
,
1
]
[
2
sin
]
[
2
cos
]
[
)
0
(
]
[
1
0
/
2
1
1
1
1
1
0
/
2
N
n
e
X
N
n
x
N
kn
n
x
I
N
kn
n
x
x
R
e
n
x
X
N
k
N
kn
i
k
N
n
k
N
n
k
N
n
N
kn
i
k
Greater Accuracy
–
DSP Techniques (3)
•
The DFT makes our lives simpler
–
Convolution in time domain:
–
Convolution in frequency domain:
–
Correlation in frequency domain:
i
i
n
v
i
x
n
v
n
x
]
[
]
[
]
[
]
[
)
(
)
(
]
[
]
[
V
X
n
v
n
x
)
(
)
(
]
[
]
[
V
X
n
v
n
x
Correlation: What Actually Happens?
•
Different, but similar data sets
–
Correlation: comparing the superposition of the signals, with the reference
(memory) sliding to the left or right
–
Example: If the reference is a close copy of the received signal and
lags
for
some
t
, the correlation will be a positive value; if it
leads
the correlation will
produce large negative values
–
Correlation, like convolution is cyclic: wrap around problem
•
Pad sampled function
Correlation: What Actually Happens? (2)
Zero pad the end of sampled signal for accurate results
From: Numerical Recipes in C: The Art of Scientific Programming
Results: Analog
•
Analog Solution
–
Circuit used closed loop gains for ~90 and ~600
–
Approximately 1:6 gain ratio
–
Test case: supply voltage of 3.3V, and driving the transmitter with 3.3Vpp 40KHz square
wave
–
Good response: 8m (worst case) 100mV Vpp output
–
still usable
Results: Algorithm
•
DSP Solution
–
Coded DFT, IDFT (simplicity) in C
–
Test Case: echo waveform generated in MATLAB was processed and compared to the
same algorithm using MATLABS FFT, IFFT functions
–
Little error between test cases, due to rounding in C program, MATLAB FFT computation
–
Algorithm is successful!
Results: Algorithm (2)
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
x 10
3
0.025
0.02
0.015
0.01
0.005
0
0.005
0.01
0.015
0.02
0.025
Memory Signal
Time
Amplitude
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
x 10
3
0.025
0.02
0.015
0.01
0.005
0
0.005
0.01
0.015
0.02
0.025
Time
Amplitude
Transmitted Signal with Noise
Experimental Signals: Memory, Transmitted
Results: Algorithm (3)
0
50
100
150
200
250
300
350
400
0.04
0.03
0.02
0.01
0
0.01
0.02
0.03
0.04
0.05
Algorithm Verification: Matlab vs Program and Error
Data Points
DFT Results // Error
MATLAB
Program
Error
Future Work (Dimitrios…)
•
Analog further work
–
Currently, gain ratio between two stages may be high
•
Solution: add two more stages, reduce step up ratio
•
Added power consumption
–
Next step: create board
•
Algorithm further work
–
Correlation routine needs to be compared with a threshold to declare if
waveforms are similar
•
Requires ADC to sample real data
•
Possible need to zero pad received data?
•
What's left?
–
ADC initialization
–
Algorithm testing on actual platform
Lessons Learned
•
Good overall project
–
Well suited for my background: circuit design, some programming
–
Utilized wide range of knowledge, analog design, signal processing
methods, C programming, MATLAB
–
Good understanding of Ultrasound detection, processing
•
Obstacles
–
Algorithm development
–
Simulink yields wrong results (!!!)
–
Transition to using board (ran out of time)
–
Thanks: Professor Savvides, Professor Kindlmann
Comments 0
Log in to post a comment