代码生成的参数音频均衡器
这个例子展示了如何建模算法规范三个乐队参量均衡器,将用于代码生成。
需要MathWorks™产品:下载188bet金宝搏
MATLAB®
DSP系统工具箱™
金宝app仿真软件®
MATLAB®编码器™
金宝app仿真软件®编码器™
嵌入式编码器™
介绍
参数均衡器通常用来调整音频系统的频率响应。例如,参量均衡器可以用来弥补物理扬声器的山峰,在不同的频率下降。
参量均衡器算法在此示例中提供了三个二阶(双二次)滤波器的系数可以调整,以达到所需的频率响应。一个用户界面中使用模拟动态调整滤波器系数和探索行为。代码生成的系数变量命名和放置在文件,这样他们可以访问其他软件组件的动态变化系数,而目标处理器上运行。
以下部分将描述如何指定参量均衡器算法,通过模拟如何探索行为,如何可以和自定义生成的代码。
指定的算法
中指定的参量均衡器算法两部分:模型规范和参数化数据规范。模型的规范是一个仿真软件子系统,用于指定的信号流算法。金宝app访问参数化数据模型规范还存在于MATLAB工作区。参数化数据规范是一个MATLAB脚本,该脚本创建的数据访问的仿真软件模型。金宝app
对于这个示例,该模型规范的均衡器子系统仿真软件模型金宝appdspparameqcodegen。这个子系统的输入是通过三个级联的均衡。平滑系数的变化在每个频带通过漏水的积分器之前被传递到Biquad过滤块。每个Biquad过滤块被配置为使用一个不同的滤波器结构。选择不同的滤波器结构显示代码生成后在这个例子的差异。
对于这个示例,参数化数据规范是MATLAB脚本dspparameq_data.m。这个MATLAB脚本指定初始滤波器系数以及代码生成属性。当你打开模型dspparameqcodegen模型的PreLoadFcn
回调被配置为运行dspparameq_data.m脚本创建了MATLAB的工作区中参数数据。
通过模拟探索行为
您可以使用一个模拟试验台探索算法的行为。在这个例子中,该试验台由仿真模型,dspparameqcodegen,作为一个自定义的用户界面(UI)在MATLAB编程。
这个UI可以通过单击“启动参数调优UI”链接。UI使系数动态调整参数数据在MATLAB工作区模拟。
为均衡器子系统生成C代码
一旦你达到预期的模拟行为,您可以生成C代码基于算法的均衡器子系统规范。这个模型配置为显示一些常见的代码生成定制可以从嵌入式编码器产品。这些定制减轻代码评审和集成的过程。下面显示的一些代码定制这个模型和提供参考文档更详细地描述这些定制。
生成C代码,右键单击均衡器子系统,选择代码生成>构建子系统,然后单击Build按钮时提示输入可调参数。您还可以通过点击下面的超链接生成代码:生成代码的均衡器子系统。
代码生成报告的链接和模型
模型配置为生成一个HTML报告,可以用来浏览生成的源和头文件。该报告还使生成的代码和模型之间的双向连接。例如,每个Biquad过滤块配置来实现不同的滤波器结构。你可以从块相关的跟踪代码通过右键单击任何Biquad过滤器然后选择代码生成>导航到代码块。
更多信息模型和代码之间的可跟踪性在生成的代码金宝app跟踪仿真软件模型元素(嵌入式编码)。
调用生成的代码
你可以将生成的代码集成到一个应用程序通过调用函数模型初始化和模型步骤。一个例子ert_main.c
文件生成,显示了如何调用生成的代码。注意,这个例子main ()
调用Equalizer_initialize ()
初始化状态。这个例子rt_OneStep ()
显示一个周期中断称之为等机制Equalizer_step ()
从文件Equalizer.c
。
更多信息关于如何将生成的代码集成到另一个应用程序生成独立的可执行程序部署到目标硬件(嵌入式编码)。
输入和输出数据接口
参数化数据规范文件,dspparameq_data.m,创建在
和出
MATLAB的工作区中信号数据对象。这些数据对象与信号线路模型和用于指定相应的变量的描述和存储类生成的代码。例如,信号在
和出
声明一个全局变量在吗Equalizer.c
。阶跃函数运行模型,应用程序写入数据在
称Equalizer_step ()
函数,然后读取的结果出
。
有关数据对象的更多信息创建数据对象与数据对象代码生成向导(嵌入式编码)。
在代码注释文本注释
你可以插入设计文档作为模型中的文本输入生成的代码的注释。的均衡器
子系统包含注释文本关键字S:描述
。代码生成器标识文本开始这个关键字并将关键字作为评论后的文本插入生成的代码。
更多信息将注释文本插入代码注释在生成的代码中添加全球评论(嵌入式编码)。
功能分区
轻松导航生成的代码,每个子系统的均衡器乐队配置为原子和创建自己的函数。你可以看到调用秩序Equalizer_step ()
函数。
更多信息定制函数命名和位置关于Nonvirtual子系统代码生成(嵌入式编码)。
系数文件位置
参数化数据规范文件,dspparameq_data.m创建数据对象参数的系数MATLAB工作区。这些数据对象配置定义和声明系数变量在单独的文件中biquad_coeffs.c
和biquad_coeffs.h
分别。分区系数为独立的文件支持其他软件组件来访问这些数据。例如,在一个已部署的应用程序,你可以安排另一个软件组件来修改这些变量在运行时使用的Equalizer_step ()
。
关于文件数据对象的位置看到的更多信息控制位置的全局数据定义和声明生成的文件(嵌入式编码)。
滤波器系数变量评论中设计参数
当系数计算(参数化数据文件或图形用户界面),存储在滤波器设计参数描述
场系数参数的数据对象。模型配置为插入设计参数作为评论在生成的代码中。这使评论者的代码很容易确定哪些设计参数被用来设计过滤器。
有关自定义数据对象的评论的更多信息在生成的代码中看到的在生成的代码中添加自定义注释变量(嵌入式编码)。
包生成的文件
生成的文件引用的HTML报告中存在Equalizer_ert_rtw
目录中。除了此目录中的文件,其他文件在MATLAB应用程序安装目录可能需要集成到一个项目。为了缓解将生成的代码移植到其他环境,这个模型配置为使用PackNGo特性,包了所有必需的文件的zip文件Equalizer.zip
。注意,zip文件包含了所有必需的文件,但也可能包含额外的文件可能不是必需的。
有关包装文件的更多信息集成到其他环境,明白了搬迁或共享生成的代码(金宝app仿真软件编码器)。