2011-01-31 6 views
4

FFTW 사용 정규화 된 .wav 파일 데이터의 FFT를 계산했습니다. 그러나 나는 FFT 출력을 어떻게 정규화해야하는지 혼란 스럽다. 나는 가장 높은 FFT 크기로 나누는 것인데 나에게 명백한 것처럼 보이는 방법을 사용 해왔다. 그러나 1/N과 N/2로 나눗셈을 보았습니다 (여기서 N = FFT 크기라고 가정). 이것들이 정상화 요인으로 어떻게 작용합니까? 이 요인들과 실제 데이터 사이에 직관적 인 관계가있는 것 같지 않습니다. 그래서 나는 무엇을 놓치고 있습니까?정규화 FFT 데이터 (FFTW)

큰 도움에 감사드립니다.

답변

5

놀랍게도 적어도 스케일링에 관한 한 FFT와 IFFT에 대한 합의 된 정의는 하나도 없지만 FFTW를 비롯한 대부분의 구현에서 앞으로의 방향으로 1/N 크기로 조정해야하며 반대 방향으로 스케일링이 없습니다.

일반적으로 (성능상의 이유로)이 스케일링 계수를 A/D 게인, 윈도우 게인 보정 계수 등과 같은 다른 보정과 함께 사용하여 적용 할 결합 계수를 하나만 갖기를 원할 것입니다 FFT 출력 빈에 연결합니다. 또는 dB 단위의 파워 스펙트럼을 생성하는 경우, 파워 스펙트럼 빈에서 빼는 단일 dB 값으로 교정 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 저는 DSP를 처음 접했고 수학적 배경이 부족하여 오해를하게 만들었지 만 '정규화'를 통해 데이터 집합에 몇 가지 요소를 곱하여 두 번째 데이터를 산출하는 과정을 이해합니다. 0과 1 사이의 간격 내에 놓여 있습니다. 이것이 제가 자동으로 가장 큰 크기를 선택했기 때문입니다. 하지만 1/N '을 곱하면 그 의미에서 FFT 데이터를 정상화하는 방법을 알지 못합니다 ... 아니면 내가 모든 것을 오해하고 있습니까? – ChrisM

+1

@ChrisM : FFT의 가장 일반적인 해석을 위해 입력 신호가 0..1 범위에 있으면 출력 값 범위는 0..N입니다. 즉, N의 배율 인수가 있습니다. 어떤 감각) 출력 데이터를 1/N으로 곱해야합니다. –

+1

나는 그것이 사실이라고 생각했다. 도와 주셔서 대단히 감사합니다. – ChrisM

3

FFT에서 Parseval's Theorem을 참조하는 것이 유용하고 의미있는 크기가 필요한 다른 비교가 종종 유용합니다. 또한 개별 피크의 높이는별로 유용하지 않으며, 예를 들어 FFT 계산에 사용 된 창에 따라 달라 지므로 피크가 짧아지고 넓어 질 수 있습니다. 이러한 이유로 최대의 피크로 정규화하지 말고 의미있는 크기에 쉽게 연결할 수 있으며 데이터 세트 등을 쉽게 비교할 수 있습니다.

+0

감사합니다. Tom, 유용한 정보. – ChrisM