필터 지우기
필터 지우기

How to measure overlap area of peaks from different signals

조회 수: 4 (최근 30일)
Wenlong
Wenlong 2014년 8월 6일
댓글: Star Strider 2014년 8월 7일
Hi All, I wonder if there is a simple way to solve the following problem. There are two time-series signals S1 and S2 from two sensors and the signals were collected by the same frequency and time scale. If there are n peaks in S1 and m peaks in S2, how much area of peaks in S1 is overlapped with peaks in S2? Thanks in advance! Wenlong
  댓글 수: 1
Sara
Sara 2014년 8월 6일
Can you provide an example of your signal an indicate what you mean?

댓글을 달려면 로그인하십시오.

채택된 답변

Star Strider
Star Strider 2014년 8월 6일
I’m not quite certain what you want, but if you want the total overlap of the peak areas, use trapz (or cumtrapz) and subtract:
% Create Data:
pk = @(m,s,x) exp(-(x-m).^2./s); % Create peaks with centre=m, width=s
x= linspace(0,20);
s1 = pk(5,2,x) + pk(11,3,x) + pk(17,2,x);
s2 = pk(7,2,x) + pk(12,2,x) + pk(15,2,x);
% Integrate, Then Subtract:
Is1 = cumtrapz(x,s1);
Is2 = cumtrapz(x,s2);
Isd = Is1 - Is2;
figure(3)
plot(x,Isd)
grid
The final value of ‘Isd’ is the difference in the areas of the peaks between the two data vectors, ‘s1’ and ‘s2’.
Is this what you want to do?
  댓글 수: 4
Wenlong
Wenlong 2014년 8월 7일
Thanks! Star.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh 2014년 8월 6일
Hi Wenlong,
You didn't explain the problem in detail, so you probably looking for an idea.
What I understood and I would do is:
1- Define what's the accepted signal level as a peak (you may wanna use FWHM or any preferred definition), lets call it "threshold".
2- peakAreaS1 = S1 > threshold;
3- peakAreaS3 = S2 > threshold;
4 - overlapedArea = peakAreaS1 & peakAreaS2;
Hopefully this is a good enough hint.
Good luck!

카테고리

Help CenterFile Exchange에서 Get Started with DSP System Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by