I have several signals that consist of repetitive units. In the figure you'll clearly see the variability of the signals, that increases top down. The first signal is super repetitive and units are indicated with green lines. In the third, you'll see peaks and in the middle a little insertion that I know consists of rather diverging units, which still are units however (red lines). The remaining three signals display the variation more.

Which signal processing / machine learning tool should I use in order to detect these units? With thresholding it works to find the significant peaks, but once signals get funky it's really difficult to accurately detect unit positions.

enter image description here Edit:

I made some progress with spectral analysis and plotted a filtered signal over the initial signals. Indicated by the blue arrow is a region variable repeats. Here, the amplitude of the original and filtered signal do not match. Same for the red arrow. Similar effects for signal further down.enter image description here

  • $\begingroup$ What is the data and what are you trying to get out of it? The period? The start time of each "unit"? Are the units something you know in advance but don't know where they are? Autocorrelation will show you the periodicity, but since the periodicity changes over time, you probably want to divide up the signal into chunks and do autocorrelation on each one ("short-time autocorrelation"?) $\endgroup$ – endolith Mar 25 '15 at 0:09
  • $\begingroup$ This is a representation of protein sequences that have repetitive units. I aim to detect the start positions of these units. Units can vary in lengths. It's extremely difficult to find a way to detect unit variations from sequence / the profile I sent. I'll have a look into the short time fourier / autocorrelation concept. Thanks! $\endgroup$ – El Dude Mar 25 '15 at 0:14
  • $\begingroup$ Can you post the example data in some form? $\endgroup$ – endolith Mar 25 '15 at 0:45
  • $\begingroup$ Does the "start position" always have a peak like you've shown? $\endgroup$ – endolith Mar 25 '15 at 0:58
  • $\begingroup$ no, the peak of unit #1 can be weaker than the one of #2. How can I append data to posts here? $\endgroup$ – El Dude Mar 25 '15 at 1:02

Your repetitive signal seem to be in a lower rate than the noise. I would run an FFT (why short) on all 6 sequences and filter out (zero) the frequencies that are clearly attributed to noise and then run an inverse FFT. If you know the repetition rate you might select the one frequency that has the correct information and use the phase information to locate the desired pick. I will try to include exactly 20 cycles if possible (or 16 or 32).


ok, what I would do is, first take an autocorrelation of the give signal. you get the peaks(due to similar signal element overlap), find the time period by seeing the time scale difference of similar peaks.use the corresponding frequency to filter out the different signals. does that help?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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