I am wondering what techniques might be available for 'de-noising' the following example time-frequency image that was created using Welch's method. The following plot was created from a robotic sensor. (This is NOT a color image - it is a greyscale image - colors added for visual purposes only).
Goal:
My goal ultimately is to estimate the pulse-spacings that you see here, should such pulses exist. This might be somewhat of a chicken and egg, so to this end, I ask myself, "Do pulses of this rep-rate +/- 10% exist?", and go about detecting them. What you are seeing here is the signal (pulses), but along with other un-wanted interference. However as Emre has suggested, they have structure, albeit in the Time-Frequency space. Do time-frequency filters as such exist?
I would strongly like to see image processing solutions applied here, but am open to any solution.
Thus: The goal is to remove all the high intensity signals except the repetitive pulses (found near index 300 on the y-axis) as can be seen. All the other high intensity signals can be regarded as 'interference'.
Assumptions you may make:
You may assume that you roughly know the pulse lengths that you are seeing here. (Let us say, within +/- 10%). Put another way, you have decided to look for pulses of this length. (+/-)
You may assume that you also roughly know the rep rates of the pulses, (again, let us say +/- 10%).
Unfortunately you do not know their frequency any more accurately. That is to say, in this image the pulses are at 300, but they could have just as easily been at 100, or 50, or 489, or whatever. However, the good news is that those frequencies shown here are very close to one another, on the order of say, 10's of Hz).
Some thoughts of mine:
Image processing POV:
Morphological operations have occurred to me, however I am not too familiar with those to know if they might work or not. I suppose the idea might be to 'close' and hence remove the 'bigger' stains?
Row-wize DFT operations might indicate which rows to null out, based on the rows of interest having the highest repetitive pattern, however it might not be a viable solution if the pulses are few and far between, or if image is more noisy.
Just by looking at the image, you almost want to 'reward' isolation, and 'punish' connectivity. Is there an image processing method(s) that accomplish this sort of operation? (Morphological in nature again).
What methods might help here?
Signal processing POV:
The frequency range shown here is already extremely tight so I am not sure notch filtering operations will help. Moreover, the exact frequency of the pulses shown within this tight range is not known a-priori.
By making educated guesses on the pulses of interest here, (their lengths, and repetition times) might I be able to compute the 2-dimensional DFT of my 'template', and utilize this as a 2-D cepstral-temporal filter to which I simply multiply the Welch image shown above by, and then perform an inverse 2-D DFT?
OTOH perhaps would Gabor filters be a good match here? After all, they are orientation sensitive filters, similar to our own built in V1 visual processors. How might they be exploited here?
What methods might help in this domain?
Thanks in advance.