问题描述
我试图模拟我的数据采集卡何时以数据流模式获取数据并进行数据处理。 pi16Buffer
表示通道 1 和通道 2 混合的长波形数据,因此我使用 for
循环将数据 de-interleave
到 ch1Buffer[i]
和 ch2Buffer[i]
。其次,将 ch1Buffer
归一化为 ch2Buffer
,称它们为 Corrected
。根据{{1}}值,使用Corrected
触发if
值计算sum
。但是,我得到的都是Area under curve
,请检查我的示例代码是否有任何设置错误?我想从 0
中得到 3 个总和。
AUC
解决方法
这部分有一个错误:
i
当循环完成时,u32Size/2
的值为 ch1Buffer[i]
,并且没有分配给 ch1Buffer[i]
。换句话说 - 由于使用了 calloc
,ch2Buffer[i]
为零。这同样适用于 Corrected = 0.0 / 0.0; // not good
。
所以你在做:
for (i = 0; i < u32Size; i++) {
AUC += Corrected;
}
另外,这段代码
Corrected = ch1Buffer[i] / ch2Buffer[i];
很奇怪……你一直在循环中添加相同的值。
也许这行:u32Size
应该在 for 循环内。
顺便说一句:您将 sapply
元素分配给数组,但您只使用了其中的一半。