DSP Pulse Detection System
Document Sample


DSP Pulse Detection System
Final Report
by
Patrick Auchter
Mark Paul
ECE 345 Senior Design Project
Project 22
TA: Jing Tang
12/9/03
ii
Table of Contents
I. INTRODUCTION .................................................................1
I.1 PURPOSE ...................................................................................... 1
I.2 SYSTEM OVERVIEW ..................................................................... 1
II. DESIGN .................................................................................. 3
II.1 TWO-FOR-ONE FAST FOURIER TRANSFORM................................ 3
II.2 PULSE DETECTION ....................................................................... 6
II.3 DETECTION OUTPUT .................................................................. 10
III. DESIGN VERIFICATION ................................................ 11
III.1 TESTING .................................................................................... 11
III.2 PERFORMANCE .......................................................................... 14
IV. COSTS .................................................................................. 17
IV.1 PARTS ........................................................................................ 17
IV.2 LABOR ....................................................................................... 17
IV.3 TOTAL COST .............................................................................. 17
V. CONCLUSION ....................................................................18
V.1 ACCOMPLISHMENTS .................................................................. 18
V.2 UNCERTAINTIES......................................................................... 18
V.3 FUTURE WORK .......................................................................... 18
REFERENCES ............................................................................. 19
iii
List of Figures
Figure 1: General System Overview ............................................................................................... 2
Figure 2: Input Data for Two-for-One FFT .................................................................................... 5
Figure 3: Typical Pulse Frequency Characteristics ........................................................................ 6
Figure 4: Computation of Weighted Average ................................................................................. 7
Figure 5: Detection of a Strong Pulse ............................................................................................. 7
Figure 6: Rejection of a Noise ........................................................................................................ 8
Figure 7: Weak Pulse Detection ..................................................................................................... 9
Figure 8: False Detection .............................................................................................................. 10
Figure 9: Sample Data .................................................................................................................. 12
Figure 10: Signals with Decreasing SNR in the Time Domain .................................................... 15
Figure 11: Sample Pulse from Decreasing SNR Signals .............................................................. 15
Figure 12: System Performance .................................................................................................... 16
Table 1: System Performance in Various SNR Signals ................................................................ 16
iv
Abstract
A Digital Signal Processing (DSP) system was developed to analyze signals in the
frequency domain and identify pulses generated by transmitters attached to birds in
the area. The pulses are 15 millisecond sinusoidal signals and are typically
contained in signals with a very low signal-to-noise ratio (SNR). The signals
contain noise spikes that can be easily mistaken for a pulse. Efficiency was a
critical factor in the design of this system, since it needs to process and analyze the
data in real-time.
The detection system designed is capable of reliably detecting pulses in signals
with a SNR of -4 dB, while rejecting noise spikes most of the time. To improve
efficiency, a two-for-one 512-point Fast Fourier Transform (FFT) was performed.
Characteristics such as the amplitude and the shape of the FFT are analyzed to
distinguish noise from a pulse. Data, including the frequency and strength of a
pulse, is output when there is a detection.
1
I. Introduction
I.1. Purpose
The goal of this project was to create a Digital Signal Processing (DSP) system capable
of reliably detecting pulses contained in signals with a very low signal-to-noise ratio
(SNR). The system also needed to be able to avoid detection of noise spikes, which can
be easily mistaken for pulses. The pulses are 15 millisecond long sinusoidal signals
which are generated by transmitters attached to birds. The signals are originally
generated and transmitted at 3.2 MHz and then brought down to the 1600 to 2000 Hz
range by the receiver.
The specifications going into the project were the following:
Get detections in as low an SNR as possible (no specific level)
Less than 25% of detections should be false detections
Output the relevant data corresponding to a detection
The approach taken in the design was to look for features in the frequency domain to
distinguish between pulses, noise bursts, and white noise. Then optimization of the
algorithm would lead to a trade off between detecting weak pulses and minimizing false
detections.
Ideally, the system is able to collect the data and log pulses so that someone does not
have to sit at the system and search for pulses and then record the data. The system is
also able to obtain more data from a pulse than someone listening to the signal. Pulses
that can barely be heard are also detected by the system.
I.2. System Overview
The DSP is a TI-TMS320C54x evaluation board with a surround sound card. The DSP
has an 80 MHz processor and an onboard analog to digital (A/D) converter, which
samples input data at 44.1 kHz. The DSP is able to read in 64 samples every 1.45 ms
while it is doing other processing. All of the system’s data processing must occur in
1.45 ms in order for the system to function in real time. The surround sound card has
two input channels, which come through the A/D converter and six output channels,
which are sent out through the digital to analog (D/A) converter. The board has a
parallel port interface for downloading the compiled code, and a serial port interface for
receiving input from a computer or sending output to a computer.
The system is designed to sit between the receiver and a computer. Data is fed into the
system from a receiver connected to an antenna, and data is fed out to a computer
through the serial port for logging. Figure 1 below shows how the system is hooked up.
2
Analog Serial
Data In Data Out
Reciever A/D Converter DSP Computer
DSP Evaluation
Analog
Board D/A Converter
Antenna Data Out
Figure 1: General System Overview
Our detection system uses one of the input channels to receive the data from the
receiver. The input data is echoed to the first output channel, which allows the user to
listen to the signal that the DSP is analyzing. The DSP will also output the data from
the two FFTs it performs, allowing the user to view the frequency domain in real time
on an oscilloscope, if desired. The serial port is used to output data concerning pulse
detections which can be logged on a computer.
3
II. Design
II.1. Two-For-One Fast Fourier Transform
The first stage in processing the input data is to perform a Fourier Transform. The
Fourier Transform shows the frequency content of an input signal. It is much easier to
see a pulse in the frequency domain than in the time domain, especially in a signal with
a low SNR. We started with code from ECE 320 Lab 4 [1], in which we used a Fast
Fourier Transform (FFT) to view the frequency domain of an input sample.
In order to save cost when performing FFTs on the data, the two-for-one FFT was used.
The two-for-one FFT utilizes the properties of a complex FFT to perform two real
FFTs. The following information on the two-for-one FFT was obtained from reference
[2].
To begin with, the two real sequences x(t) and y(t) are used to create a complex
sequence z(t) such that
z (t ) x(t ) jy(t ) (1)
The buffer for z is twice the length of the FFT and alternates real data and imaginary
data. The Fourier Transform of z(t) is
N 1
Z ( f ) [ x(t ) jy (t )] W N fn
(2)
n 0
It is not obvious from equation (2) how to separate the Fourier Transforms of our two
sequences, X(f) and Y(f). The data output by the FFT also alternates real data and
imaginary data. It is not as simple as X(f) being the real part of Z(f) and Y(f) being the
imaginary part of Z(f). To find how to separate the two sequences, we can write
N 1
Z ( N f ) Z ( f ) x(t) jy(t) W
n 0
fn
N (3)
and
N 1
Z * ( N f ) Z * ( f ) x(t) jy(t)W
n 0
N
fn
(4)
Adding equations (2) and (4), we find that
4
N 1
Z ( f ) Z * (N f ) 2 x(t) W
n0
fn
N 2X ( f ) (5)
Subtracting equation (4) from equation (2), we find that
N 1
Z ( f ) Z * (N f ) 2 jy(t) W
n 0
fn
N 2 jY ( f ) (6)
From equations (5) and (6) we can extract the formulas for separating the data for X(f)
and Y(f) from Z(f)
Z ( f ) Z * (N f )
X( f ) (7)
2
and
Z ( f ) Z * (N f )
Y( f ) (8)
2j
In order to amplify the magnitude of the FFT data, we do not divide by 2 as seen in
equations 7 and 8. Most of the data is very small, so doubling it has little to no effect.
Also, this saves some computation time.
Since the data alternates real and imaginary, equations are needed to compose the real
and imaginary parts of X(f) and Y(f). From equations 7 and 8, the equations for
separating the real and imaginary parts of both sequences can be derived as seen in
equations 9 and 10.
X r ( f ) Z r ( f ) Z r ( N f ) and X i ( f ) Z i ( f ) Z i ( N f ) (9)
Yr ( f ) Z i ( f ) Z i ( N f ) and Yi ( f ) Z r ( f ) Z r ( N f ) (10)
To determine the cost savings of the two-for-one FFT, it can be compared to
performing two separate FFTs. A single N-point complex FFT costs Nlog2(N)
multiply-accumulates. For the two-for-one FFT, separating the two output sequences,
by using equations 9 and 10, requires an additional 2N additions. On the TI-54x DSP,
additions and multiply-accumulates both cost one clock cycle. Therefore, there is a
savings of Nlog2(N) – 2N computations. For a 512-point FFT, the two-for-one FFT
results in a 61.1 percent savings in cost. This savings in cost is important, as it allows
the computation of two FFTs every 64 samples or 1.45 ms.
5
In order to take advantage of the two-for-one FFT, we have two input data buffers
which are 32 samples apart. This way, the 64 new samples that come in are processed
every time. Figure 2 shows the setup of the buffers that hold the input data.
Figure 2: Input Data for Two-for-One FFT
The first two-for-one FFT takes in two data windows which are 32 samples apart.
When we have the next 64 samples to process, each data buffer is shifted down by 64
samples so that the new samples are processed in the second two-for-one FFT. The x
buffer is placed into the real part of z and the y buffer is placed into the imaginary part
of z.
Once the real and imaginary parts of x and y are separated, the magnitude of the data is
computed for use in the pulse detection algorithm. Equations 11 and 12 show how the
magnitude of both sequences is calculated.
| X ( f ) |2 X r2 ( f ) X i2 ( f ) (11)
| Y ( f ) |2 Yr2 ( f ) Yi 2 ( f ) (12)
The calculation of the magnitude in the frequency domain is easy, requiring only 2N
multiplications and N additions. Implementation of the two-for-one FFT and
computation of the magnitude of both sequences takes about seventy percent of the
computation time. The pulse detection algorithm needs to finish in the remaining thirty
percent of the computation time.
6
II.2. Pulse Detection
After the FFT is completed, the frequency domain of the signal is analyzed. The
window used for our detection algorithm is from 1205 Hz to 2325 Hz, which
corresponds to the 14th through 27th points in the FFT data. This window is easily
adjusted and can be expanded to look at a wider frequency range (up to 5500Hz) with
little to no performance degradation. A pulse in the frequency domain has the
characteristics illustrated in the Figure 3 below.
Figure 3: Typical Pulse Frequency Characteristics
The amplitude of the spike depends on the strength of the signal and the level of noise.
The detection algorithm first looks for a strong pulse, which is easily identifiable, and
then checks for the possibility of a weak pulse. If it is determined that there may be a
weak pulse, an algorithm is run to identify whether it is noise or a pulse. If two
successive FFTs meet the criteria for weak pulse identification, then a pulse detection is
output to a computer. The magnitude of the pulse in the frequency domain and the
frequency at which the pulse is located are output through the serial port to a computer.
Weighted FFT Maximum Average
The thresholds that are used in the algorithm are based off a weighted average of the
past maximums of the FFT data. The weighted average is calculated using the
maximums of the past 70 FFTs, as long as the maximum did not correspond to a pulse
or a noise burst. These maximums are stored in a buffer and then multiplied by a weight
buffer. The result is divided by the sum of the weights to obtain the weighted average.
Figure 4 shows the setup for calculating the weighted average. The 14 most recent
maximums are multiplied by 1, the next 14 most recent maximums are multiplied by
0.8, and so on. Once all the multiplications are done, the total is divided by the sum of
the weights, which is 42 in this case.
7
1.0 0.8 0.6 0.4 0.2
(57-70)
Most Recent 14 (15-28) (29-42) (33-56)
14
Maximums 14 Maximums 14 Maximums 14 Maximums
Maximums
Figure 4: Computation of Weighted Average
In C code, the cost of computing the weighted average would have been much greater,
so calculation of the weighted average is performed in assembly code in order to save
time. Circular buffers and the multiply-accumulate operation are used, so that the cost
of updating the weighted average is on the order of the length of the buffer. The TI-54x
Instruction Set [3] was referenced to write the assembly code.
Detection of Strong Pulses
The first threshold that is checked in the frequency domain window is the threshold of
what is considered a strong pulse. This is set to 30 times the weighted average
described above, and is illustrated below in Figure 5.
Figure 5: Detection of a Strong Pulse
The dashed line represents 30 times the weighted average. If the maximum point of the
FFT data is above this threshold, no other processing of the data is done and a pulse
detection is output.
Detection of Weak Pulses while Ignoring Noise
If the maximum of the FFT data in the current window is less than 30 times the
weighted average, a lower threshold is checked. If the lower threshold is met, an
algorithm is run to determine if it is noise or a weak pulse. This lower threshold is set
8
to 3.4 times the weighted average. If the lower threshold is not met, the maximum is
stored into the buffer that is used for calculating the weighted average. The weighted
average is then re-calculated for the next FFT.
The algorithm first checks to see if there are multiple points in the FFT window that are
above the threshold. All of these points are stored and checked to see if the minimum
frequency point and the maximum frequency point are more than 258 Hz or three
points apart. If this is the case, then the signal is determined to be noise and is rejected.
Weak pulses will not have a width over 258 Hz, and, even though strong pulses have a
width greater than 258 Hz, they have already been detected. Figure 6 shows a typical
noise spike in the frequency domain.
Figure 6: Rejection of a Noise
The dashed red line corresponds to 3.4 times the weighted average. Noise bursts often
have multiple peaks that are spread out over a few hundred Hz, making them wider
than a characteristic pulse. If the conditions above are met, the signal is identified as a
possible pulse and logged. If the next FFT window meets the same criteria, and the
pulses are at the same frequency, a pulse detection is output. Two successive possible
identifications are required when looking for a weak pulse so that the probability of a
false detection is lowered.
9
The final check comparing the frequency of the maximum point in two successive FFTs
is a noise check. Pulses will generally stay at the same frequency over the length of the
pulse, while noise tends to jump around randomly. Figure 7 below illustrates a
detection of a weak pulse.
Figure 7: Weak Pulse Detection
The dotted line corresponds to 3.4 times the weighted average. The two successive
FFTs are 32 data points apart, both meet the criteria, and both have maximums at the
same frequency, so it is identified as a pulse.
Noise
Checking for the spread of points above the threshold, whether a peak moves on
successive FFTs, and requiring that the threshold conditions are met on two successive
FFTs, usually ignores noise bursts, as seen above. However, the beginning or end of a
noise burst can occasionally cause a false identification. When viewed in the frequency
domain, a noise usually pops up and then gradually fades away after a few
milliseconds. As the noise is dying out, some of the peaks fall below the threshold,
while one stays above it for a millisecond or two. This creates a couple FFTs that meet
the criteria for pulse identification. The false detections are usually easy to spot after
the fact. They typically output only one detection signal, where even very weak pulse
detections will output three or more identifications. In addition, the detection will
usually be at an unexpected frequency, as compared to recent detections. Figure 8
below shows graphs illustrating a false detection.
10
Figure 8: False Detection
The dotted line corresponds to 3.4 times the weighted average FFT maximum. The two
successive FFTs are 32 data points apart. The noise just barely jumps above the
threshold, causing a false detection. Usually this does not happen more than once for a
noise spike.
II.3. Detection Output
When a pulse is detected, binary data is sent out through the serial port. The serial port
interface is explained in the Core File Documentation [4]. The function SerialTXm can
be used to send an array of data out of the serial port.
For each identification, the magnitude of the pulse in the frequency domain is output,
along with the frequency at which it occurred. There is an output each time the
detection criteria are met. Strong pulses can be detected in up to 11 consecutive FFTs,
and weak pulses can be detected for three ore more consecutive FFTs. This means the
DSP will output multiple sets of data for each detection. It is possible to output a
counter that corresponds to the number of FFTs performed. Each increment in the
counter corresponds to 1.45 ms, so the time between pulses can be observed. Although
the counter will roll-over every 32768 FFTs and reset if there is no data input, it can be
used a reference to group pulse identifications and evaluate the time difference between
pulses. It can also be helpful in identifying false detections.
11
III. Design Verification
III.1. Testing
After the algorithms were implemented in code efficiently enough to operate in real
time, and the bugs were fixed, testing of the system began. The final code can be seen
in Appendix 1. All of the parameters were tested using real data. Following is a
description of each parameter, its affect on the detection system, and the optimal value
that was determined for it.
Frequency Window
The frequency window that is analyzed is determined by the possible frequency range
that the receiver brings the pulse signal down to. The pulses we analyzed were all in
the 1600 to 2000 Hz range. We wanted to design the system with as wide a window as
reasonably possible, then narrow it to a sufficient size for the known frequency range.
Much of the initial testing was done with a window of 1000 to 5512 Hz. The low
frequency range of 0 to 1000 Hz was left out due to the large amount of noise in that
frequency range. The final window used was from 1205 to 2325 Hz. This was
determined to be more than sufficient for the data we had, with a significant frequency
width on either side of the observed frequency range of pulses. The frequency window
can easily be moved or expanded, if necessary. The system may actually perform
better if the receiver were to output the signal at a higher frequency and the window
was changed correspondingly. All of the following parameters were varied according
to the frequency window determined here.
The optimal frequency window is 1205 to 2325 Hz.
Length of Buffer for Calculating the Weighted Average
The length of the buffer determined how fast the weighted average adapted to a
changing signal. If the average adapted too fast, the system could adapt to a pulse as it
began to rise in the frequency domain. On the other hand, if the average adapted too
slowly, the system would interpret a rise in the noise level as a pulse. In addition, if the
noise level in the system dropped, the average would need to reflect that fast enough to
detect a pulse at a lower threshold.
Many different buffer lengths were tested, from 40 up to 250. On each test, the number
of correct pulse identifications was evaluated, along with the number of FFTs that
detected the pulse, and the number of false identifications due to noise bursts. The data
tested was chosen such that it contained weak pulses and a number of different noise
spikes with different characteristics. Figure 9 below illustrates some of the samples
that were used in testing.
12
W :\345\wav files\weakpulses.wav W:\345\wav files\tape2a.wav
0.4 0.4
0.3 0.3
0.2
0.2
0.1
0.1
0
Amplitude
Amplitude
0
-0.1
-0.1
-0.2
-0.2
-0.3
-0.4 -0.3
-0.5 -0.4
0 5 10 15 20 25 30 0 10 20 30 40 50 60
time [s] time [s]
W:\345\wav files\tape6.wav W:\345\mcp_MATLAB\nonsaturate2.wav
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
Amplitude
Amplitude
0 0
-0.2 -0.2
-0.4 -0.4
-0.6 -0.6
-0.8 -0.8
-1 -1
0 10 20 30 40 50 60 0 1 2 3 4 5 6
time [s] time [s]
Figure 9: Sample Data
The graph in the top left of Figure 9 contains very weak pulses. All of the spikes seen
in this graph are noise, and the pulses are not distinguishable in the time domain. On
the top right of Figure 9 is a sample that contains pulses of varying amplitude. On the
bottom left of Figure 9 is a sample that contains weak pulses with some loud noises in
it. On the bottom right of Figure 9 is a sample that has pulses with varying strength and
a base noise level that changes rapidly at the beginning and the end of the sample.
After narrowing the optimal length down to between 50 and 80, we tested it for
increments of length 5, beginning at 50.
The optimal length on the data tested was 70.
Threshold Values
Determining the optimal threshold values also required significant testing. After
viewing a large amount of data, it was determined that a strong pulse had a maximum
in the frequency domain at least 30 times the weighted average. We also found that a
noise bursts were less than 30 times the average. Therefore, if a maximum of greater
than 30 times the weighted average was recorded, a detection was output without any
other analysis.
To determine the threshold for identifying a weak pulse, a range of 3 to 6 times the
weighted average was obtained using Matlab. Once testing began on the DSP, it was
13
quickly determined that a value between 3 and 4 was optimal. Testing was done in the
same manner as described above for determining the optimum buffer length. Here,
though, only the multiplication factor was varied. The value was varied by increments
of 0.1, beginning at 3.0. This threshold was the factor that had the biggest trade-off
between weak pulse detection and noise rejection.
The optimal threshold for detecting weak pulses while ignoring most noise was 3.4
times the weighted average.
Maximum Frequency Width of Points Above Threshold
Since weak pulses generally had only one, two, or occasionally three FFT points above
the threshold, one of the noise rejection criteria was the spread of points above the
threshold value. Each point in the FFT data is separated by 86 Hz. A spread of
anywhere from two to six points was tested for this factor. The goal was to minimize
this number in order to improve noise rejection, while not losing any pulse detections.
We found that requiring the spread to be less than three was too stringent, causing
actual pulses to be rejected as noise. Therefore, we required that the points above the
threshold were no more than 3 points apart.
The optimal limit on the width of points above the threshold was 3.
Change in Frequency Value between Two Successive Maximums
Since weak pulse detection requires identification with two successive FFTs, the
difference in frequency of the pulse identifications should be small. The pulse will
occasionally move slightly in the frequency domain, since the transmitters output a
pulse that changes slightly in frequency. In addition, the pulse may appear at a slightly
higher or lower frequency as it begins or ends.
If two successive FFTs identify a pulse, but the frequency of the identifications varies
too much, the signal is determined to be noise. Data was tested to see how small the
difference could be made without losing accurate pulse detections.
Matlab analysis of the signals showed that the maximum of a pulse never moved more
than one frequency point on successive FFTs. It also showed that a pulse above the
detectable level rarely changed frequency.
Testing on different sets of data showed that requiring the maximums to be at the same
frequency, as compared to being allowed to differ by one, reduced the number of false
detections without eliminating accurate detections. It did occasionally reduce the
number of FFTs that detected a particular pulse, but it never eliminated a detection
altogether.
The optimal frequency difference allowed for successive identifications was zero.
14
III.2. Performance
The system performs well with signal-to-noise ratios down to -4 dB. Figure 10, on the
following page, shows signals of decreasing SNR in the time domain. The pulses are
clearly discernable in the top two signals, but are harder to identify visually in the
second two signals. Figure 11, on the following page, shows a pulse in decreasing SNR
signals as it appears in the time and frequency domains. Viewing the pulses in the
frequency domain makes it easier to identify the pulses. For both Figures 10 and 11,
the top left corner corresponds to a SNR of 9.11 dB, the top right corner corresponds to
a SNR of 3.09 dB, the lower left corner corresponds to a SNR of -2.92 dB, and the
lower right corner corresponds to a SNR of -6.44 dB.
15
Figure 10: Signals with Decreasing SNR in the Time Domain
Figure 11: Sample Pulse from Decreasing SNR Signals
16
Table 1 shows the performance of the system related to the SNR of the received signal.
SNR Pulse Percent Noise Pulse Detection
Pulses
(dB) Detections Detections Detections Length (ms)
9.11 22 22 100 2 15.83
4.43 22 22 100 1 8.67
3.09 22 22 100 2 5.7
0 22 22 100 1 4.88
-2.92 22 19 86.36 1 4.72
-4.03 22 16 72.73 0 4.17
-4.86 22 12 54.55 1 3.56
-6.44 22 6 27.27 0 3.51
-8.94 22 2 9.09 1 2.17
Table 1: System Performance in Various SNR Signals
As Table 1 illustrates, the system is exceptionally reliable down to an SNR of 0 dB.
The performance drops significantly around -4 to -5 dB. The number of false
detections in each case is less than 10%.
The graphs in Figure 12 plot the performance of the system against the SNR of the
signal. The first graph plots the percentage of detections vs. the SNR, and the second
plots the length of time that the pulse is detected vs. the SNR.
Figure 12: System Performance
17
IV. Costs
IV.1. Parts
Component Cost
DSP Evaluation Board (TI-TMS320C54x) $1,000
Speakers $30
BNC Cables $50
Serial Cable and Parallel Cable $50
Total Parts Cost $1,130
IV.2. Labor
Members: 2
Salary: $30/hr
Hours of work: 100 hours each
Labor = 2 * $30/hr * 2.5 * 100 hours = $15,000
IV.3. Total Cost
Total Cost = $15,000 + $1,130 = $16,130
18
V. Conclusion
V.1. Accomplishments
The performance of the system met our expectations. Through signal analysis,
algorithm development, and testing, we were able to develop a system that exceeded
our initial specifications. The detection system can reliably detect pulses in a signal
with -3 dB SNR, and performs fairly well on signals down to -5 dB. It is also able to
consistently reject noise pulses, producing very few false detections. There was never
more than a 10 percent false detection rate, which meets the specification that there
should not be more than 25 percent false detections.
V.2. Uncertainties
The uncertainties in this system lie in the unknown noises that may be encountered.
Our algorithm looks at features in the frequency domain to distinguish noise from
pulses. It is possible an unknown persistent noise may have features similar to a pulse,
causing continuous false detections.
V.3. Future Work
There are possible improvements that could be investigated in the future. One would
be to try the system with pulses received at a higher frequency. Our suspicion is that
there will be less noise spikes from the equipment if the receiver output the signal at a
range closer to 3 to 5 KHz. There may also be additional processing that could reduce
false detections. Possibilities would be to track the frequency range and timing of the
pulses detected in the past few seconds, and then incorporate those expectations into the
detection algorithm. If a pulse is not detected for 1½ seconds, return to the original
algorithm until that information can be tracked again. Of course, many other
improvements could be considered if the system could be implemented on one of the
faster DSPs available today, which operate at speeds over 600 MHz.
19
References
[1] Swaroop Appadwedula, “Lab 4: Spectrum Analyzer,” class notes for ECE 320, Department
Of Electrical and Computer Engineering, University of Illinois at Urbana-Champaign,
Spring, 2002.
[2] Engineering Productivity Tools Ltd., “FFT of Pure Real Sequences,” October 2003,
http://www.eptools.com/tn/T0001/PT10.HTM.
[3] Texas Instruments Technical Staff, TMS320C54x DSP Reference Set Volume 2: Mnemonic
Instruction Set, Texas Instruments Incorporated, 2001.
[4] Daniel Sachs, “Core File Documentation,” class notes for ECE 320, Department Of
Electrical and Computer Engineering, University of Illinois at Urbana-Champaign, Spring,
2001.
Related docs
Get documents about "