主要内容

生成C代码动态仿真模块模型

动态仿真模块®编码器™从Simulink模型生成独立的C和c++代码,用于部署在各种各样的应用程序中。有关支持的DSP系统工具箱™功能的列表仿真软件编码器,请参阅C代码生成支持的块

实例生成C代码ex_codegen_dsp从生成的代码建模并构建可执行文件。你可以在MATLAB中运行可执行文件®环境。此外,您可以将代码打包并重新定位到另一个没有安装MATLAB和Simulink产品的开发环境中。2022世界杯八强谁会赢?

打开模型

ex_codegen_dsp模型实现了一个简单的自适应滤波器从信号中去除噪声,同时识别出表征噪声频率内容的滤波器。要打开这个模型,在MATLAB命令提示符中输入以下命令:

open_system (“ex_codegen_dsp”

模型图的快照。有两个输入块,正弦波块和随机源块。正弦波块的输出作为时间范围块的第一个输入。随机源块的输出被馈送到归一化LMS滤波器块的输入信号端口。同样的输出也使用lowpass Filter块进行低通过滤。这个低通滤波输出被馈送到LMS滤波器块所需的信号端口。有噪声的低通滤波信号被添加到正弦波的输出,并被馈送到时间范围块的第二个输入端口。归一化LMS块的输出从有噪声的正弦波信号中减去,并提供给时间范围块的第三个输入。归一化LMS块的Error信号提供时间范围块的第四个输入。由LMS Filter块计算的权重提供给Array Plot块,并作为“filter_wts”参数存储到工作空间。

方法也可以创建模型DSP系统模板。有关更多信息,请参见为信号处理模型配置Simulink环境

为代码生成配置模型

中指定代码生成设置,为代码生成准备模型配置参数对话框。选择适当的求解器和代码生成目标,并检查模型配置以提高执行效率。有关这些步骤的详细信息,请参见为模型生成C代码(仿真软件编码器)

模拟模型

模拟模型。的时间范围显示输入和滤波信号的特性。

时间范围块的输出。第一个信号是原始正弦信号。第二种信号是带有低频噪声的正弦信号。第三个信号是输入信号的近似。第四个信号是归一化LMS滤波块产生的误差信号。

数组的阴谋显示LMS滤波器有效适应并滤除信号中的噪声的最后32个滤波器权值。

y轴被标记为过滤器权重,范围为-0.2到0.6,x轴被标记为权重数量,范围为0到32。

这些系数也可以使用以下命令访问:

filter_wts (:,:, 1201)

从模型生成代码

在您从模型生成代码之前,您必须首先确保您在当前文件夹中具有写权限。

要生成代码,您必须进行以下更改:

  1. 建模模型工具条的选项卡,单击模型设置.的配置参数对话框打开。导航到代码生成选项卡中,选择只生成代码参数,然后单击应用

  2. 应用程序选项卡,单击下拉箭头。下代码生成,点击仿真软件编码器.的C代码TAB出现在模型窗口中。在C代码选项卡上,单击生成代码图标().

在模型完成生成代码之后,代码生成报告出现,允许您检查生成的代码。注意,构建过程创建了一个名为ex_codegen_dsp_grt_rtw在您当前的MATLAB工作文件夹中。这个子文件夹包含代码生成过程创建的所有文件,包括那些包含生成的C源代码的文件。有关查看生成代码的更多信息,请参见为模型生成C代码(仿真软件编码器)

构建并运行生成的代码

设置C/ c++编译器

要构建可执行文件,必须设置支持的C编译器。有关当前版本支持的编译器列表,请参见支持和兼容的编译器

要设置编译器,在MATLAB命令提示符中运行以下命令:

墨西哥人设置

构建生成的代码

编译器设置好之后,就可以构建和运行编译后的代码了。的ex_codegen_dsp模型目前被配置为只生成代码。要构建生成的代码,您必须首先进行以下更改:

  1. 建模模型工具条的选项卡,单击模型设置.的配置参数对话框打开。导航到代码生成选项卡上,清晰的只生成代码参数,然后单击应用

  2. C代码选项卡的模型工具条,单击构建图标().

代码生成器构建可执行文件并生成代码生成报告.代码生成器将可执行文件放在工作文件夹中。在Windows上,可执行文件是ex_codegen_dsp.exe.在Linux上,可执行文件是ex_codegen_dsp

运行生成的代码

要运行生成的代码,在MATLAB命令提示符中输入以下命令:

ex_codegen_dsp !

运行生成的代码会创建一个mat文件,其中包含与模拟模型生成的相同的变量。mat文件中的变量以前缀命名rt_.运行生成的代码后,可以在MATLAB提示符下输入以下命令从mat文件加载变量:

负载ex_codegen_dsp.mat

现在可以将生成的代码中的变量与模型模拟中的变量进行比较。要从生成的代码中访问最后一组系数,在MATLAB提示符中输入以下内容:

rt_filter_wts (:,:, 1201)

注意这些系数filter_wts (:,:, 1201)而且rt_filter_wts (:,:, 1201)匹配。

有关构建和运行可执行文件的详细信息,请参见为模型生成C代码(仿真软件编码器)

将代码迁移到另一个开发环境

一旦您从您的Simulink模型生成代码,您就可以使用打包即用工具将代码重新定位到另一个开发环境中。当开发环境中没有MATLAB和Simulink产品时,请使用此实用程序。2022世界杯八强谁会赢?

打包即用实用程序使用工具在代码生成后自定义构建过程packNGo(仿真软件编码器)函数查找并打包用于构建可执行映像的文件。这些文件打包在一个压缩文件中,您可以使用标准的zip实用程序重新定位和解压该文件。

您可以通过使用用户界面或使用命令行界面来打包代码。命令行界面提供了对代码打包细节的更多控制。有关这些方法的更多信息,请参见重新定位或共享生成的代码(仿真软件编码器)

有关如何打包从此示例生成的C代码和可执行文件的示例,请参见将从Simulink模型生成的代码迁移到另一个开发环境

相关的话题

外部网站

Baidu
map