主要内容

使用socModelAnalyzer比较FIR滤波器实现

这个例子展示了如何分析和比较基于算术运算数的Simulink®算法的不同实现。金宝app使用SoC块集socModelAnalyzer函数生成报告,其中显示使用静态执行和运行时执行的FIR Filter的不同实现的操作符数量。

设计任务和要求

本设计任务评估FIR滤波器的两种实现,并比较实现成本。本例使用操作符的数量作为度量实现成本的方法。

为了满足系统的要求,如速度、延迟和硬件资源,考虑和比较算法的几种实现。实现中使用的算术运算符的数量可以帮助您确定资源的使用和分配。

手工分析和计算算术运算符的数量可能是乏味的、容易出错的,而且很耗时。对于涉及分支、循环或递归构造的算法,手工计算可能是不准确的,并且可能无法计算执行路径是否依赖于输入数据或随机因素(例如,收敛算法)。

结构的模型

soc_analyze_FIR_tb模型采用两种方法实现低通数字FIR滤波器。Symmetric_FIR子系统利用系数的对称性来优化资源。转置式fir子系统采用了一种滤波器结构,以实现更高的运行速度。该模型使用一个啁啾输入信号作为输入刺激,并使用一个FIR_ref(离散FIR滤波器)块作为参考来检查实现的数值正确性。

打开soc_analyze_FIR_tb在Simulink金宝app中建立模型,并检查模型的结构。

open_system (“soc_analyze_FIR_tb”);

在设计低通FIR滤波器时,我们使用filterDesigner(DSP系统工具箱)应用程序生成系数为8阶FIR滤波器。FIR滤波器的截止频率为0.25(归一化),通带纹波和阻带衰减分别为1 dB和60 dB。模型通过模型初始化回调来设置这些系数。

仿真模型,以验证两种实现的功能参照FIR块。过滤器实现的响应与引用匹配。

sim卡(“soc_analyze_FIR_tb”);

使用模型分析器比较实现

使用socModelAnalyzer函数生成每个实现中的算术运算符数量的报告,并对实现进行比较。报告是使用模型的运行时执行生成的。

对称的冷杉过滤器:

为了估计对称FIR滤波器实现的操作数,使用socModelAnalyzer函数。的子系统名称IncludeBlockPath函数的名称-值对参数。设置输出文件夹以指定生成报告的位置。在MATLAB命令提示符处输入这个命令。

socModelAnalyzer (“soc_analyze_FIR_tb.slx”“文件夹”“report_sym”“IncludeBlockPath”...“soc_analyze_FIR_tb / Symmetric_FIR”);
为/tmp/Bdoc21a_1606923_147414/tp104b2120/ex82446029/soc_analyze_FIR_tb生成操作分析报告。基金……保存在“/tmp/Bdoc21a_1606923_147414/tp104b2120/ex82446029/report_sym”目录下。操作符估计:打开报告查看器完成。

单击。打开报告打开报表查看器链接在MATLAB控制台上。或者,您可以使用socAlgorithmAnalyzerReport函数。该报告提供了两种视图。第一个视图是操作符视图,它显示的数据使每一行都对应于一个操作符。要使用此视图,请单击操作视图在报告工具条上。第二个视图是模型视图,其中每一行对应于Simulink子系统路径。金宝app要使用此视图,请单击模型视图在报告工具条上。报表也保存在report_sym文件夹作为MAT-file (soc_analyze_FIR_tb.mat)及Excel®档案(soc_analyze_FIR_tb.xlsx).

默认情况下,报表会以操作符视图打开。查看器打开每个操作符和数据类型的聚合视图。例如,对称FIR滤波器总共包含8个添加(+)运营商的数据类型和5MUL (*)运营商的数据类型每个执行10001次。(模型仿真持续时间为10 s,基准速率为10 ms。这将产生10,000个模拟周期加上1个初始化周期。)要获取每个操作符的详细报告,请展开该操作符。报告显示了在不同块中使用的操作符计数。单击报告最后一列中的一个链接来跟踪操作符,以突出显示该操作符在soc_analyze_FIR_tb模型。

转置冷杉过滤器

为了估计转置FIR滤波器实现的操作数,使用socModelAnalyzer函数。指定“soc_analyze_FIR_tb / Transposed_FIR”“IncludeBlockPath”函数的名称-值对参数。将生成的报告的输出文件夹设置为report_trans.在MATLAB命令提示符处输入这个命令。

socModelAnalyzer (“soc_analyze_FIR_tb.slx”“文件夹”“report_trans”“IncludeBlockPath”...“soc_analyze_FIR_tb / Transposed_FIR”);
为/tmp/Bdoc21a_1606923_147414/tp104b2120/ex82446029/soc_analyze_FIR_tb生成操作分析报告。基金……报告文件保存在“/tmp/Bdoc21a_1606923_147414/tp104b2120/ex82446029/report_trans”目录下。操作符估计:打开报告查看器完成。

打开转置FIR滤波器的报告,单击打开报表查看器链接在MATLAB控制台上。

对于转置FIR滤波器,报告显示了估计的8个数据类型的增加以及9次数据类型相乘(每个操作执行10001次)。

对称和转置实现的比较

比较对称和转置FIR滤波器报告使用socModelAnalyzer函数。对称FIR滤波器使用的乘法运算符(9)比转置FIR滤波器(5)少,它们都使用相同数量的加法运算符(8)。

结论

你使用了socModelAnalyzer函数来估计和分析两个FIR滤波器实现中的算术运算符的数量。您生成了对称和转置FIR滤波器的算子报告。您比较了两个实现的乘法和加法操作符的数量。

你可以使用socModelAnalyzer函数,用于分析Simulink算法中的运算符数量。金宝app