Skip to content

Energy detection in the frequency domain #5

Description

@ggubs

https://github.com/jewbetcha/openlaunch/blob/be4a36a58096c2dc94ea8f8fa9affe5269eb4e6b/launch_monitor.py#L205

This is effectively a rudimentary energy detector, where you are thresholding the magnitude of the FFT to determine if a signal (a reflection from the golf ball) is present, and then inspecting what Doppler bin that detection occurred in to determine the velocity of the detected target. See issue #4 with respect to setting correct thresholds.

In order to determine those thresholds heuristically, I recommend developing a debug plotting tool to help visualize the received DFT spectrum (https://en.wikipedia.org/wiki/Fast_Fourier_transform). A method, plot_spectrum() or equivalent should be developed. It should return a matplotlib figure that displays the spectrum with Doppler frequencies plotted on the X axis. The Doppler spectrum should be plotted on the Y axis in dBm scale. This plot should allow you to 1) in the null hypothesis case, where it is known that no signal is present, visually observe the baseline noise level of the received spectrum and 2) in the signal present hypothesis, visually observe the energy levels associated with a known present target.

The delta between the known noise floor spectrum and the known signal present spectrum represents the energy reflected by the golf ball back to the radar receiver over the collection period of the samples in the FFT.

It is useful to analyze this visually, as there are many clues as to what could be occurring.

The size of the FFT here is also important, as it determines the resolution of the Doppler bins, which explicitly maps to the resolution of the velocity estimates.

This is, fundamentally, a detection and estimation problem. First, you need to detect a signal. Then you need to estimate its frequency. The first step in debugging the system is to verify that the receiver is seeing energy from the reflections off of the target (#1). Absent a good detection, no estimation can occur.

Having now reviewed this project in great detail, I think it is a worthwhile and rewarding pursuit to continue development along this path in parallel with your proof of concept build using the off-the-self software defined radar module.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions