续MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)
MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)
linux环境及Qt
新建Qt工程TeatMfileFun
添加之前生成的所有cpp和.h文件。有很多是不需要的,先粗暴的添加,后续再斟酌删除。
编译通过,没有错误,没有警告。少有的放心。
简单的main函数,手动输入函数参数,打印计算结果。
#include <QCoreApplication>
#include "fftAna.h"
#include <stdio.h>
#include<iostream>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
double Fss,L1,frq1,frq2;
double ff[2];
cout<<"input Fss(采样率): "<<std::endl;
std::cin >> Fss;
std::cout <<"input L1(数据长度):"<<std::endl;
std::cin >> L1;
std::cout <<"input frq1(信号1主频):"<<std::endl;
std::cin >> frq1;
std::cout <<"input frq2(信号2主频):"<<std::endl;
std::cin >> frq2;
fftAna(Fss,L1,frq1,frq2,ff);
std::cout<<"maxValue is "<< ff[0]<<" Main freq is:" << ff[1] <<"Hz"<<std::endl;
return a.exec();
}
迫不及待要测试一下效果。
换个高采样率参数,再试一下,采样率5000000,采样点数1500000,第一频率50kHz,第二频率100kHz。
计算结果还是很准的,不过还是没搞懂,在数据量大了之后为什么在MATLAB下直接执行反而比转成c++之后更快。不是matlab的执行效率会更低吗?从执行效果来看和我们自己写的fft变换耗时比较接近,但是代码bug少了,更重要的是可以把主要精力花在研究算法上而不是无休止的编码。感谢MATLAB!