2016-07-27 46 views
0

我使用Teensy3.1以50KHz采样率录制音频。我使用AnalogRead功能来对模拟引脚进行采样。读数值应该在0到1024之间。Arduino AnalogRead每两个样本返回0

然而,在记录数据后,我发现每100个样本有一个小读数(例如0.019)。这可能是什么原因?我抽样太快了吗?

任何反馈非常感谢。

+0

当您播放时,它实际上是否会发生声音失真? –

+0

@ IgnacioVazquez-Abrams感谢您的回复。它被扭曲了。但是如果没有奇怪的ZERO读数,我可以告诉其他部分数据的形状看起来是正确的。不明白为什么数据序列总是以相同的超小值插入(例如0.019)。 – Foreverniu

回答

0

我想出了这个问题,这就产生了另一个需要解决的问题。

较早的问题是由于在通过RXTX读取Java中的串行端口时使用Buffer而造成的。我将缓冲区大小设置为1024.因此,每次数据流在每个缓冲区的末尾和下一个缓冲区的开始处都会中断。例如。 449.00分成三行,分别为4,49,.00。

一个简单的解决方法是增加缓冲区大小并在每个缓冲区的末尾和开始处抛出数据。有没有更好的方法来解决这个问题?

感谢。