主要内容

为什么分析仪选择零状态长度?

当算法的输出不改变到算法的任何输入时,分析仪也考虑算法无状态,即使它包含状态。确保对算法的输入对算法的输出产生了立即影响。

功能输入输出使用包含状态的FIR筛选器。

功能[输出] = input_output(输入)执着的筛选如果isempty(filter)filter = dsp.firfilter('分子',(1:12));结尾y =过滤器(输入);输出=任何(y(:)> 0);结尾

当您在此功能上调用自动状态长度检测时,分析仪检测最小状态长度0.

dspunfold.输入输出-  args.{Randn(10,1)}-汽车-F真的
分析输入MATLAB函数INPUT_OUTPUT创建单线程MEX文件INPUT_OUTPUT_ST.ST.MEXW64搜索最小状态长度(这可能需要一段时间)检查无状态...足够的最小状态长度为0创建多线程MEX文件input_output_mt.mexw64创建分析器文件input_output_Analyzer

分析器检测到零状态长度,因为函数的输出无论输入的值如何相同。当分析仪用零状态长度测试算法时,多线程MEX和单线程MEX匹配的输出。因此,分析仪认为算法无状态,并将最小状态长度设置为零。

推荐

为防止分析器选择错误的状态长度,请重写算法,以便输入对输出立即影响。此外,选择具有最大状态长度的代码路径的输入。

有关最佳实践,请参阅“提示”部分dspunfold.

相关话题