频域中的RMS值ISO 10816-1

时间:2014-12-24 11:15:40

标签: matlab math octave

我需要在频域中计算Velocity RMS值。在使用带通滤波器对信号进行滤波以接收10到1 kHz频率范围内的信号并使用FFT对频谱进行计数之后,我得到了:

FFT

我已经找到了一个函数的等式RMS:

1)equation

但我不确定如何在matlab中编写它。 Parseval定理等于上面的等式1)??

来自互联网的Parseval定理代码不确定是否正确:

  

rms = sqrt(sum((abs(x)/ length(x))。^ 2));

所以我找到了旧话题,s1写了等式来计算RMS:

  

rms1 = sum(abs(FFTDATA / length(data))。^ 2)

     

rms2 = sum(abs(FFTDATA。^ 2)/ length(data))/(length(data))

     

rms1 = rms2

但是

  

RMS = SQRT(RMS1)

不确定上面的女巫rms是否等于---> 1)或其中任何一个

1 个答案:

答案 0 :(得分:0)

RMS代表均方根,因此您正在寻找在LaTeX中编写的公式,即sqrt(rms1)sqrt(rms2)rms

请注意,除非您有复杂的值,否则abs()调用无效。

Parseval's Theorem表示您可以使用变换的平方和(在频域中)来获得平方和(或积分),而不是未变换的速度(在时域中)。因此,一旦过滤了ISO 10816中的频率,就不必转换回来。

请注意,Parseval定理是关于平方的和(或积分),而不是完整的RMS(您仍需要除以T并取平方根)。这可以解释为什么各种来源有不同的代码。

简而言之:使用sqrt(rms1)

的公式
  

rms = sqrt((abs(FFTDATA)/ length(data))。^ 2);