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
참고 항목
카테고리
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!