<< mdaqDSPBuild DSP managment mdaqDSPIsDone >>

MicroDAQ toolbox >> MicroDAQ toolbox > DSP managment > mdaqDSPInit

mdaqDSPInit

Initializes DSP task

Function loads Ext and Standalone mode DSP applications.

Calling Sequence

mdaqDSPInit(path, rate, duration);
mdaqDSPInit(linkID, path, rate, duration);

Description

This function loads DSP application generated from Xcos diagram. User hast to provide three parameters, 'path' where generated DSP application (*.out file) is located, 'rate' parameter which allows to run DSP application with different model sample rate and 'duration' which defines task (DSP application) execution time. When 'rate' parameter is -1, DSP application will be executed with model sample rate defined in Xcos model, if different value provided Xcos model sample time will be overwritten. Duration set to -1 means infinite execution.

Arguments

Example

Example 1: Using standard DSP API

// Script execution duration in seconds
TIME = 20;

// Model execution frequency in Hertz
FREQ = 5000;

// Build DSP binary from Xcos model
mdaqDSPBuild(mdaqToolboxPath() + filesep() + "examples" + filesep() +"fft_demo.zcos");

// Start DSP application
mdaqDSPInit('fft_demo_scig\fft_demo.out', FREQ, -1);
mdaqDSPStart();

first_time = 1;
a = []; s = [];

// Process data from DSP
sample_count = FREQ/10;
fig = figure("Figure_name","MicroDAQ FFT demo");

for i=1:(TIME*10)
   s = mdaqDSPRead(1, 1, sample_count, 1);
  
   N=size(s,'*');  //number of samples
   s = s - mean(s);//cut DC
   y=fft(s');

   f= FREQ*(0:(N/10))/N; //associated frequency vector
   n=size(f,'*');

   if is_handle_valid(fig) then
       if first_time == 1 then
           clf();
           plot(f,abs(y(1:n)));
           title("FFT", "fontsize", 3);
           xlabel("frequency [Hz]","fontsize", 3);
           first_time = 0;
           a = gca();
       else
           a.children.children.data(:,2) = abs(y(1:n))';
       end
   else
       break;
   end
end

// Stop DSP execution
mdaqDSPStop();

// Close plot
mprintf("\nFFT demo has been stopped.");
if is_handle_valid(fig) then
   close(fig);
end

Example 2: Using DSP task API

// Script execution duration in seconds
TIME = 20;

// Model execution frequency in Hertz
FREQ = 5000;

// Build DSP binary from Xcos model
mdaqDSPBuild(mdaqToolboxPath() + filesep() + "examples" + filesep() +"fft_demo.zcos");

// Create DSP Task 
dsp = mdaqDSPTask();

// Start DSP application
dsp.init('fft_demo_scig\fft_demo.out', FREQ, -1);
dsp.start();

first_time = 1;
a = []; s = [];

// Process data from DSP
sample_count = FREQ/10;
fig = figure("Figure_name","MicroDAQ FFT demo");

for i=1:(TIME*10)
   s = dsp.read(1, 1, sample_count, 1);
  
   N=size(s,'*');  //number of samples
   s = s - mean(s);//cut DC
   y=fft(s');

   f= FREQ*(0:(N/10))/N; //associated frequency vector
   n=size(f,'*');

   if is_handle_valid(fig) then
       if first_time == 1 then
           clf();
           plot(f,abs(y(1:n)));
           title("FFT", "fontsize", 3);
           xlabel("frequency [Hz]","fontsize", 3);
           first_time = 0;
           a = gca();
       else
           a.children.children.data(:,2) = abs(y(1:n))';
       end
   else
       break;
   end
end

// Stop DSP execution
dsp.stop();

// Close plot
mprintf("\nFFT demo has been stopped.");
if is_handle_valid(fig) then
   close(fig);
end

See Also


Report an issue
<< mdaqDSPBuild DSP managment mdaqDSPIsDone >>