나는 소리 (기타 피치)의 주파수를 감지하기 위해 FFT 알고리즘을 사용했으며 컴퓨터에서 sinosoidal 사운드를 재생할 때 훌륭하게 작동하지만 완벽하게 평가할 것입니다. 기타를 사용할 때 완벽하지 않습니다. 피치 주파수를 더 정확하게 추정하는 방법은 무엇입니까? 더 정확한 FFT (이미) 결과를 기반으로 기타 피치 주파수를 추정하십시오.
double[] spectrum = FourierTransform.Spectrum(ref sampleBuffer);//spectrum contains data from FFT
double frequency = indexOfMax(spectrum) * 16000/500; //sampling rate/FFT size
//indexOfMax just finds the index of the maximum element in the array
내가 사용의 사인 파도 생성하려면 : 단지 스펙트럼 배열에서 최대 값을 찾는 파도 이런 종류의 큰 일
http://www.audiocheck.net/audiofrequencysignalgenerator_sinetone.php와 요새를,하지만 난 더 나은 방법을 찾고 있어요.
가 samplerate와 FFT 크기가 기타에서 나오는에서 동일 :
문제에 켑 스트 럼 접근에이 게시물에서보세요? –
제 추측으로는 실제로 기타 피치와 주파수 피크가 아니라 음악 피치 주파수와 매우 다를 수 있습니다 (일부 n 배음 등이 될 수 있음) – hotpaw2
@ hotpaw2 예, 기타 피치를 찾고 있습니다! :) – Yoda