评估算法时,测量算法的复杂性是第一步。 在特定处理器上运行算法所需的时钟决定了处理能力,这取决于体系结构,而处理能力因处理器体系结构而异。 算法的内存需求没有明显变化。 大多数DSP算法处理一组样本值。 这样一组样本值称为帧。 当一组示例值组成一个帧时,不可避免地会引入延迟,从而导致处理延迟。 国际电联(ITU )规定了各算法的允许延迟标准。
1 .时间分析法。
将时间统计函数添加到算法的引用代码(C/C /C#或m代码)中。 实现统计算法占整个系统的时间。
优点:实现了简单直观的算法复杂度占整个系统复杂度的比例。
缺点:只能在算法之间进行比较,无法对算法内部的复杂性进行循环级别和指令级别的分析。
2. MCPS分析法:
算法的处理能力通常用“每秒百万个时钟”或MCPS表示。 为了更好地理解MCPS,可以假设某个算法以8kHz的频率处理6吗? 处理每个帧需要300,000个时钟的示例帧。 收集一帧的时间是6吗?/8,000或8ms。 可见用简单的算法每秒可以处理125帧。 当该算法处理所有帧时,其至少占用内核的每秒300,000 * 125=37,500,000个时钟或37.5MCPS。 另一种表示MCPS的方法与“处理一个帧所需的时间乘以采样频率再除以帧大小”除以100万的方法相同。
用专用的性能分析工具实现算法的分割。 对系统中每个算法或算法的每个部分在平台上运行的时钟周期数进行计数。
3. MIPS分析法
通常,用于定义算法处理能力的第二个术语是MIPS或100万指令每秒。 计算某个算法的MIPS也很复杂。 如果处理器的每个时钟周期都可以有效地执行一条指令,则每个处理器的MIPS和MCPS都是相同的。 另一方面,如果处理器体系结构需要一个或多个周期来执行指令,则MCPS和MIPS之间存在比率。 例如,一个ARM7TDMI处理器实际上每条指令需要1.1个周期。
用专用的性能分析工具实现算法的分割。 对系统中每个算法或算法的每个部分在平台上运行的时钟周期数进行计数。
3:算法的理论分析
验证算法本身的算法表达式、计算过程所消耗的乘法操作,估计相应的周期数据或指令数据。