1 / 29

DSP Pulse Detection System

DSP Pulse Detection System. Patrick Auchter Mark Paul. Project Goals. Detection of pulses in a low signal to noise ratio environment Requires a fast algorithm Rejection of noise spikes Less than 25% of identifications are false identifications Output the strength and frequency of pulse.

base
Download Presentation

DSP Pulse Detection System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DSP Pulse Detection System Patrick Auchter Mark Paul

  2. Project Goals • Detection of pulses in a low signal to noise ratio environment • Requires a fast algorithm • Rejection of noise spikes • Less than 25% of identifications are false identifications • Output the strength and frequency of pulse

  3. System Overview • DSP samples at 44.1 kHz • 64 samples are collected every 1.45 ms • Input levels are -1 to 1 Volt • The processor is 80 MHz • Compiled code is loaded into the DSP through a parallel port using Code Composer Studio • The serial port is used to output binary data such as the pulse magnitude

  4. Fourier Transform

  5. Two-for-One FFT • A complex FFT is performed to take the FFT of two real sequences at once • The two output sequences are separated through the following equations

  6. Assembly Buffer Setup 0 1 2 3 4 5 1020 1021 1022 1023 ↕ • The formulas for separating X(f) and Y(f) are

  7. FFT Routine • First the input data is bit-reversed • Then a Radix-2 FFT is performed 000 → 000 001 → 100 010 → 010 011 → 110 100 → 001 101 → 101 110 → 011 111 → 111

  8. Applying FFTs to Input Data • The DSP collects 64 new input samples every time the Two-for-One FFT is performed • The two buffers of FFT data are separated by 32 samples x 1 y x 2 y

  9. Cost of the FFT • An N-point FFT costs N*log2(N) multiply-accumulates • After performing the two-for-one FFT, separating the two sequences requires 2*N additions • Using the two-for-one FFT saves us N*log2(N) multiply-accumulates, but adds 2*N additions • Calculating the magnitude of the frequency data requires 2*N multiplications and N additions

  10. Detection Algorithm • A weighted average of the last 70 maximums in the frequency domain is calculated • Each maximum is multiplied by its corresponding weight and added to the total • The weighted average is the total divided by the sum of the weights • For a length 70 buffer, the sum of the weights is 42 • Computing the weighted average costs L multiply-accumulates, where L is the buffer length

  11. Detection of Strong Pulses • The weighted average is used to determine if there is a pulse in the current window of FFT data • If the maximum is over 30 times the weighted average, it is definitely a pulse • Otherwise, we can check for a weak pulse

  12. Detection of a Strong Pulse

  13. Detection of a Strong Pulse

  14. Detection of Weak Pulses • All of the FFT data over 3.4 times the weighted average is stored so that the width of the pulse can be determined • We check to make sure that the frequency difference of the points is less than or equal to 3 points or 258 Hz • We also check to make sure that the maximum in the current FFT data and the maximum in the previous FFT data are at the same frequency

  15. Detection of a Weak Pulse

  16. Detection of a Weak Pulse

  17. Ignoring a Noise Spike

  18. Ignoring a Noise Spike

  19. False Detection

  20. False Detection

  21. Updating the Weighted Average • The following guidelines are used to determine when to update the weighted average • If the maximum is less than 3.4 times the weighted average, it is added to the maximum buffer and the weighted average is recalculated • Otherwise, the maximum is not added, since the maximum is either a noise spike or a pulse • Adding these maximums would undesirably increase the weighted average, making it more difficult to detect weak pulses

  22. Challenges • Zero-padding and the two-for-one FFT • Designing a fast, efficient algorithm to process the data in real time • Testing all the data we collected and looking for abnormalities and weak pulses to test the system’s performance

  23. Testing • Various signal-to-noise ratio signals were used to test and improve the system • Signals with odd noises were also tested to ensure that the noises did not cause false detections • We manipulated the following parameters to obtain the best results • FFT size • Length of the maximum buffer • Factors for determining strong and weak pulses • Length of the frequency window to analyze

  24. Various SNR Signals 9.11 dB 3.09 dB -2.92 dB -6.44 dB

  25. Effect of Decreasing Signal to Noise Ratio 9.11 dB 3.09 dB -2.92 dB -6.44 dB

  26. System Performance

  27. System Performance

  28. Successes • The system consistently detects most of the audible pulses • When the pulse power is half the noise power, we detect the pulse 85 percent of the time • Less than 10% of the detections are noise • We do not use all of the clock cycles every pass, so additional processing of the data could be done if needed

  29. Questions ?

More Related