为了计算波形的真实RMS值,在一个半周期的周期内需要至少3个采样,采样率是频率的整数倍。因此,对于50Hz,半周期为10mSec,并且良好的最小采样率大约为400Hz,每半周期提供4个采样。对于失真波形,需要更多的采样来解释高频谐波含量。您可以使用定时器中断以精确的定时间隔采样,然后使用ADC中断来执行处理。您可以取四个10位的样本,执行快速整数乘法,并将结果加到一个最大值为4186116的长无符号整数中,但实际上对于+/-512计数的正弦波为522084。在每一个总数之后,将该值分配给另一个无符号长,然后为下一个样本集计数。在主循环中,可以取平方和的平方根为真RMS值。为了更快的处理,您可以通过右移两个位置来除以4,最大值是130521,或者用三个位置移位来除以8,最大值是65260。平方根是255,所以结果是8位精度。
为了计算波形的真实RMS值,在一个半周期的周期内需要至少3个采样,采样率是频率的整数倍。因此,对于50Hz,半周期为10mSec,并且良好的最小采样率大约为400Hz,每半周期提供4个采样。对于失真波形,需要更多的采样来解释高频谐波含量。您可以使用定时器中断以精确的定时间隔采样,然后使用ADC中断来执行处理。您可以取四个10位的样本,执行快速整数乘法,并将结果加到一个最大值为4186116的长无符号整数中,但实际上对于+/-512计数的正弦波为522084。在每一个总数之后,将该值分配给另一个无符号长,然后为下一个样本集计数。在主循环中,可以取平方和的平方根为真RMS值。为了更快的处理,您可以通过右移两个位置来除以4,最大值是130521,或者用三个位置移位来除以8,最大值是65260。平方根是255,所以结果是8位精度。
举报