I've developed a radar that I'm using to determine the distance to remote objects. It uses a custom PCB with an onboard FPGA that performs the DSP algorithms. The data from it is then plotted on a host PC. This appears as a 2D histogram where the y-axis denotes the FFT frequency bins (due to the nature of the radar this is proportional to distance) and the x-axis denotes time. The plot (shown below) gives a very strong signal at a distance halfway between the antenna and max range, which I'm unable to explain.

enter image description here

The actual algorithms performed are: an FIR polyphase decimation filter (downsamples from 40MHz to 2MHz) which produces an output 1024 samples in length. Then I run it through a Kaiser window function with a beta of 6, followed by a 1024-point FFT, the result of which is transmitted to the host PC. For each value of t in the plot (the x-axis) the host PC averages over 30 1024-length sequences (averaged element-wise). Since all inputs to the FFT are real, the output is Hermitian symmetric and so I only plot the first 512 values of each output sequence. The strong signal you see above occurs at bins 257 and 258 (indexed from 0). I've tested the radar in an open space where it shouldn't generate any strong signals. I've simulated all of the FPGA logic, so while I can't be sure it's right (I've only formally verified parts of it), I'd be surprised if it wasn't.

What could be the cause of this? Is there some obvious aspect I'm missing? If any of this is unclear or some part of the information I've omitted is important for answering this question (e.g. the equation relating frequency to distance), please let me know and I'll include it.

Edit: more details on acquired signal

This is an FMCW radar. A frequency synthesizer generates sawtooth ramps from 5.3GHz to 5.9GHz over a duration of 1ms. This signal is simultaneously transmitted and mixed back in with the reflected signal. We then measure the difference frequency to back out the distance.

The FPGA modules are timed such that data is only acquired during the synthesizer's ramp period. First, I enable the ramp and power amplifier and (once enabled) begin acquiring data. The data is processed by the FIR filter and then passed through the kaiser window. Once the last sample passes through the FIR filter the ramp and power amplifier are disabled. The processed data (which were stored in a FIFO) are now run through the FFT and then the resulting output is dispatched in packets to the host PC via USB. I use a header sequence, tail sequence, and duplicated packets to try to avoid data corruption/loss. Once the FFT is finished, the process starts again (ramp and power amp enable, etc.).

The FIR filter should take just longer than 0.5ms to acquire all samples, so it should fall within the frequency ramp period.

  • $\begingroup$ Interesting, so if I follow, this is suggesting the presence of a strong 500 KHz tone- I don't see from your processing what would create this but suggests an aliasing imaging artifact in the process. Or occurs naturally in the radar processing (are you doing FMCW and can you provide more specifics on that?). Without other obvious answers I would suggest capturing your signal at various stages in the process to narrow down where this is being introduced. Are you able to easily do that? (Capture the raw 40 MHz signal and do your own FFT on that waveform, then the 2 MHz output. $\endgroup$ Commented Nov 16, 2019 at 13:39
  • $\begingroup$ What is the repetition rate of your FM chirps? Is this an expected high frequency component that you are supposed to filter out? $\endgroup$ Commented Nov 16, 2019 at 13:40
  • $\begingroup$ @DanBoschen I've added some information about the signal generation / processing. Let me know if there's anything else that would be useful to include. And thanks for the suggestion, that seems like a logical way to go about this. I'll update the post with any information I find doing that. $\endgroup$
    – MattHusz
    Commented Nov 16, 2019 at 17:04
  • 1
    $\begingroup$ @Envidia is that relevant for FMCW (genuine question, I'm new to radar)? I measure the received signals at the same time I'm sending the transmit signal. I.e. it's not a send pulse, turn off transmitter, measure received signal setup. The PRF ends up being around 1-2KHz but it's based on the amount of the time the fft and other algos take to run, not some deliberate decision. This is not synchronized to the switching frequency of my power supply. The switching frequency of the buck converter upstream of the mixer is 500KHz, which is the frequency of the tone. You think that could be the issue? $\endgroup$
    – MattHusz
    Commented Nov 19, 2019 at 1:45
  • 1
    $\begingroup$ @MattHusz You're right, FMCW systems don't have a "PRF-proper", but they do have an equivalent as you mentioned. The power supply at 500 KHz might explain why you're seeing that tone in your histogram. If you can, try and get a different power supply that switches at a different frequency and check results. Also as a tidbit, this is one of the weaknesses of FMCW systems: they are vulnerable to electronic attack. $\endgroup$
    – Envidia
    Commented Nov 19, 2019 at 2:02

1 Answer 1


If your system is powered by a switching power supply that is not synchronized to the PRF (or multiples of), then you may get reliable spurs over time as seen in your histogram.

In your case, it's been found that was indeed the problem! The 500 KHz frequency fell nicely in the middle of your 1 MHz histogram. Hopefully this will help hunt down similar issues in the future.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.