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).

enter image description here


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.

  • 1
    $\begingroup$ What is known about the pulses ahead of time? Do you know their (at least approximate) frequency? Duration? Are they modulated or CW? $\endgroup$
    – Jason R
    Commented May 4, 2012 at 16:09
  • $\begingroup$ @JasonR I have edited to answer your qs. As far as modulation, they are just repeating CW pulses. $\endgroup$
    – Spacey
    Commented May 4, 2012 at 16:23
  • $\begingroup$ Which axis is time and which is frequency? $\endgroup$ Commented May 4, 2012 at 18:59
  • $\begingroup$ Look up papers on S-transforms (a series of papers by Robert Stockwell). It's a slightly improved formulation of the Gabor filter (I forget what exactly it was — perhaps an explicit, exact inverse?). There are applications of this in de-noising signals. If you found them useful, I can write a short answer on it $\endgroup$ Commented May 7, 2012 at 21:57
  • $\begingroup$ @yoda Thanks for the info - I have looked at the paper(s) and they do seem like they might be useful, as they seem to be related to the CWT, and so, play the time-resolution/frequency-resolution game. Yes, I would welcome an answer on it. Thanks. $\endgroup$
    – Spacey
    Commented May 8, 2012 at 16:24

2 Answers 2


From a purely engineering POV, the obvious solution to "locking on" to that pulse would be a Phase Locked Loop (PLL).

A PLL is just a free-running oscillator whose frequency can be adjusted based on the perceived phase relationship to another signal. If the other signal is pure noise or pulses at an entirely different frequency then the phase relationship will be random and the oscillator will not be adjusted much either direction (and will continue to "free run"). However, if there is a signal, even a relatively noisy one, that is running at about the same frequency as the oscillator, the PLL's phase sensor will detect this and adjust the oscillator frequency to match the other signal. Of course, this assumes the match is halfway close to start with. (One problem -- though also a useful feature -- of PLLs is that they will happily latch on to harmonics or subharmonics of the target signal, if the initial frequency mismatch is too large.)

I've never used PLLs in my own work, but the term's been around for about 40 years (the concept since the 30s, at least), and there are pre-built PLLs available as individual ICs or single-card modules. There are also "digital PLLs" that mimic the analog concept using digital components. (This is about the extent of my knowledge, but there are easily 100 references found by Google.)

  • $\begingroup$ Thank you Daniel. Hmm, while I can understand the concept here, I am not sure how exactly you would apply a PPL here. Certainly not in the time-domain. Are you suggesting applying a family of PPLs across many of the rows here? $\endgroup$
    – Spacey
    Commented May 4, 2012 at 18:53
  • $\begingroup$ Basically, you'd have a PLL fed by a signal that measures the signal strength of a band roughly centered on your frequency of interest, perhaps roughly approximating a spectral flux measure. Worst case you might have to try several PLLs, each "listening to" a different slice of your overall spectrum. But with proper filtering (eliminate the lower rate noise, eg) that probably wouldn't be necessary. $\endgroup$ Commented May 4, 2012 at 20:07
  • $\begingroup$ Interesting. I suppose it is analogous to looking at the DFT of each row here. $\endgroup$
    – Spacey
    Commented May 4, 2012 at 20:16
  • $\begingroup$ Somewhat. From an image processing point of view, spectral flux would be like taking a copy of the image, shifting horizontally a small amount, and subtracting one image from the other. This is an "edge detection" technique used in optical recognition systems. $\endgroup$ Commented May 4, 2012 at 20:42

I don't have experience in this area but I see that it has been studied: Minimum entropy approach to denoising time-frequency distributions

In this paper, we introduce an entropy based approach to denoising time-frequency distributions. This new approach uses the spectrogram decomposition of time-frequency kernels proposed by Cunningham and Williams. In order to denoise the time-frequency distribution, we combine those spectrograms with smallest entropy values, thus ensuring that each spectrogram is well concentrated on the time-frequency plane and contains as little noise as possible. Renyi entropy is used as the measure to quantify the complexity of each spectrogram. The threshold for the number of spectrograms to combine is chosen adaptively based on the tradeoff between entropy and variance.

Essentially your problem is one of signal/source separation; the additive unmixing of a bunch of structured signals. In order to proceed you need to model your signals. Obviously the one of interest is periodic and is centered about some frequency, so you need to estimate the period (along the x axis) and the center frequency (on the y axis). Then you can characterize the others (noise). For starters, it seems that they come in nice curves.

With a model in hand I would consult a book like Handbook of Blind Source Separation: Independent Component Analysis and Applications.

  • $\begingroup$ Thank you. I will have to buy the book, it looks good. One question, as far as BSS goes, is it not required that there be multiple sensors for BSS to work? In this case I have 1 sensor only. Over what criteria are signals separated with one sensor only? $\endgroup$
    – Spacey
    Commented May 4, 2012 at 16:06
  • $\begingroup$ No, but it helps. The common assumption is that the source signals themselves are uncorrelated, though this can be relaxed too. $\endgroup$
    – Emre
    Commented May 17, 2012 at 2:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.