From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

NI FPGA 5782 w/ 7976R acquire and process data

Im trying to acquire analog data from the 5782. I was able to refer to the getting started as well as the mutiple and single Sample projects. I was able to build the programs, run them and add a trigger function to the Analog Input while loop. 

 

I used the Multi sample streaming problem to acquire analog input,  send this to a processing loop. In this process loop, im simply interpolating the captured data so that i can stream this data which i would like to send/control the next output waveform.

 

Im controlling the analog input data by sending out a special ramp function to the Analog output using the ring buffer from the example. 

 

My issues:

1. The FPGA math and interpolation functions are all in FXP while i acquire in I16, Converting the values to fxp and running the interpolation is giving me timing errors, how do i go about this? I added the timing errors i was getting

2. Do i have to use the streaming functions provided in labview to send data from each loop or can i simply use a fifo and rely on the parallel data transfer ?

 

Can someone refer to me some examples to understand?

 

0 Kudos
Message 1 of 3
(1,142 Views)

I would add pipelining, see https://zone.ni.com/reference/en-XX/help/371599P-01/lvfpgaconcepts/fpga_pipelining/

 

Key thing is to remain coherent so all paths need to pipelined equally.  Review the above link and post any follow up questions.

 

One pipeline set of shift registers should cut loop time (roughly) in half so you probably do not need more than one set given that you went over by 25 percent.


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
0 Kudos
Message 2 of 3
(1,080 Views)

Hello again,

 

It's been a while... So I've advanced a bit and i've come across a problem in doing an FFT on my acquired signal. I am able to acquire a decent signal but i've noticed some things. For my setup. I have a signal generator with a sine wave (200-500mVrms, 2Mhz for now) into one of the analog inputs. I noticed the ff:

 

*there's a delay on reading the input by around 3-5 second before the input is registered properly. So When i start to vary the frequency, it takes time to notice the change.  [see in: initial start_PNG]

 

*There are so many peaks! in order to fix this, i tried adding a hanning and hamming window function to see if it filters out these, peaks still so much. However, when i vary the frequency, i can see the corresponding peak. But with so much else. [see in: FFT with 2Mhz sine wave.png]

 

*It seems the peaks are shifting(gliding) along the x-axis and it doesnt seem fixed on the axis. [see in: gliding noise.png]

 

 

Extra information:

*My input is acquiring at 125Mhz, while the loop doing the FFT and sending the data to the host is running at 40Mhz. Could this be why  there's a delay? I was thinking of pipelining the inputs into a FIFO fxp array [4], then the 40Mhz loop could recieve 4 data points at a time? [ref: FPGA.VI]

 

*my fxp point elements are all set to <+- 16,16> which is the same as the I16 input, then when it enters the FFT Vi, it comes out as <+- 30,30> then i scale it again on the host VI..

 

Can someone explain to me what im doing wrong or if i forgot to put something?

 

 

0 Kudos
Message 3 of 3
(932 Views)