usgs / groundmotion-processing

Parsing and processing ground motion data
Other
54 stars 41 forks source link

Hard cap on lowpass_max_frequency #1039

Closed emthompson-usgs closed 1 year ago

emthompson-usgs commented 1 year ago

Problem

Current, the lowpass_max_frequency is parameterized as a fraction of the Nyquist (named fn_fac). But a recent event demonstrated a problem that can come up with this approach. Assuming we have a high sample rate instrument (sps=200 Hz) and that we have good signal to noise ratio to very high frequencies, then the corner for the lowpass filter can end up much higher than is necessary (e.g., 150 Hz for a fn_fac=0.75, the default). This allows for nearby transient high frequency noise (e.g., mechanical or electrical) to contaminate the record.

Proposed solution

Add an argument of fmax to the lowpass_max_frequency function and give it a default value of 40 Hz. My understanding is that this is already done by the NSMP processing software PRISM.

steidljh commented 1 year ago

Yes, PRISM has a default value of 80% of the Nyquist, but not to exceed 40Hz. This solution would have worked for this problem. Just to be clear, in the example above where you have sps=200, the lowpass filter would not be 150 Hz. The Nyquist for a 200 sps record would be 100 Hz, and thus your default of 0.75 100 Hz would be 75 Hz, not 150 Hz. If you are using 75% of the sample rate as the default factor in gmprocess, this would be incorrect, as you would be above the nyquist and have no spectral information that high. Either way, in the case of the recent problem even 75 Hz would be too high to get rid of this 60 Hz noise problem. I also notice that when you plot the spectrum in the gmprocess plots, you plot it all the way to 100 Hz, where you can clearly see the datalogger anti-alias filter kick in at 0.8 fn (80 Hz). I would not be trying to fit anything in the spectrum above 80% of the Nyquist.