主要内容

为什么分析器选择了错误的状态长度?

如果算法的状态长度取决于算法的输入,请确保在生成MEX文件和运行分析器时使用选择相同状态长度的输入。否则,分析器验证失败。

函数中的算法FIR_Mean没有状态意思是(输入)> 0,也有其他的状态。

函数[input] = FIR_Mean(input)持续的过滤器如果isempty(Filter) Filter = dsp。FIRFilter (“分子”0.4 fir1 (12));结束如果(平均(输入)> 0)%无状态输出=意味着(输入);其他的%此路径包含状态yFilt =过滤器(输入);输出=意味着(yFilt);结束结束

当您在这个函数上调用自动状态长度检测时,分析器将检测状态长度为14样本。

dspunfoldFIR_Meanarg游戏{randn (10,1)}- s汽车- f真正的
创建单线程MEX文件FIR_Mean_st。搜索最小状态长度(这可能需要一段时间)检查无状态…检查不足…检查不足无限…足够检查20…充分检查15…充足检查12…检查不足…检查不足…创建多线程MEX文件FIR_Mean_mt。mexw64创建分析器文件FIR_Mean_analyzer

运行分析器功能。使用带有四个不同帧的输入。检查输出结果是否匹配。

FIR_Mean_analyzer (randn (10 * 4,1))
分析多线程MEX文件FIR_Mean_mt。mexw64……Warning: The output results of The multithread MEX file FIR_Mean_mt. exe . exemexw64与单线程MEX文件FIR_Mean_st.mexw64的输出结果不匹配。在生成多线程MEX文件FIR_Mean_mt.mexw64时,检查是否为dspopened函数提供了正确的状态长度值。有关此问题的最佳实践和可能的解决方案,请参阅dsp展开函数参考页金宝搏官方网站中的“技巧”一节。> In code .internal.warning (line 8) In FIR_Mean_analyzer ans = Latency: 8 Speedup: 0.5040 Pass: 0

通过= 0,该函数抛出一条警告消息,指出验证失败的可能原因。

验证失败的原因

算法的状态长度取决于输入。当意思是(输入)> 0,算法是无状态的。否则,算法包含状态。在生成MEX文件时,输入参数选择带有状态的代码路径。当调用分析器时,多帧输入选择没有状态的代码路径。因此,两种情况下的状态长度不同,导致验证失败。

建议

建议在生成MEX文件和运行分析器时使用选择相同状态长度的输入。

有关最佳实践,请参阅dspunfold

相关的话题