Measurement Computing   Easy to Use | Easy to Integrate | Easy to Support catalog banner

Measurement Computing Data Acquisition Knowledgebase

Welcome Guest ( )

MatLab Analog Output Video Script

Expand / Collapse
 

MatLab Analog Output Video Script



Welcome to using Measurement Computing devices with Matlab. Today I will be using the USB-1608GX-2AO to output a complex waveform.
Let’s begin…Start a new script file to hold the commands.
First, I am going to create a variable to represent the size or length of the waveform.
>>count = 1000;

Now use count to calculate the angle per point or step.
>>angle = 2 * pi / count;

Now create an array of steps
>>x = (0:count-1) * angle;

In order to generate a waveform I need to create an array of discrete data points that represents a simple function of time.
>>y = .8 * sin(x) + 1.5 * sin(x * 2) + .8 * sin(x * 3);
Here I have an array that has three sinewaves added together

Now I need to get the analog output object which contains the output settings.
>>ao = analogoutput( ‘mcc’, 0 );
The string ‘mcc’ is the driver identifier and the 0 is the board number assigned by the InstaCal program. 

Now I need to add a channel to the analog output
>>chan = addchannel(ao,0);
Where 0 is the output channel number

Next, set the update rate to 4000Hz. 
>>set(ao,'SampleRate',4000);

Set the buffer repeat to 50 times in a row.
>>set(ao,'RepeatOutput',50);

Next, for output verification use a wire connected from analog output to analog input. 
Now add the analog input and channel objects. I will use the default settings since analog input starts immediately and samples for one second at 1000Hz. This means my data will have four cycles of the waveform 
>>ai = analoginput('mcc',0);
>>ch = addchannel( ai, 0 );

Before sending the data to the analog output it must be reformatted to a single column so use the transpose function and send the data to the buffer
>>putdata(ao,transpose(y));

The start command will start the analog output
>>start(ao);

And to read back the signal I will start the analog input, get the data and plot the data.
>>start(ai);
>>yy = getdata(ai);
>>plot(yy);

Now save the script as outputdata. Now let’s test the script…
>>outputdata;
That's all there is to it! Thanks for watching! Visit our website for more information about Data Acquisition devices and the software that controls them.
For a full copy of this script please refer to the transcript listing for this video.

Generator script
%Waveform length
count = 1000;

%calculate complex waveform
angle = 2*pi/count;
x = (0:count-1) * angle;

% Hz = Update Rate / Waveform length so x = 4Hz
y = .8 * sin(x) + 1.5 * sin(x * 2) + .8 * sin(x * 3);

%get analog output object
ao = analogoutput('mcc',0);
chan = addchannel(ao,0);

%set analog output update rate
set(ao,'SampleRate',4000);

%repeat the buffer 50 times
set(ao,'RepeatOutput',50);


%use analog input to read the waveform
ai = analoginput('mcc',0);
ch = addchannel( ai, 0 );

%use the transpose function and send the data to ao
putdata(ao,transpose(y));

%start the waveform
start(ao);

%read it back in using analog input
start(ai);

yy = getdata(ai);
plot(yy);



Rate this Article:

Add Your Comments


For comments email TechSupport@mccdaq.com.

Details
Article ID: 50496

Last Modified:11/20/2013 10:57:44 AM

Article has been viewed 3,319 times.

Options