How do I stack 10 shots from seismic source to produce a resultant signature with greater signal/noise ratio?

This bolt gun signal (attached) shoots a seismic source every ten seconds. You can see the signature dramatically changes as the ship passes over the geophones. How do I stack the shots fired in this interval to produce a new signal with a greater signal to noise ratio?

1 Comment

Hi David Norris
The spectral contents is way above 1Hz, and the signal processing has to be focused where the signal spectrum present, not where it's absent.
Would you please be so kind to comment my answer?
Appreciating time and attention
John BG

Sign in to comment.

 Accepted Answer

What result do you want? You already seem to have removed the 0.1 Hz bolt gun signal, since it does not appear in your Fourier transformed signal (at least that I can see).
I would just use a filter (highpass, lowpass, bandpass or bandstop) to pass your frequencies-of-interest, eliminating everything else. The signals from the ship appear to have a frequency range of about 0.8 to 1.2 Hz, so filtering those in or out — depending on what you want — would likely be easiest.

5 Comments

I haven't used a filter at this point. This is the raw signal and it's frequency content and phase. What I need to do is sum the shots that pass over the recorder and average them to produce a new signal that have a greater SNR.
I believe you want to do something like ‘ensemble averaging’. One way would be to use the Signal Processing Toolbox findpeaks (link) function to identify the peaks of your time-domain signal (after filtering to get rid of the ship noise), then proceed from there. Another function that could be useful is buffer (link), and could be more applicable if your bolt gun signals are always regularly-spaced.
I am unfamiliar with what you’re doing, so I have no further suggestions.
I appreciate the help! Thanks a lot and I shall look into it!
My pleasure!
This is a common technique in biomedical signal processing.
"To David Norris, would you please be so kind to comment and confirm that you have marked Star Strider's answer as the accepted answer?"
See the 7th item on this screen snapshot from the Activity log. Times are UTC. You can examine the entry yourself at https://www.mathworks.com/matlabcentral/answers/activities?s_tid=gn_mlc_ans_rec. The relative position will have changed by the time you look, but with the time information you should be able to locate it.

Sign in to comment.

More Answers (1)

Hi David Norris
Calculate the average pulse repetition with a squelch and then chop the input signal so that you only have 1 pulse per segment of input signal.
As a reference;
in the expanded specs one reads
gap-free, dynamically overlapping FFT
Apply FFT to each segment (AKA the time sliding window).
The window can be sliding or shift at known intervals, if the pulse repetition is well known and fairly constant.
Then you can also filter each segment containing a single signal pulse, not the whole raw input, as you have done for the attached picture in the question, showing the spectrum of 20 pulses.
Calculate the SNR of only one pulse, then noise from other segments now does not contribute to each processed pulse.
If you filter with such fixed and very low cut off filters you may lose the data of interest that seems to happen between seconds 100 to 300, right? actually you don't need Low Pass Filtering but Band Pass Filtering, where is the DC anyway?
If you attach the signal or part of it to your question interested readers may like to have a go on the data? if you send me a sample by email I will see what I can do.
David
To any other reader, if you find this answer useful please consider clicking on the thumbs-up vote link
thanks in advance for time and attention
John BG

Categories

Asked:

on 15 Jan 2018

Edited:

on 17 Jan 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!