피크 검출기
- 업데이트 날짜:2025-07-30
- 4분 (읽기 시간)
입력 신호에서 위치, 진폭, 피크 또는 밸리의 2차 도함수를 찾습니다.

입력/출력
X
—
X는 분석할 신호를 나타내는 입력값의 배열입니다. 데이터는 단일 배열 또는 연속적인 데이터 블록이 될 수 있습니다. 연속적인 데이터 블록은 많은 데이터 배열 또는 리얼타임 처리에 유용합니다. 리얼타임 처리에서, 피크/밸리는 대략적으로 폭/2 데이터 포인트가 피크 또는 밸리를 넘었을 때까지 검출하지 않습니다.
임계점
—
임계점은 VI가 너무 작은 피크와 밸리를 무시하도록 지시합니다. 진폭이 임계점보다 낮은 경우 VI는 피크를 무시합니다. 만일 골이 임계점보다 높다면 VI는 밸리를 무시합니다.
폭
—
폭은 2차 최소제곱 찾기에 사용할 연속적인 데이터 포인트 수를 지정합니다. 폭은 3보다 크거나 같은 값으로 강제 변환됩니다. 값은 임계점 위 피크 폭의 약1/2 또는 임계점 아래 밸리 폭의 약 2/1보다 크면 안되고 노이즈 없는 데이터의 경우 훨씬 작을 수 있습니다(하지만 2보다는 커야함). 넓은 폭은 외관상의 피크 진폭을 줄일 수 있고 외관상의 위치를 옮길수 있습니다. 노이즈가 있는 데이터는 노이즈가 실제 피크를 흐리게 하므로 이 변경이 중요하지 않습니다. 이상적으로, 폭은 되도록 작아야 하지만 반드시 노이즈로 인한 피크 검출 실패의 가능성도 고려하여 균형이 잡혀야 합니다.
피크/밸리
—
피크/밸리는 입력 신호에서 피크를 찾을 것인지 밸리를 찾을 것인지를 지정합니다.
초기화(참)
—
초기화는, 참으로 설정될 때, 첫번째 데이터 블록의 처리를 지정합니다. VI는 적합한 연산을 위해서 초기에 몇몇 내부 설정을 요구합니다. 하나의 데이터 블록만을 처리할 경우, 초기화를 연결하지 않거나, 또는 기본 상태를 참으로 설정하십시오. 연속적인 데이터 블록을 처리할 경우, 첫번째 블록에 대한 초기화를 참으로 설정하고 모든 다른 데이터 블록을 거짓으로 설정하십시오.
데이터의 끝(참)
—
데이터의 끝은, 참으로 설정할 때, 마지막 데이터 블록의 처리를 지정합니다. 마지막 데이터 블록을 처리한 후, VI는 내부 데이터를 관리합니다. 하나의 데이터 블록만을 처리하고자 할 경우, 데이터의 끝을 연결하지 않거나, 또는 기본 상태를 참으로 설정하십시오. 연속적인 데이터 블록을 처리하고자 할 경우, 마지막 데이터 블록을 제외한 모든 데이터 블록에 대해서 데이터의 끝을 거짓으로 설정하십시오.
발견된 개수
—
발견된 개수는 현재 데이터 블록에서 발견한 피크/밸리의 개수입니다. 발견된 개수는 위치, 진폭, 그리고 2차 도함수 배열의 크기입니다.
위치
—
위치는 현재 데이터 블록에서 발견한 모든 피크 또는 밸리의 인덱스 위치를 가집니다. 피크 검출 알고리즘은 피크를 찾기 위해서 2차 피팅을 사용하기 때문에, 실제로 데이터 포인트간의 보간을 합니다. 그러므로, 인덱스는 정수가 아닙니다. 바꾸어 말하면, 발견된 피크가 반드시 입력 데이터의 실제 포인트는 아니며 입력 배열에서 발견되지 않은 인덱스의 부분과 진폭에 있을 수 있습니다. 시간에 대한 위치를 보려면, 다음의 방정식을 사용하십시오. 시간 위치[i] = t0 + dt*위치[i]
진폭
—
진폭은 현재 데이터 블록에서 발견한 피크 또는 밸리의 진폭을 가집니다. 노트 다이나믹 범위가 크고 노이즈가 있는 신호에서 위치와 진폭은 실제 피크 또는 밸리와 다를 수 있습니다.
2차 도함수
—
2차 도함수는 현재 데이터 블록에서 발견한 개별 피크 또는 밸리에 대한 진폭의 2차 도함수의 측정을 넘겨줍니다. 2차 도함수는 각 피크 또는 밸리의 가파름에 대한 대략적인 측정을 넘겨줍니다. 피크를 검출한 경우, 이 값들은 모두 음수입니다. 밸리를 검출한 경우, 이 값들은 모두 양수입니다.
노트 샘플간의 시간 차인 dt는 1과 동일한 것으로 가정합니다.
에러
—
에러는 VI로부터 모든 에러 또는 경고를 반환합니다. 에러를 [에러 코드를 에러 클러스터로] VI에 연결하여 에러 코드 또는 경고를 에러 클러스터로 변환할 수 있습니다. |
데이터 세트는 하나의 배열 또는 연속적인 데이터의 블록으로 [피크 검출기] VI에 전달될 수 있습니다.
이 [피크 검출기] VI는 2차 다항식을 연속적인 데이터 포인트의 그룹에 피팅하는 알고리즘을 바탕으로 합니다. 피팅에 사용되는 데이터 포인트의 개수는 폭으로 지정됩니다.
각 피크 또는 밸리에 대해, 2차 피팅은 임계점에 대해 테스트됩니다. 임계점보다 낮은 높이를 가진 피크 또는 임계점보다 높은 골을 가진 밸리는 무시됩니다. VI가 피크 또는 밸리의 위치를 넘어 약 폭/2 데이터 포인트를 처리한 후에만 피크와 밸리가 검출됩니다. 이러한 지연은 리얼타임 처리의 경우에만 의미를 가집니다.
VI가 초기화되고 내부 데이터를 피크 검출 알고리즘에 보낼수 있도록 언제 첫번째와 마지막 블록이 VI에 전달되었는지 반드시 [피크 검출기] VI에 통보되어야 합니다.
LabVIEW를 사용한 피크 검출에 대한 더 자세한 정보는 ni.com에서 다음 관련 문서를 참조하십시오.
예제
LabVIEW 포함되는 다음 예제 파일을 참조하십시오.
- labview\examples\Signal Processing\Signal Operation\Peak Detection and Display.vi
X
—
임계점
—
폭
—
피크/밸리
—
초기화(참)
—
발견된 개수
—
위치
—