主要内容

使用MATLAB编译器生成DSP应用程序

此示例显示了如何使用MATLAB Compiler™从MATLAB函数创建独立应用程序,该函数使用DSP System Toolbox™的系统对象。

介绍

在此示例中,您从函数开始rlsfiltersystemidcompilerexampleapp.使用RLS过滤器进行系统识别。您可以使用MATLAB编译器生成可执行应用程序,然后运行应用程序。生成此类独立应用程序的优点是即使在没有安装MATLAB的系统上也可以运行它们。这些只需要安装MATLAB运行时。

系统识别算法

递归最小二乘(RLS)过滤器是可用于识别未知系统的自适应滤波器。rlsfiltersystemidcompilerexampleapp.使用RLS过滤器识别具有可变截止频率的系统。该系统是使用的低通冷滤波器使用dsp.variaseBandWidthfirfilter.。使用RLS滤波器使用dsp.rlsfilter.

有关算法和设置的更多信息,请按照示例进行操作:使用RLS自适应滤波系统识别

matlab模拟

验证的行为rlsfiltersystemidcompilerexampleapp.,在matlab中运行函数。它需要一个可选的输入,这是迭代步骤的数量。默认值为300次迭代。

rlsfiltersystemidcompilerexampleapp;

用户界面(UI)出现了两个可以控制的参数:

  1. 截止频率(Hz) - 要识别的低通滤波器的截止频率,指定为范围的标量[0,5000] Hz。

  2. 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'));

将MATLAB函数编译成独立应用程序

在您刚刚创建的临时目录中,运行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,');