信号毛刺是生成波形时,从旧的采样切换到新采样的过程中新旧采样混合产生的干扰。如重生成模式属性设为“允许重生成”,连续生成采样时将会产生信号毛刺。当写入新的采样,但是部分新的采样在旧的采样还未完全写入时已生成,就会产生信号毛刺。写入操作完成后,只有新的采样产生。

NI-DAQmx确保写入新采样不超过采样生成,以减少生成信号毛刺的可能性。暂停写入操作直到所有生成的采样都在当前写入之前一个缓冲区的位置,通过这个方式来确保不产生信号毛刺。但是,NI-DAQmx不保证信号生成不超过写入的新采样。如发生上述情况,就会产生一个毛刺。NI-DAQmx将会报告kWarningPotentialGlitchDuringWrite警告(错误200015)。下列建议有助于避免产生信号毛刺:

  • 写入的新采样在生成的总采样的一个缓冲区位置之前。写入新采样在生成总采样的一个缓冲区之前,就能有效避免生成采样超过写入的采样。如一次性更新整个缓冲区,直到总生成采样属性比缓冲区的大小多出整数倍加1时再写入新的采样。例如,如缓冲区大小为1000个采样,等到总生成的采样为1001、2001、3001时才写入新的采样。
  • 增加缓冲区空间。如缓冲区增大,生成的采样就不会超过写入的采样。
  • 降低采样时钟率。如降低采样时钟率,生成的采样就不会超过写入的采样。

下图显示了,旧采样生成正弦波,新采样生成方波。第一个图显示有信号毛刺。



第二个图显示了同样的波形,但是没有信号毛刺。