How to find the slope of phase data (between two points) which is uneven

I have a phase vs frequency plot. I need to find the slope between point 'a' and point 'b' in an automated way instead of looking at the points 'a' and 'b' and calculating the slope. Can anyone help me with this?

 채택된 답변

You ask ONLY about the slope, not about finding a and b, so I assume you've found "a" and "b" already. So, assuming your "a" is index1 and "b" is index2, you can do this
coefficients = polyfit(x(index1):x(index2), signal(index1:index2), 1);
slope = coefficients(1);

댓글 수: 3

That's what, I have to find the points a and b in an automated way, instead of looking at the graph and figuring them out.
OK, that wasn't stated in the original question. So you can use
[peakValues, indexOfPeaks] = findpeaks(signal);
[valleyValues, indexOfValleys] = findpeaks(-signal);
valleyValues = -valleyValues; % Flip again to get right side up.
Of course you will find lots of peaks and lots of valleys so you'll have to decide which to concentrate on.
Thank you, I will try this.

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

추가 답변 (2개)

jonas
jonas 2018년 10월 12일
편집: jonas 2018년 10월 12일

0 개 추천

I would suggest using either findpeaks to determine points a and b and then calculate the average slope or alternatively using findchangepts. If you want code, then I suggest you upload some data.

댓글 수: 3

Thanks for the suggestion. I will try to find a and b using findpeaks. And is there a way to find the indexes of a,b using findpeaks function
Yes of course. The index is the second output of findpeaks. Note that you need to run the function two times, one for peaks and one for valleys. For the latter, you just turn the plot upside down, i.e.
findpeaks(-y)
Thanks, I will try this method

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

Greg Dionne
Greg Dionne 2018년 10월 26일

0 개 추천

You could try a combination of unwrap (to remove the jumps of your array) and sgolay to do the differentiation. See the second example on how to perform differentiation.

카테고리

질문:

2018년 10월 12일

답변:

2018년 10월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by