目录

1、前言
<https://blog.csdn.net/hustcxl/article/details/81137287#1%E3%80%81%E5%89%8D%E8%A8%80>

1.1、一个例子
<https://blog.csdn.net/hustcxl/article/details/81137287#1.1%E3%80%81%E4%B8%80%E4%B8%AA%E4%BE%8B%E5%AD%90>

 2、代码转换
<https://blog.csdn.net/hustcxl/article/details/81137287#%C2%A02%E3%80%81%E4%BB%A3%E7%A0%81%E8%BD%AC%E6%8D%A2>

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%
测试效果

 2、代码转换

入口如下APP》MATLAB Coder



 进入转换工具



输入函数名



配置函数输入参数





检查代码正确性



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



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



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



生成代码列表如下:



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

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信