2012-01-16 4 views
2

저는 FFT 개념의 초보자입니다. 그래서 제가 이해할 수있는 것은 1024 신호를 넣으면, 0hz에서 22050Hz (44100Hz 샘플링 속도의 경우)까지 513 빈을 얻을 수 있다는 것입니다. Cinder에서 KISS FFT를 사용하면 getBinSize 함수는 1024 개의 신호를 입력 할 때 예상되는 513 값을 반환합니다. 내가 이해할 수없는 것은 왜 중복 봉우리가 나타나는지입니다. 20Hz ~ 22000Hz의 주파수 (순서대로)를 통과하는 테스트 오디오 샘플을 실행하면 전체 시간에 두 개의 피크가 나타납니다. 그것은 다음과 같은 :KISS FFT 플롯에서 y 축에 미러링 된 피크가 중복되는 이유는 무엇입니까?

__ _ __ | __ _ __ _ __ | 는 __ _ __ 오디오 재생으로

, 피크 그래서 두 번째 피크가 정말 처음의 미러 중복 된 것으로 보인다 서로를 향해 이동하는 것처럼 보인다. 내가 겪어 본 모든 예는 모든 513 값을 계획하고있는 것처럼 보이며 미러링 문제가없는 것처럼 보입니다. 내가 뭘 놓쳤는 지 잘 모르겠다.

+0

각각과 0 사이에 음수를 붙인 신호를 시도해 보라. (즉, 1,0, -1,0, 1,0, -1,0, ...) 실제 길이가 1024 인 FFT의 경우 out [255] (256 번째 빈)에 단일 피크를 제공해야합니다. –

+0

감사 마크. 나는 그것을했고 그것은 256 번째 빈에서 하나의 최고점을 주었지만 그게 무슨 뜻인지는 잘 모르겠습니다. 1024 신호의 입력 블록이있는 오디오 트랙에서 왜 미러링 된 것처럼 보이지만이 구성된 신호가 아닌지 이해할 수 있습니까? – geranyl

답변

4

확인의 길이 어떻게 든 것을입니다. 미러링의 이유는 실수 (실제 FFT)에 FFT를 사용하기 때문입니다. 모든 사람들이 알고있는 정규 FFT는 복소수에서 작동합니다. 따라서 허수 부는 실제 FFT에서 "0"으로 설정되어 중간 주위에서 미러링됩니다 (또는 기술적으로 미러링은 0과 N/2 정도입니다). -이 책에 242 http://www.edaboard.com/thread144315.html

및 P에게 238을 읽어 여기에

는 자세한 설명입니다. 환상적이어서 구입하십시오. 나는 저자 웹 사이트에 무료 pdf 버전이 있다고 생각한다 : http://www.dspguide.com/

1

1024 길이 FFT의 모든 1024 FFT 결과 빈의 크기를 플로팅 할 수 있지만, 위의 절반은 복잡한 절반의 실제 이미지만으로는 충분하지 않습니다 상반부를 유일하게 만드는 자유도).

중심점을 중심으로 서로 대칭이되면 피크가 서로를 향해 이동합니다.

또 다른 가능성은 내가 해결책을 발견이에 독서 후 FFT는 만 512

+0

입력 길이와 출력을 모두 확인했습니다. 나는 1024를 입력하고 513을 되 찾는다. 513 값을 플로팅하면 미러링 된 이미지가 표시되므로 어떤 일이 발생하는지 이해할 수 없습니다. – geranyl