Signal Generators

cancel
Showing results for 
Search instead for 
Did you mean: 

signal generation using the data from matlab script node

Hello everyone.
 I'm using the data from matlab script node to generate signal. The data will change each time in a loop according the matlab script,  I'm wondering whether the RF hardware (signal generator module) will experience a time break in transmitting between the data changing?
Thanks for your help:-)
0 Kudos
Message 1 of 25
(9,017 Views)
Hi,

The waveform generator actually has onboard memory, which is pretty much going to act like a buffer.  So depending on the size of the "data chunks" that you are writing to the onboard memory, you should see no delay.  This is a fairly commom application used for streaming purposes, where you would write data to the onboard memory and as soon as the generator is done with writing the previous waveform it will continue with the waveform/s written on the onboard memory. 

You did mention that you are using RF hardware?  Are you using the 5671?  Could you please give me a little more details on what kind of hardware you are using, what programming environment you are using and whether you are using our RFSG driver.

It would also help to know how much data you are writing and how fast/often you are writing it.

Thank you,
Raajit L
National Instruments
0 Kudos
Message 2 of 25
(8,996 Views)

Hello Raajit L

Thanks for your kind reply. The upconverter is 5610, and the arbitrary waveform generator is 5441. The programming environment is Labview 8.2.

At the transmitter, I'm using data from matlab script, which is in a loop, to generate waveform, and the data updates every 1 second.

But at the receiver the constellation is out of order. So I put a module of "Clear Arbitrary Memory" in the loop. The result is that the constellation of receiver seems much better now, but there is error in transmitter namely:

Error 1074126847 occurred at niFgen Clear Arbitrary Memory.vi. Drive Status:(Hex OxBFFA2001) The operation cannot be completed because the device is not configurable while it is generating a signal.

I don't know how to figure it out.

Best regards!

 

 

0 Kudos
Message 3 of 25
(8,983 Views)
Hi,

What is the VI that you are using to write to the onboard memory again?  You should just be able to use a NIFgen Write Waveform to write to the memory again.  What you could do is just monitor when the memory is free and only when write the memory.  There is an example called Fgen Arb Waveform Streaming.vi.  Here the memory is being checked before writing new data to the onboard memory.

I think that might also be the reason why your constellation was not correct, because the data that was there onboard was getting erased, but I am just speculating here.  Please take a look at the example and see if that helps out any.  Also make sure that you are not changing any session parameters on the fly, which is probably what is causing the error that you are seeing.



Regards,


Message Edited by Raajit L on 01-09-2008 11:26 AM
Raajit L
National Instruments
0 Kudos
Message 4 of 25
(8,958 Views)
Hi Raajit L:
 
Thanks a lot. I'll digest the example and get some insight from it. If I have further questions, can I contact with you by Email? Could you share your email address?
Best Regards!
0 Kudos
Message 5 of 25
(8,949 Views)
Hi,

The best method to get in touch with me would be to post back on this forum or make a new thread for new questions.  Our support is a paid service where as the forums are free :).  We monitor the forums regularly and usually I will post back or someone else from my team will post back, if I am out of the office. 

Let me know how the example works out for you and you can post back with any further questions. 

Thank you and have a great day.

Regards,
Raajit L
National Instruments
0 Kudos
Message 6 of 25
(8,935 Views)
Hello Raajit L:
 
I'm not so sure whether "waveform streaming" you mentioned is suitable in my application. I'll elaborate my application here:
 
1.The data source for waveform is from Matlab script node, which generates data almost every 1second (which is not a constant time slot, because it also depends on other blocks).
2.The output data from Matlab is then fed into "niFgen create waveform", (this RF labview program is done by other people, so I'm not very familiar with it).
 
I have a few questions:
1. If the "niFgen create waveform" creates multiple waveforms in the onboard memory (since the output data from Matlab is updating)?
If so, can I clear the former waveforms and only generate the current waveform? The former waveforms are outdated and not needed.
 
2. I tried the following case: abort generation -- configure waveform -- clear memory -- create waveform
However it'll cause uncontinously generation, I don't want any delay or idle time.
 
3. If streaming is applicable, how to realize it to fit for my application?
 
Thanks very much
Best Regards
0 Kudos
Message 7 of 25
(8,902 Views)
Hello Raajit L
 
I have some further questions about waveform streaming:
1. How to define the onboard memory allocated to the waveform?
    The parameters sets are: symbol rate: 8M/s,  center frequency:2.38GHz, the data from matlab script is 1920 complex data.    Does the memory size have some relationship with these parameters?
2. Is initial data necessary to be set?
3. What's role of the trigger?
 
Wish you would kindly help me with these questions.
Best Regards:-)
 
 
0 Kudos
Message 8 of 25
(8,892 Views)

Here are the answers to your questions.  You probably do not need to use the entire streaming example.  I just recommended that to show you how to write to onboard memory.  The niFgen Allocate Waveform is the VI that is allocating the memory up front.  This is the amount of memory that will be reserved for your waveform.  This depends on how much memory you as the user want to use and also on how much onboard memory your card has.  We sell different generators with different memory options.

Only when you call your niFgen Initiate Generation function the waveform generation will begin.  As the waveform generates, onboard memory space becomes free.

You can monitor available memory (like in the example) as the waveform is generating. 

Calling the niFgen Write Waveform will write a new block of waveform data to the onboard memory.


The initial data is not required to be set. 

The reason I recommended the streaming example is because if you close out and start the program every time that will induce a software lag into your program.  You will be closing and starting new sessions on the board every time.  Also, monitoring the memory is important, if you perform a write function before the waveform from the board has been output that will cause problems. 

Triggering is used as an event to output a waveform on your device.  More information on this can be found in the NIFGEN help.  Start >> Programs >> National Instruments >> NI Fgen >> Documentation >> NI Signal Generators Help >> Search for streaming.

Regards,



Message Edited by Raajit L on 01-15-2008 10:37 AM
Raajit L
National Instruments
0 Kudos
Message 9 of 25
(8,873 Views)
It would also help if you could post a little more information on how you have everything set up and maybe a screenshot of your code, so that I can get a better understanding of how your program is set up. Smiley Happy

Regards,
Raajit L
National Instruments
0 Kudos
Message 10 of 25
(8,870 Views)