SeismoRMS icon indicating copy to clipboard operation
SeismoRMS copied to clipboard

visual proof of RMS(PSD) == RMS(time domain)

Open ThomasLecocq opened this issue 5 years ago • 4 comments

@claudiodsf @FMassin @megies

should I include this ipynb that shows the correctness of the computations: ?? I mean we know it's Parsaval's identity, but still:

http://msnoise.org/tmp/Amplitude%20&%20Spectrum.html

And shows advantages:

  1. computing the PSD doesn't require pre_filtering the whole trace
  2. PSD doens't need to remove_response (ok this could be done by just tr.data / total_sensitivity, right?)
  3. RMS derived from PSD (calculated once) can be extracted for any frequency band, even wide/narrow

PS: in the example above, you'll see a ~33% noise reduction when it snows in Brussels (2 to 5cm max) and all the trafic is stopped.. Kinda matches what we see today :-)

ThomasLecocq avatar Apr 07 '20 05:04 ThomasLecocq

PSD doens't need to remove_response (ok this could be done by just tr.data / total_sensitivity, right?)

Only for the flat part of the response, but then yes. RaspiShake has ~5Hz geophones I think, though, so already there its not 100% valid if you look at 1-5Hz signal. Phase shifts also appear in the flat part but that should not matter too much in this case I guess

should I include this ipynb that shows the correctness of the computations: ?? I mean we know it's Parsaval's identity, but still:

I mean, can't hurt, I'd say

megies avatar Apr 07 '20 08:04 megies

  1. PSD doens't need to remove_response (ok this could be done by just tr.data / total_sensitivity, right?)

Well I believe this is taken care of (in frequency domain) by the PPSD init and add method (see https://github.com/obspy/obspy/blob/88687a146a7c3ca8f35c608db2243cf5fed6813c/obspy/signal/spectral_estimation.py#L973). It matters a lot so we can compare multiple stations.

FMassin avatar Apr 07 '20 08:04 FMassin

  1. PSD doens't need to remove_response (ok this could be done by just tr.data / total_sensitivity, right?)

Well I believe this is taken care of (in frequency domain) by the PPSD init and add method (see https://github.com/obspy/obspy/blob/88687a146a7c3ca8f35c608db2243cf5fed6813c/obspy/signal/spectral_estimation.py#L973). It matters a lot so we can compare multiple stations.

yes yes, sorry, thats what I meant, but it's not needed on the full 86400*sps samples like when doing the raw trace

ThomasLecocq avatar Apr 07 '20 08:04 ThomasLecocq

ok , will add some markdown to explain the different steps & why, later today

ThomasLecocq avatar Apr 07 '20 10:04 ThomasLecocq