How do I use a loop to remove all of the noise signal segments?

3 次查看(过去 30 天)
So there is a signal that has 0.5 secs of silence, followed by 1 sec worth of noise, another 0.5 secs of silence, and 1 sec sine wave starting at 100Hz. This pattern continues until the sine wave reaches 1000Hz. I need to use a loop to remove the noises and silence to preserve the sine waves segments. Any tips on how I can do this? Thank you!
  4 个评论
dpb
dpb 2021-12-6
If you want somebody to play with your signal, make it easy for them...attach a .mat file with some sample data; don't expect somebody else to try to reproduce your data for you....

请先登录,再进行评论。

回答(1 个)

Chunru
Chunru 2021-12-7
load signal
% detect the env
y = sqrt(2)* movstd(x, [200 200]);
figure
plot(x); hold on
plot(y)
% extract signal
z = x(y>0.8);
figure
spectrogram(z, 2048, 1024)

类别

Help CenterFile Exchange 中查找有关 Signal Processing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by