we've been working with the Spiral DFT Implementation on an FPGA and managed to get it working. Unfortunately we see these strange artifacts and have no idea where they come from. Our input is a perfect sine wave, generated by a python script and fed into the simulation as a text file.
We have 2 issues:
Additional peaks in the frequency spectrum that should not be there.
The main amplitude breaks down in the center of the peak.
--> we thought this is due to a value overflow but the phenomenon persists even if we decrease the amplitude of the input signal.
We should note that our DFT takes 16 bit values, which are the upper 16 bit of our 24 bit sample values.
Here are some examples:
Different Frequencies:
Frequency: 10kHz, Amplitude: (2**23-1)/14
20kHz, Amplitude: (2**23-1)/14
Frequency: 30kHz, Amplitude: (2**23-1)/14
Changing the Amplitude results in following:
Frequency: 6.5kHz, Amplitude: (2**23-1)/10
Frequency: 6.5kHz, Amplitude: (2**23-1)/13
Our Sample Rate is 65.1 kHz.
If you have seen this phenomenon before or have suggestions on how to approach this issue, we're happy about any ideas! :)