在科学计算应用程序的上下文中,使用来自(强大的)嵌入式系统的数据,获取原始数据(但来自校准的采集电子设备),我被要求将这些数据(在 RT 中)与经验和相结合,而不是使用常用的数值方法。(重要提示:即使我们正在处理嵌入式系统,计算能力也不是问题)。
当我问为什么不使用这些常用的数值方法(例如辛普森、中点规则、梯形规则等)时,我无法得到任何答案。然后,我想知道为什么有人要以这种方式执行它。
嵌入式系统上的采集应用程序是 C++03,用 GCC 4.4.7 编译,执行的平均值看起来有点像这样(每次执行采集时都会执行此代码):
float sum = 0.0;
for (int i = 0; i < DATA_BLOCK_LENGTH; i++) {
sum += data[i]
}
sum /= DATA_BLOCK_LENGTH;
这个片段让您了解代码从接收到的信号轨迹中执行平均;信号在大多数情况下通常看起来像这样(沿着整个信号迹线有一个或两个尖峰)。
