主要内容

使用socModelAnalyzer比较FIR滤波器实现

此示例显示如何根据算术运算的数量分析和比较Simulink®算法的不同实现。使用SoC块集金宝appsocModelAnalyzer函数生成报告,显示使用静态和运行时执行的FIR过滤器的不同实现的运算符数。

设计任务和要求

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

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

手动分析和计算算术运算符的数量可能会非常繁琐、容易出错且耗时。对于涉及分支、循环或递归构造的算法,手动计算可能不准确,如果执行路径取决于输入数据或随机因素,则可能无法计算(例如,收敛算法)。

模型结构

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

打开soc\u分析\u FIR\u tb在Simulink金宝app中建模并检查模型的结构。

开放式系统(“soc\u分析\u FIR\u tb”);

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

模拟模型,对照参考FIR块验证两种实现的功能。滤波器实现的响应与参考匹配。

模拟(“soc\u分析\u FIR\u tb”);

使用模型分析器比较实现

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

对称FIR滤波器:

要估计对称FIR滤波器实现的运算符数,请使用socModelAnalyzer函数的子系统名称IncludeBlockPath函数的名称-值对参数。设置输出文件夹以指定生成报告的位置。在MATLAB命令提示符下输入此命令。

socModelAnalyzer(“soc\u analysis\u FIR\u tb.slx”,“文件夹”,“报告_sym”,“IncludeBlockPath”,...“soc\u分析\u FIR\u tb/对称\u FIR”);
为/tmp/Bdoc21b\u 1757077\u 76220/tp708e84ab/ex82446029/soc\u analyze\u FIR\u tb.slx生成操作员分析报告…将报告文件保存在/tmp/Bdoc21b\u 1757077\u 76220/tp708e84ab/ex82446029/report\u sym中。操作员估计:打开报告查看器完成。

通过单击打开报表查看器链接。或者,您可以使用socAlgorithmAnalyzerReport作用报告提供了两种观点。第一个视图是operator视图,它显示数据,使每一行对应一个运算符。要使用此视图,请单击操作员视图在报表工具条上。第二个视图是模型视图,其中每行对应于Simulink子系统路径。要使用此视图,请单击金宝app模型视图在报表工具条上。报表也保存在报告符号文件夹作为MAT文件(soc\u分析\u FIR\u tb.mat)和Excel®文件(soc\u分析\u FIR\u tb.xlsx).

默认情况下,报告将以运算符视图打开。查看器将打开每个运算符和数据类型的聚合视图。例如,对称FIR过滤器总共包含8个添加(+)数据类型的运算符双重的和5MUL(*)数据类型的运算符双重的每次执行10001次。(模型模拟持续时间为10秒,基本速率为10毫秒。这将产生10000个模拟周期加1个初始化周期。)要获取每个操作员的详细报告,请展开该操作员。该报告显示各个块中使用的操作员计数。通过单击报告最后一列中的一个链接来跟踪操作员,以突出显示操作员在报告中的位置soc\u分析\u FIR\u tb模型

转置FIR滤波器

要估计转置FIR滤波器实现的运算符数量,请使用socModelAnalyzer函数。指定“soc\u分析\u FIR\u tb/转置\u FIR”对于“IncludeBlockPath”函数的名称-值对参数。将生成的报告的输出文件夹设置为报告。在MATLAB命令提示符下输入此命令。

socModelAnalyzer(“soc\u analysis\u FIR\u tb.slx”,“文件夹”,“报告_trans”,“IncludeBlockPath”,...“soc\u分析\u FIR\u tb/转置\u FIR”);
正在为/tmp/Bdoc21b_1757077_76220/tp708e84ab/ex82446029/soc_analyze_FIR_tb.slx生成操作员分析报告。。。将报告文件保存在/tmp/Bdoc21b_1757077_76220/tp708e84ab/ex82446029/report_trans中。操作员估算:打开报告查看器完成。

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

对于转置FIR滤波器,报告显示了估计的8个数据类型添加数双重的和数据类型的9次乘法双重的(每个操作员执行10001次)。

对称和转置实现的比较

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

结论

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

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

另见

|