MATLAB에서 피크를 감지하는 방법

MATLAB은 신호 처리 및 분석에 사용할 수있는 기술 소프트웨어 패키지입니다. 신호 분석의 일반적인 절차는 잡음이있는 신호 내에서 피크 감지 또는 인접 데이터 포인트보다 큰 값을 찾는 것입니다. 일반적으로 피크 감지를 특정 너비 (신호가 시간 영역에있을 때 지속 시간)의 로컬 최대 값과 특정 높이 또는 크기로 제한해야합니다.

1 단계

데이터를 MATLAB으로 가져 와서 데이터 소스를 정의합니다. 예를 들어 랜덤 노이즈가있는 사인파를 만듭니다.

my_signal = sin (0 : 0.1 : 10) + rand (1,101);

2 단계

"findpeaks ()"의 2 차 보간 방법을 사용하여 신호의 피크를 찾습니다.

[피크 _ 값, 피크 _ 위치] = findpeaks (my_signal);

3 단계

"minpeakheight"매개 변수를 사용하여 최소 높이의 피크를 검색합니다. 높이는 허용 가능한 피크의 최소 데이터 값을 나타내는 실수 값 스칼라입니다.

[피크 _ 값, 피크 _ 위치] = findpeaks (my_signal, 'minpeakheight', 2.5);

4 단계

"minpeakdistance"매개 변수를 사용하여 최소 거리로 분리 된 피크를 검색합니다. 값은 "my_signal"벡터에서 피크 사이의 최소 인덱스 수이며 정수 여야합니다.

[피크 _ 값, 피크 _ 위치] = findpeaks (my_signal, 'minpeakdistance', 5);

5 단계

"threshold"매개 변수를 사용하여 특정 임계 값 이상의 피크 만 검색합니다. 이것은 피크와 인접 데이터 포인트 간의 허용 가능한 최소 차이를 나타내는 실수 값 스칼라입니다.

[피크 _ 값, 피크 _ 위치] = findpeaks (my_signal, 'threshold', 0.5);

6 단계

"npeaks"매개 변수를 사용하여 특정 수의 피크 만 찾습니다. 값은 정수 여야합니다.

[피크 _ 값, 피크 _ 위치] = findpeaks (my_signal, 'npeaks', 5);

"sortstr"매개 변수를 사용하여 반환 된 피크 목록을 정렬합니다. 허용되는 값은 "ascend", "descend"및 "none"입니다.

[피크 _ 값, 피크 _ 위치] = findpeaks (my_signal, 'sortstr', 'ascend');