主要内容

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

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

介绍

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

系统识别算法

递归最小二乘(RLS)过滤器是可用于识别未知系统的自适应滤波器。rlsfiltersystemidcompilerexampleapp.使用RLS滤波器来识别具有可变截止频率的系统。该系统采用低通FIR滤波器实现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(哪个(“HelperRLSFilterSystemIdentificationSim”));copyfile(哪个(“HelperCreateParamTuningUI”));copyfile(哪个(“HelperUnpackUIData”));

编译MATLAB函数到一个独立的应用程序

在刚才创建的临时目录中运行世纪挑战集团(Matlab编译器)MATLAB函数上的命令rlsfiltersystemidcompilerexampleapp.世纪挑战集团调用MATLAB编译器,该编译器将MATLAB函数编译为保存在当前目录中的独立可执行文件。使用世纪挑战集团(Matlab编译器)函数从MATLAB编译器进行编译rlsfiltersystemidcompilerexampleapp.进入一个独立的应用程序。指定'-m'选项生成一个独立的应用程序,'-N'选项只包含通过'-p'选项指定的路径中的目录。

MCC('-mn'“RLSFilterSystemIDCompilerExampleApp”......'-p',fullfile(matlabroot,“工具箱”“dsp”));
演示编译许可证。生成的申请将于8月10日18:05:54 2020年8月10日起从今天到期。

这一步需要几分钟才能完成。

运行已部署的应用程序

使用系统命令运行生成的独立应用程序。请注意,使用System命令运行独立应用程序使用当前MATLAB环境和此安装MATLAB所需的任何库文件。要在没有安装MATLAB的计算机上部署此应用程序,请参阅MATLAB运行时(Matlab编译器)

如果ISMAC Status = System(FullFile(“RLSFilterSystemIDCompilerExampleApp.app”......“内容”“MacOS”“RLSFilterSystemIDCompilerExampleApp”));别的status = system(fullfile(pwd,“RLSFilterSystemIDCompilerExampleApp”));结尾
dld:库未加载:@rpath/libmwlaunchermain。dylib引用自:/private/var/folders/dc/482hqt1x0_g33cty0z3_8v20000_8y/T/compilerDir/RLSFilterSystemIDCompilerExampleApp。app/Contents/MacOS/RLSFilterSystemIDCompilerExampleApp Reason: image not found RLSFilterSystemIDCompilerExampleApp. log . log . log . log . log . log。应用程序/内容/ MacOS / RLSFilterSystemIDCompilerExampleApp:中止

类似于matlab示例基于RLS自适应滤波的系统识别,运行此可执行应用程序也会启动UI。UI允许您调整参数,结果立即反映在模拟中。例如,在仿真运行时将滑块移动到左侧的“截止频率(Hz)”。您将看到截止频率的块中的一滴,并在RLS滤波器的MSE中进行相应的波动。您可以使用UI上的按钮暂停或停止模拟。

清理生成的文件

生成和部署可执行文件后,您可以通过在matlab命令提示符中运行以下内容来清除临时目录:

cd (curDir);删除目录(compilerDirs);