Way to filter out a portion of a time domain signal when its amplitude drops below a certain value?

1 次查看(过去 30 天)
Is there any way to filter a time domain signal such that portions of the signal, where the amplitude drops below a certain level, are ignored?
In the attached image, the real parts of two complex signals are plotted against time. I essentially need to ignore the portions of the signal where the amplitude of the peaks are less than 1E-7 and the troughs are greater than -1E-7 since they are causing phase jumps when I subsequently unwrap the complex signal.
Many Thanks.
  2 个评论
jgg
jgg 2016-2-28
If your signal is s couldn't you just do:
incl_idx = (abs(s) < 1e-7);
s = s(incl_idx);
Then you get a new, truncated signal. For instance:
s = rand(1000,1);
inclu_idx = (s < 0.5);
s = s(inclu_idx );
John BG
John BG 2016-2-29
do you really mean 'clipping' what you really want to do to this signal?
holding x>1e-7 right on 1e-7 as long as signal above 1e-7 and anything below -1e-7 remains -1e-7 while signal below threshold?
If you really remove the samples out of [-1e-7 1e7] you will shrink the signal.
if so, clipping so low may cause more phase jumps than without clipping.
Why don't you hang the data in a file so readers can use the sample directly?
John

请先登录,再进行评论。

回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by