MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)

目录

1、前言

1.1、一个例子

 2、代码转换



1、前言

使用MATLAB进行数据分析,由于其强大的库非常方便,然而MATLAB应用起来有很多限制。尤其不方便用于实时系统。摸索MATLAB Coder工具,实现MATLAB函数转C++代码直接加入工程应用。大大缩减开发时间。

废话不多说,直接上实例!

先交代一下环境。MATLAB是用的学校提供的正版软件MATLAB2017a;

操作系统:win10 企业版

1.1、一个例子

选择一个相对复杂的例子,利用matlab自带函数生成一个两正弦信号叠加的采样序列,然后用库函数fft完成fft变换,输出信号主频幅值和信号主频。函数参数为采样率、数据长度、信号1频率、信号2频率。采用的是MATLAB help中关于fft函数解释的例子,稍有改动。

function ff = fftAna(Fss,Ll,frq1,frq2)
Fs = Fss;            % Sampling frequency  1000                  
T = 1/Fs;             % Sampling period       
L = Ll;             % Length of signal 1500
t = (0:L-1)*T;        % Time vector
S = 0.7*sin(2*pi*frq1*t) + sin(2*pi*frq2*t);
 X = S + 2*randn(size(t));
% plot(1000*t(1:50),X(1:50))
% title('Signal Corrupted with Zero-Mean Random Noise')
% xlabel('t (milliseconds)')
% ylabel('X(t)')
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
[maxValue ,freq] =  max(P1);
freq = Fs*freq/L;
ff = [maxValue ,freq] ;
f = Fs*(0:(L/2))/L;
plot(f,P1) 
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
end%

测试效果MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第1张图片

 2、代码转换

入口如下APP》MATLAB Coder

 进入转换工具

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第2张图片

输入函数名

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第3张图片

配置函数输入参数

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第4张图片

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第5张图片

检查代码正确性

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第6张图片

检查与MEX测试,由于没输入参数,测试报错,可以忽略。继续下一步。

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第7张图片

配置代码输出,选择C++,选择编译器。试验选择为MinGW64 v4.x

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第8张图片

点击Generate,等待一会,完成转换。

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第9张图片

生成代码列表如下:

MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_第10张图片

核心代码为与函数名同名的cpp文件和.h文件。

 

你可能感兴趣的:(linux,matlab,linux,C/C++编程,Qt)