使用滑动/移动 RMS 方法调整窗口长度以用于频率漂移

信息处理 过滤器 窗函数 自适应滤波器 测量
2022-02-18 17:58:09

我使用滑动 RMS 机制来计算信号的 RMS,即窗口大小为 N,我添加新样本的平方值x[n]减去平方值后的总和x[nN]采样,然后执行平方根以获得 RMS 值。

当问题信号中的周期值数据与窗口长度完全一致时,此方法可以正常工作。例如,

让窗口长度N=512, 信号频率f=100 Hz和采样频率fs=51200 Hz.

通过上述设置,每组 512 个样本都会有一个周期的信号数据,并且计算工作正常。 RMS 窗口中的一个完整周期

现在,当信号的频率偏离100 Hz在相同的 512 个样本窗口中给出更多或更少数量的样本,这会降低滑动 RMS 算法的准确性。 由于频率上升,在同一窗口中超过一个周期

发生这种情况是因为除以 512 来获得 RMS 不再有效,因为信号的这个特定周期在 512 个样本窗口结束之前完成。但是,运行平方总数已经具有除以 512 的先前样本的贡献,而此循环的样本将需要不同的窗口长度。

在使用这种技术时,有没有办法补偿由于频率漂移而导致的样本的添加/缺失?

1个回答

没错,当您使用此方法计算正弦曲线的 RMS 值时,它对在观察窗口中获取该正弦曲线的整数周期很敏感。我可以看到几种方法来调整您的方法:

  • 由于将完整周期纳入您的估计很重要,因此您可以添加一些对正弦曲线频率和相位的跟踪。在最复杂的实现中,这可能是一个成熟的锁相环在使用这种方法之前,我已经看到过嵌入式 RMS 测量系统。基本上,您创建一个锁定到您的输入信号的 PLL,然后使用锁定的相位和频率来确保您尽可能接近整数个周期的采样。

    一种更简单的方法如下:考虑像上面绘制的那样处理数据集。如果数据应该具有大约一个信号周期,那么您可以通过定位正弦曲线的零交叉点来获得对周期的更精细估计。一旦您估计了周期,您就可以使用该数据子集进行 RMS 计算。这可能就足够了,具体取决于您的应用程序所需的准确性。

  • 跳出框框思考:输入信号是非常纯的正弦曲线(噪声可忽略不计),并且总是显着过采样吗?您可以完全放弃 RMS 方法,只需寻找峰值幅度,然后使用它来计算正弦曲线的 RMS 电平。