DFT 또는 FFT가없는 주파수를 찾는 알고리즘이 있습니까?


34

기타 튜너의 Android 앱 스토어에서 찾고있었습니다. 다른 앱보다 빠르다고 주장하는 튜너 앱을 발견했습니다. 그것은 DFT를 사용하지 않고 주파수를 찾을 수 있다고 주장했다.

나는 이것을 들어 본 적이 없다. DFT 또는 FFT 알고리즘을 사용하지 않고 오디오 신호를 획득하고 주파수를 계산할 수 있습니까?

답변:


29

FFT는 실제로 튜너를 만드는 좋은 방법이 아닙니다. FFT는 본질적으로 유한 주파수 분해능을 가지고 있으며 시간 창을 매우 길게 만들지 않으면 서 매우 작은 주파수 변화를 감지하기가 쉽지 않으므로 시간이 오래 걸리지 않습니다.

더 나은 솔루션은 위상 잠금 루프 , 지연 잠금 루프 , 자동 상관 관계, 제로 크로싱 감지 및 추적, 최대 또는 최소 감지 및 추적 및 이러한 방법의 지능적인 조합을 기반으로 할 수 있습니다.

전처리가 항상 도움이됩니다.


5
FFT가 작은 주파수 변화를 감지 할 수 있는지 여부는 길이에 고유 한 것이 아니라 신호 대 잡음비에 따라 다릅니다. 잡음과 간섭이 충분히 낮 으면 FFT 결과의 보간이 서브 빈 단일 주파수 분해능을 쉽게 생성 할 수 있습니다.
hotpaw2 2019

이와 캔 누군가의 도움이 나를 : - stackoverflow.com/questions/42359344/...
dreamBegin

12

FFT는 음악 피치와 다른 스펙트럼 주파수 피크 또는 피크 (FFT 빈 크기로 정량화)를보고합니다. 인식 된 피치 주파수가 FFT 스펙트럼에서 완전히 누락 될 수 있습니다.

가장 간단한 기타 튜너 중 일부는 저역 통과 또는 대역 통과 필터링을 사용하고 제로 크로싱 사이의 시간을 측정했습니다. 역수는 주파수 추정치를 제공합니다.

자기 상관은 또 다른 일반적인 피치 추정 방법입니다. 슬라이딩 상관 관계 또는 기타 자기 유사성 측정에는 슬라이딩 ASDF (제곱 차이), AMDF (평균 차이), 비선형 패턴 정합 기, 제한된 범위의 지연에 대해서만 적응 검사, 지연 보간, 윈도 잉 및 적응 형 윈도우 선택, 다양한 가중치 또는 다수의 잠재적 지연 기록 시퀀스 중에서 선택하기위한 결정 이론 사용 등

다른 가능성으로는 PLL, 필터링 된 직교 복조기, 필터링 된 힐버트 변환 등이 있습니다.

그러나 일부 DSP 필터링 및 복조 방법은 계산에 따라 윈도우 DFT의 1-bin을 수행하는 것과 거의 동일하므로 질문에 대한 답변으로 적합하지 않을 수 있습니다.


8

피치 감지는 다양하고 호기심 많은 방법으로 수행 할 수 있습니다. 이를 수행하는 한 가지 방법은 autocorrelation 을 사용하는 것입니다 . 이 백서 는 사용 방법의 예를 제공합니다. 1 비트 상관기를 사용하여 자기 상관을 엄청나게 간단하게 만들 수 있습니다 (어떤 이유로 든 적절한 논문을 찾을 수 없음). 따라서 이론적 으로 FFT보다 피치 더 빨리 감지 수 있지만 실제로는 사전 처리를 하지 않으면 훨씬 정확할 것 입니다.


링크가 끊어진 것 같아요?
Spacey

아니요, 모든 작품입니다. 방금 확인했습니다.
Phonon

7

알고리즘 적으로 정의 된 힐버트-허앙 변환 ( Hilbert-Huang Transform , HHT)도 살펴보십시오 . 어플리케이션과 관련 될 수있는 비 정지 비선형 신호를 처리 할 수 ​​있습니다.


그것은 당신에게 푸리에 분해를 제공하지 않고 순간 주파수 분해를 제공하지만, 그것을 찾았을 때 아주 보석이었습니다 .
Spacey

대부분의 실제 신호는 다소 비정상적입니다. 즉, 진폭과 주파수가 약간 다릅니다. HHT는 이러한 변화에 덜 민감하므로 부품이 근본적인 물리적 현상과 더 밀접한 관련이있는보다 자연스러운 방식으로 그러한 신호를 분해합니다.
Nordlöw



2

실제로 자기 상관 행렬의 고유 벡터를 보는 의사 스펙트럼을 사용하여 신호의 주파수를 계산할 수 있습니다. 기본적으로 신호를 노이즈 및 신호 하위 공간으로 분해합니다. 거기에서 스펙트럼을 찾을 수 있습니다. (이를 제한하고 확인할 주파수 범위를 지정할 수도 있습니다). 또한 소음이 거의 없습니다. 물론 이것은 DFT와 같은 비 파라 메트릭 방법이 아닌 파라 메트릭 방법입니다.


분명히 이것은 FFT를 사용합니까? mathworks.com/help/toolbox/signal/ref/peig.html
endolith

1
@endolith FFT를 사용하지 않고도 계산할 수 있습니다. 상관 행렬에서 고유 벡터를 얻은 다음 노이즈 부분 공간을 얻습니다. 그런 다음 투영 할 고유 주파수 벡터를 구성 할 수 있으므로 FFT를 사용하지 않습니다.
Spacey

1

그것은 당신이 그것을 처리하고 싶은 플랫폼에 달려 있습니다. 간단한 회로가 필요하다면 신호를 게인으로 블라스팅하고 구형파로 바꾸고 타이머를 사용하여 마이크로 컨트롤러로주기를 측정하는 것이 좋습니다.

그러나 신호 처리를 좋아한다면 MUSIC 방법을 확인하십시오.

http://en.wikipedia.org/wiki/Multiple_signal_classification

그것이 도움이되기를 바랍니다.


0

DFT / FFT를 사용하지 않는 많은 피치 추정 방법이 있으며 MUSIC 방법을 포함하여 그 중 일부가이 백서에 나열되어 있습니다. https://ieeexplore.ieee.org/abstract/document/6521410/ 이 백서 의 시뮬레이션 결과 기본 주파수가 매우 낮을 때 정확한 NLS 방법이 나열된 것보다 다른 것보다 뛰어납니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.