LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

capture 10 seconds data by streaming

I am using a ni5660 = ni5600 + ni5620.  i have a signal centered at 433.92MHz which is FM modulated.  i want to capture this signal at BW = 400k for atleast 10 seconds.  is it possible to do streaming onto the harddisk because there is not enough memory on ni5660 to capture this all at once?  i am happy if I can stream IQ data onto disk without demodulating.  If i can write a spread sheet file having 2 coloums of I and Q its enough.
 
what is the VI I should use?  if i should use the shipping example "ni5660 demodulate FM", what are the settings?
 
I built this VI (attached "ni5660 Demodulate FM\ni5660 Demodulate FM - streaming - 3.vi") but the captured signal (also attached "appended_waveform.wfm") is discontinuous.  I mean, some portions of the signal are not captured.
 
Please help.
 
Thanks.
 
 
Message 1 of 5
(3,047 Views)
Hey Om,

Thanks for contacting National Instruments support.  Your data rates are fast, but it's possible that it could be done.  You are using the write to spreadsheet file, but that is a high level FIle I/O vi.  I would suggest moving to a scheme where you open the file first, outside of the loop, and pass the refnum through a tunnel. Then do your writing to the file inside the loop, and then close the file when the loop is finished.  This is the basic structure of our streaming systems.  If that still isn't fast enough you can employ a queue to pass the data from the data loop to a second parallel loop that takes care of writing the file. 

Let me know if you have further questions.

Regards,
Kenn North
Principal Product Manager - Search, Digital Analytics
http://ni.com/search
Message 2 of 5
(3,033 Views)
if I open a file outside the loop and do the writing inside, what format should I write the data in (text or binary)? can you tell me all the inputs to the vi.
 
Also can you elaborate more on employing a queue to pass data from data loop to a second loop for writing.  According to my understanding, if I pass data from one loop to another, the second loop will start only after the first loop is exited.  so how will the data be written in the writing loop while the data loop is still running? 
 
can you send me an example about the queue?
 
Thank you very much.
Message 3 of 5
(3,023 Views)
Hey Om,

You would want to write binary data as this is faster than text.  As far as writing data in a second loop, you can go to File >> New... and open up a template for Producer Consumer.  This is the overall structure you would need in your application.  The top loop would just be what you have already, where the bottom loop would be the file writing.

If you are planning on doing more work with LabVIEW in the future you may be interested in some of our training courses that range from LabVIEW all the way up to RF communication.  In these classes they discuss in much greater detail this kind of application and how to program it.

Let me know if you have further questions as you start laying this application out.

Regards,
Kenn North
Principal Product Manager - Search, Digital Analytics
http://ni.com/search
Message 4 of 5
(3,017 Views)
The "template for Producer Consumer" you suggested was really helpful. Now I can finally stream data from ni5660.

Also being able to run two while loops at one time, and being able to send data between the two is a great help in programming.

I attended a Labview training session ay University of Pittsburgh. My primary objective was to learn how to run two loops at once and transfer data between them. I was told its not possible in Labview.

I posted my streaming problem many times. I could'nt get much help. Wish I had met you earlier. Anyway thanks for all the suggestions.
Message 5 of 5
(3,003 Views)