MATLAB Analog Output Video Script

Analog_Output_Video

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);