Initializes DSP task
Function loads Ext and Standalone mode DSP applications.
mdaqDSPInit(path, rate, duration); mdaqDSPInit(linkID, path, rate, duration);
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.
linkID: Valid connection link id (optional)
path : DSP application path
rate: DSP application step per second rate (-1 - keep Xcos settings)
duration: Task duration in seconds (-1 - infinity)
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 | ![]() | ![]() |