LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

FFT on FPGA or on RTcontroller

Hello everyone,

 

for my diploma thesis I have to collect data from a oscillationsignal and get the frequency components. For this I have use the fast Fourrier transformation. After this I want to creat a sinus signal. I know that there are fft-functions for FPGA- and for RT/normal Labview-programming (also for the signalcreation).

Now my questions is whichs projection is faster, because i have to execute this functions as fast as possible.

 

1st projection:

Collect Data with the FPGA and write them in a DMA-FIFO in one loop-> the RT-controller executes the FFT-function -> RT-Controller creates the signal out of the fft-datas -> RT-controller writes signaldatas in a DMA-FIFO -> FPGA writes data from the FIFO in the OUTPUT in a 2nd loop.

 

2nd projection:

collect Data with the FPGA and write them in a FPGA-FIFO in one loop -> execute the FFT-function and write the fft-data in a DMA-FIFO in another loop -> the RT-Controller creates the signal with this data -> RT-controller writes signaldata in a DMA-FIFO -> FPGA writes data from the FIFO in the OUTPUT in a 3rd loop

 

3rd projection:

collection, fft-function, signalgeneration and output are done by the FPGA (allways in a single loop), the RT-Controller is just used to time and run the fpga-vi and display the datas.

 

I hope i have explained my ideas good enought.

 

Yours Schu3

0 Kudos
Message 1 of 8
(3,502 Views)

Wouldn't a signal processor be the potentially fastest option?

 

Cheers

Edgar

0 Kudos
Message 2 of 8
(3,491 Views)

Sure this could be the fastest possibility. But for this project my professor and its teammembers bought the cRIO 9074 system with analoge input- and output-modules.

0 Kudos
Message 3 of 8
(3,487 Views)

what signal frequencies are you looking for?

how many tones are you going to reproduce (output)?  all or just a couple.

what is the source of the input signal?

Stu
0 Kudos
Message 4 of 8
(3,483 Views)

Hi Stu,

 

we are just looking for frequencies between 1Hz and 1kHz. Currently I connected a frequencygenerator (generating a sinussignal with 100Hz and 50mVPP) to the input, but later it will be replaced by a vibration pick-up (?).

I don't understand what you meant with the "tones". Maybe this doesn't care anymore because yesterday we had some discussions and we decided that we don't need the FFT-function to realize the (structurebound) active noise cancelation - if this is wrong please correct me.

 

0 Kudos
Message 5 of 8
(3,467 Views)

If you want to acquire a 1 kHz signal with a resolution of 1 Hz you must sample at a frequency of at least 2 kHz for at least 1 second. So I guess your processing speed will be limited by this very fundamental requirement resulting from Nyquist's theorem. Probably any FPGA or microcontroller will be able to process your data between the sampling intervals.

 

0 Kudos
Message 6 of 8
(3,451 Views)

if you don't use FFT, how are you going to extract the frequency info for noise cancelation?

my reference to tones was related to the equivalent of IFFT to construct the cancelation waveform.

 

Stu
0 Kudos
Message 7 of 8
(3,438 Views)

My/our idea was that i collect the Input-Data via the Analog Input 0 of my Inputmodul. This works allready that i get the sinuswave from the AI0 to FPGA and than to the real-time-controller. On the real-time-controller I also can display this input-sinus.

Now I just want to create a delay, so that the Input-Data are written p.e. 30us later to the Output. In my idea I shift the phase of the Output-Signal to generate the "anti-signal".

 

Maybe I didn't explained my plans not good enough. There is a steelplate which is stimulated by an unbalance motor. I want to eliminate the vibrations by using a shaker, which couple a inversely phased signal (to the input-signal) into the steel plate. So do I really have to differentiate between Noise and Tone - I don't think so?

0 Kudos
Message 8 of 8
(3,412 Views)