此示例显示了如何使用MATLAB Compiler™从MATLAB函数创建独立应用程序,该函数使用DSP System Toolbox™的系统对象。
在此示例中,您从函数开始rlsfiltersystemidcompilerexampleapp.使用RLS过滤器进行系统识别。您可以使用MATLAB编译器生成可执行应用程序,然后运行应用程序。生成此类独立应用程序的优点是即使在没有安装MATLAB的系统上也可以运行它们。这些只需要安装MATLAB运行时。
递归最小二乘(RLS)过滤器是可用于识别未知系统的自适应滤波器。rlsfiltersystemidcompilerexampleapp.
使用RLS过滤器识别具有可变截止频率的系统。该系统是使用的低通冷滤波器使用dsp.variaseBandWidthfirfilter.
。使用RLS滤波器使用dsp.rlsfilter.
。
有关算法和设置的更多信息,请按照示例进行操作:使用RLS自适应滤波系统识别。
验证的行为rlsfiltersystemidcompilerexampleapp.
,在matlab中运行函数。它需要一个可选的输入,这是迭代步骤的数量。默认值为300次迭代。
rlsfiltersystemidcompilerexampleapp;
用户界面(UI)出现了两个可以控制的参数:
截止频率(Hz) - 要识别的低通滤波器的截止频率,指定为范围的标量[0,5000] Hz。
RLS忘记因子 - 用于系统识别的RLS滤波器的因素,指定为范围的标量[0,1]。
当模拟完成或点击时停止模拟
按钮,您将看到您对这些参数进行的更改的图表以及它如何影响RLS过滤器的平均平方误差(MSE)。
一旦您对MATLAB中的函数的模拟感到满意,您可以编译功能。在编译之前,创建一个临时目录,您可以在其中写入权限。将主MATLAB函数和关联的辅助文件复制到此临时目录中。
compilerdir = fullfile(tempdir,'compilerdir');临时目录的%名称如果〜存在(Compilerdir,'dir')Mkdir(Compilerdir);%创建临时目录结尾Curdir = CD(Compilerdir);copyfile(哪个('rlsfiltersystemidcompilerexampleapp'));copyfile(哪个('helperrlsfiltersystemiderifiedim'));copyfile(哪个('helpercreateparamtuningui'));copyfile(哪个('helperunpackuidata'));
在您刚刚创建的临时目录中,运行MCC.
(Matlab编译器)MATLAB功能上的命令rlsfiltersystemidcompilerexampleapp.
。MCC.
调用MATLAB编译器,该编译器将MATLAB函数编译为保存在当前目录中的独立可执行文件。使用MCC.
(Matlab编译器)来自Matlab编译器的功能编译rlsfiltersystemidcompilerexampleapp.
进入独立申请。指定“-m”选项以生成独立应用程序的“-n”选项,以仅包含通过“-p”选项指定的路径中的目录。
MCC('-mn'那'rlsfiltersystemidcompilerexampleapp'那......'-p',fullfile(matlabroot,'工具箱'那'DSP'));
演示编译器许可证。生成的申请将于8月10日18:05:54 2020年8月10日起30天到期。
这一步需要几分钟才能完成。
使用系统
命令运行生成的独立应用程序。请注意,使用system命令运行独立应用程序使用当前MATLAB环境和此安装MATLAB所需的任何库文件。要在没有安装MATLAB的计算机上部署此应用程序,请参阅Matlab运行时(Matlab编译器)。
如果ISMAC Status = system(fullfile('rlsfiltersystemidcompilerexampleapp.app'那......'内容'那'苹果系统'那'rlsfiltersystemidcompilerexampleapp'));别的status = system(fullfile(pwd,'rlsfiltersystemidcompilerexampleapp'));结尾
使dyld:库未加载:@是rpath / libmwlaunchermain.dylib引用的来自:/private/var/folders/dc/482hqt1x0_g33cty0z3_8v20000_8y/T/compilerDir/RLSFilterSystemIDCompilerExampleApp.app/Contents/MacOS/RLSFilterSystemIDCompilerExampleApp原因:图片未找到RLSFilterSystemIDCompilerExampleApp.app/Contents/麦斯科斯/ rlsfiltersystemidcompilerexampleapp:中止
类似于matlab示例使用RLS自适应滤波系统识别,运行此可执行应用程序也会启动UI。UI允许您调整参数,结果立即反映在模拟中。例如,在仿真运行时,将“截止频率(Hz)”移动滑块。您将看到截止频率的块中的一滴,并在RLS滤波器的MSE中进行相应的波动。您可以使用UI上的按钮暂停或停止模拟。
生成和部署可执行文件后,您可以通过在MATLAB命令提示符中运行以下内容来清除临时目录:
CD(Curdir);rmdir(Compilerdir,');