Compute RMS of a frequency band from the frequency spectrum.
function RmsOfSpectrum(const Amplt: TVec; SpectrumType: TSpectrumType; SpcTypeAdjust: boolean = True; Index: integer = 0; Len: integer = -1): double; overload;
Compute RMS value from the frequency spectrum instead from the time signal. Amplt contains the amplitude spectrum and SpectrumType defines the type of the amplitude spectrum. The RMS is computed from values from Index to Index+Len of the Amplt vector. This function allows computing an estimate of the RMS within a specified frequency band. RMS estimates made from frequency spectrum are not very accurate. The main reason for this is spectral leakage. While according to the Parsevals theorem, the RMS of the time signal is equal to the RMS of a frequency spectrum, this relation does not hold as soon as ones tries to compute the RMS of a subband. But this value, although not exactly a true RMS, may still serve its purpose to detect changes within specific frequency bands. The routine does not take in to account the amount of zero padding applied. If SpcTypeAdjust is True then the value of the RMS will be adjusted to compensate for the SpectrumType other then spAmplt.
Copyright (c) 1999-2025 by Dew Research. All rights reserved.
|
What do you think about this topic? Send feedback!
|