Page 1 of 1

CAN FFT BE ON THE FPGA

Posted: Thu Jan 05, 2017 10:25 pm
by ykhaled
Hi All; not sure if my question is logical. Can anybody tell me if FFT functionality can be taken to the FPGA or if someone has already done so. Then, instead of streaming IQ - we would stream spectral components.

Someone might ask why? SDRs actually extend beyond transmission and reception - they can be used as spectrum sensors to analyze spectrum utilization. Currently IQ occupy heaps of space on disk. GRC FFT can do the conversion but it requires high performing PCs.

I intend to host a spectrum-history website which people can query spectrum usage.

Any advice in that regard is appreciated.

Re: CAN FFT BE ON THE FPGA

Posted: Tue Jan 10, 2017 9:11 pm
by jadona
Hi Khaled,
I am no expert, but this - atleast to me - seems difficult for the VDHL coding it will involve.
- first you will have to link the LMS buffers to the FFT VHDL code (there are open source codes available for this) [ assuming that you don't want to do FFT on NIOS, this should be simpler but slower btw]
- then you have to link the output of the FFT to the GPIF port of the FX3 controller
Needless to say, this will involve painful time synchronization and control message design.

Re: CAN FFT BE ON THE FPGA

Posted: Sat Jan 28, 2017 6:14 pm
by ykhaled
Thanks Jadona - kindly appreciate your response.

To move forward, I decided to keep the DFFT to an external processor in an attempt to come up with a spectrum DVR :)

- BladeRF streams the I/Q- thanks to the BladeRF-CLI API with Synchronous metadata support
- User specifies span, centre-freq, RBW, VBW and window
- FFTW3 takes the complex time-domain samples and processes the DFFT
- Make use of FLAC to compress and store the spectrum

So far; the BladeRF API and FFTW3 are working good together but I need a way to plot the outcome for troubleshooting an comparison before a move-on to another block.


Questions:
1- Am I repeating something already out there?
I intend to have everything in "C" for performance and portability.
2- I noticed I have to multiply the time-domain signal with a transfer function (window) as in spectrum analyzers (flat, Hanning etc ..) is that really necessary in the case of BladeRF? BladeRF has a pass-band filter which practically works as a window. As for aliasing - will take care of it by external filter if necessary.

Code: Select all

config.bandwidth  = 2000000;
3- Any suggestions how I can quickly plot the FFTW3 output for verification and debugging
4- Is it better to store the PSD bins which is 1/2 N or the FLAC compressed FFTW3 complex output. I intend to average some vectors to reduce storage space

Re: CAN FFT BE ON THE FPGA

Posted: Mon Jan 30, 2017 5:26 am
by ykhaled
I figured out I can process the window digitally. The RXLPF doesn't substitute it.

Re: CAN FFT BE ON THE FPGA

Posted: Tue Sep 24, 2019 1:21 am
by Octavian
Hi, have you finished this project? I'm also interested in a very wide band spectrum analyser for the Sun radio emissions.
My goal is to cover about 500Mhz in the 10-1500Mhz range with as much as possible time resolution.
Is your software approach available in opensource? Can you give more details about it?

Thank you for any help.