잘 아는 분야가 아니라 이해도도 떨어지는데 영어 논문이라 눈에 바로 들어오지도 않아 천천히 정리하고 논문에서 모르거나 많이 설명하지 않고 넘어가는 부분은 추가로 적어가며 정리해보려고 한다.
개론
기존의 유명한 pitch detection인 Classic Autocorrelation 방법을 제시하고, 이것의 오류를 분석한 다음 이것의 오류점들을 개선한 것이 YIN 알고리즘.
YIN이란게 동양의 음과 양, autocorrelation과 cancellation간의 상호작용에서 착안했다.
1. Autocorrelation
Discret signal의 ACF는 이렇게 표현된다.
근데 신호처리에서는 이 식을 많이 씀. r이 커질수록 window 크기가 줄고, 함수의 envelop이 준다.
envelop은 이것!
두 식은 t+1 - t+W 사이에 있으면 동일하지만, 그렇지 않으면 다름. 이 논문에서는 다른말 없으면 대체로 첫번쨰 식 씀.
주기적 신호의 응답으로, ACF는 주기의 배수에서 peak가 뜸. Autocorrelation method는 lag 범위 내에서 가장 높은 zero-lag 피크를 고르는 방법임.
[추가 공부]
신호의 autocorrelation을 구할떄, 원 신호와, delayed, or shifted된 신호와 비교한다. lag는 기존 신호와 비교하기 전에 signal이 얼마나 이동(shifted)했는지를 의미한다.
lower limit이 너무 작으면 zero-lag peak를 고를 가능성이 높아지고, higher limit이 너무 높으면 higher order peak를 고를 가능성이 높아짐.
[추가공부]
higher order peak는 더 긴 delay, shift 에 존재하는 피크를 의미한다. 대체로는 zero-lag peak가 제일 높지만, 때떄로 더 높은 lag에서 추가적인 peak가 존재할수 있음. 따라서 lag를 너무 길게 잡으면 이런 higher order peak를 골라버리는 위험이?!