how to make an envelope of a signal?
11 ビュー (過去 30 日間)
古いコメントを表示
He,
I have some trouble with making an envelope of a noisy signal with Matlab. Is there some function to do this?
0 件のコメント
回答 (3 件)
Image Analyst
2012 年 3 月 12 日
Try morphological dilation and erosion - they're the local max and min. Use imdilate and imerode if you have the image processing toolbox.
numberOfSamples = 200;
t = linspace(0, 4*pi, numberOfSamples);
decay = exp(-t);
y = 10 .* sin(t) .* exp(-t) + rand(1, numberOfSamples);
plot(t, y, 'r-');
grid on;
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
upperEnvelope = imdilate(y, true(1, 9));
lowerEnvelope = imerode(y, true(1, 9));
hold on;
plot(t, upperEnvelope, 'b-', 'LineWidth', 2);
plot(t, lowerEnvelope, 'b-', 'LineWidth', 2);
Or try this File Exchange submission: http://www.mathworks.com/matlabcentral/fileexchange/27662-evolve-top-and-bottom-envelopes-for-time-signals-i-e
0 件のコメント
Andrei Bobrov
2012 年 3 月 12 日
Use rand, randn, etc.
eg
x = linspace(0,2*pi,300);
sx = sin(x);
out = sx + .2*(2*rand(size(x)) - 1);
plot(x,sx,'b.',x,out,'r*'); grid on
2 件のコメント
sunil kalyankar
2018 年 3 月 26 日
i have data in time domain envelope analysis pls help me in writing matlab code pls pls
Image Analyst
2018 年 3 月 26 日
There are now boundary() and envelope() functions in MATLAB. Try them.
参考
カテゴリ
Help Center および File Exchange で Multirate Signal Processing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!