2012-05-30 6 views
3

os x에 대한 빈도 분석의 예를 찾고 있습니다. 나는 오디오 샘플의 FFT를 계산해야한다는 것을 이해한다. 나는 수행의 FFT에 대한 애플의 웹 사이트에서 코드 예제를 가지고 :veclib을 사용하는 OS X의 빈도 분석

http://developer.apple.com/library/mac/#featuredarticles/AccelerateFrameworkData/_index.html

을하지만, 내가 실수 부와 허수 구성 요소는 주파수 및 진폭 요소로 변환하는 방법을 설명 어떤 예제를 찾고 있어요. 나는 주파수를 계산하려고하는 아주 단순한 음색을 가지고있다. ,

magnitude = sqrt(re[i]*re[i] + im[i]*im[i]); 

주파수가 빈 인덱스 관련이 난 :

freq = i * Fs/N; 

F는

답변

2

는 FFT 후에는 크기 각각의 복잡한 출력 함를 취할 필요 = 샘플 속도 (Hz), N = FFT 크기.

단일 톤을 찾고 있다면 가장 큰 빈 인덱스를 찾은 다음 위의 공식을 사용하여이 인덱스를 빈도로 변환하십시오. bin 인덱스는 1에서 N/2-1까지만 확인하면됩니다.

+0

좋습니다. 크기는 0에서 1까지의 척도입니까? 아니면 데시벨과 같은 권력이나 압력의 표현일까요? – kernelK

+1

당신이 찾고있는 것이 모두 최고점이기 때문에 크기의 척도는이 맥락에서 그다지 중요하지 않습니다. 일반적으로 크기 1의 입력 신호에 대해 FFT 빈 크기는 N의 값을 가지며, 여기서 N은 FFT의 크기입니다. 실제 가치에 대해 신경 쓰면 일반적으로 1/N을 기준으로이를 보정합니다. 또한 FFT를 수행하기 전에 창 함수를 적용해야합니다. –

1

각 FFT 빈의 중심 주파수는 Paul R이 대답했습니다. 그러나 분석하려는 오디오의 정확한 주파수는 FFT 빈의 중심에 있지 않을 수도 있습니다. 그래서 대신 FFT를 사용하는 주파수 추정 알고리즘이나 음악 또는 음성이 포함 된 오디오의 경우 주파수 추정과 다른 피치 검출/추정 방법을 사용할 수 있습니다.