运营商对MATLAB算法的估计数字
这个例子展示了如何估计算术运算符的数量在一个算法编写的MATLAB®。分析基数2 FFT算法和生成报告显示操作员使用。
基数2 FFT算法和Testbench
分析的算术运算符soc_analyze_FFT_radix2
函数。计算的算术运算符函数的执行期间使用。的testbenchsoc_analyze_fft_tb
提供刺激和验证基数2 FFT算法的实现soc_analyze_FFT_radix2
)对FFT MATLAB函数(fft
)。
打开soc_analyze_FFT_tb.m
在MATLAB文件编辑器检查testbench的结构。
开放soc_analyze_FFT_tb
testbench生成一个测试信号有两个正弦信号,在50 Hz的振幅0.7,另一个在120 Hz的振幅1。信号的采样频率为1 kHz加性随机噪声。testbench计算FFT输出上述FFT-length指定为测试信号FFTLen
论点。testbench比较函数的输出MATLAB FFT的输出函数(fft
)和阴谋的结果。
基数2 FFT生成Operator-Count报告为1024点
估计的数量基数2 FFT的运营商,使用socFunctionAnalyzer
功能,并提供testbench函数soc_analyze_FFT_tb
作为参数。默认情况下,所有函数调用的函数生成的报告从内部testbench函数和列出所有运营商使用。
来生成一个报告只有算法(soc_analyze_FFT_radix2
),而不是testbench,使用“RestrictFunction”
名称-值对参数值“soc_analyze_FFT_radix2.m”
。使用“RestrictOperator”
名称-值对参数筛选报告,只显示三个运营商通过设置它的值{'添加',' - ',' MUL '}
。设置“OutputFolder”
名称-值对生成的报告参数来指定一个文件夹位置。
执行这个命令来生成报告的模拟1024点基数2 FFT算法。命令模拟设计而计数运营商并生成一个报告。
socFunctionAnalyzer (“soc_analyze_FFT_tb.m”,“FunctionInputs”,1024,…“文件夹”,“report_1024”,“IncludeFunction”,“soc_analyze_FFT_radix2.m”,…“IncludeOperator”,{“添加”,“-”,“MUL”});
为/ tmp / Bdoc23a_2213998_3594841生成运营商分析报告/ tp07e2a7de / soc-ex65369380 / soc_analyze_FFT_tb。米……保存报告文件/ tmp / Bdoc23a_2213998_3594841 / tp07e2a7de soc-ex65369380 / report_1024。运营商估计:< a href = " matlab: socAlgorithmAnalyzerReport (“/ tmp / Bdoc23a_2213998_3594841 / tp07e2a7de / soc-ex65369380 / report_1024 / soc_analyze_FFT_tb.mat’)”< / > >查看器打开报告完成了。
观察基数2 FFT算法和MATLAB FFT函数(参考fft
在上面的仿真图)的结果。验证这些结果非常相似,这些结果之间的差异是10 e-12。
分析运营商的评估报告
通过单击打开报告打开报表查看器链接在MATLAB控制台上。或者,您可以使用socAlgorithmAnalyzerReport
函数。该报告提供了两种观点。第一个观点是运营商的观点,介绍了数据,每一行对应一个操作符。使用这个视图中,点击操作视图在将来发布报告。第二种观点是算法的观点,每一行对应一个MATLAB函数。使用这个视图中,点击算法的观点在将来发布报告。
默认情况下,操作员的报告打开视图。报告打开每个操作符和数据类型的聚合视图。例如,对于一个1024点基数2 FFT总共有91649添加(添加(+))的数据类型双
和67094年减少(负(-))的数据类型int32
。每个运营商的详细报告,扩大运营商。报告显示操作员算作用于各种功能。例如,蝴蝶的功能l_butterfly
包含四个双
添加,每个执行5120次。跟踪操作员通过点击一个链接在最后一列的报告强调运营商的位置soc_analyze_FFT_radix2
文件。
切换到算法的观点,通过单击算法的观点按钮。扩大报告,查看所有的运营商数量下的函数文件soc_analyze_FFT_radix2.m
。您可以查看每个运营商的数量和数据类型通过扩大另一个层次。您还可以使用全部展开和全部折叠按钮在将来发布导航的报告。跟踪一个特定的运营商MATLAB代码,点击相应的链接的列链接到源在报告中。
生成报告的512点FFT基数2
观察操作的数量之间的关系和数量的点FFT,比较以前的报告和一个512点FFT基数2。基数2生成报告的512点FFT通过512的值“FunctionInputs”
名称-值对参数在此命令。
socFunctionAnalyzer (“soc_analyze_FFT_tb.m”,“FunctionInputs”,512,…“文件夹”,“report_512”,“IncludeFunction”,“soc_analyze_FFT_radix2.m”,…“IncludeOperator”,{“添加”,“-”,“MUL”});
为/ tmp / Bdoc23a_2213998_3594841生成运营商分析报告/ tp07e2a7de / soc-ex65369380 / soc_analyze_FFT_tb。米……保存报告文件/ tmp / Bdoc23a_2213998_3594841 / tp07e2a7de soc-ex65369380 / report_512。运营商估计:< a href = " matlab: socAlgorithmAnalyzerReport (“/ tmp / Bdoc23a_2213998_3594841 / tp07e2a7de / soc-ex65369380 / report_512 / soc_analyze_FFT_tb.mat’)”< / > >查看器打开报告完成了。
基数2 512点FFT,聚合报告显示估计的41473增加的数据类型双
32026倍的类型int32
和11316倍的数据类型双
。基数2之前,1024点FFT,这些值是91649年,分别为70173人和25146人。扩大报告的详细的运营商利用l_butterfly
函数。在这种情况下,函数执行长度为512年的2304倍,与1024年5120倍长度)。
结论
使用socFunctionAnalyzer
函数估计和分析算术运算符的数量基数2 FFT的MATLAB函数。使用各种浏览器选项来分析报告。
总总认为
详细每运营商视图和MATLAB函数
分析报告通过传递不同的参数作为输入你的算法和观察差异。
您可以使用此分析得到一个估计的实现一个算法的成本在一个给定的硬件平台。