2013-02-06 3 views
0

Android 앱에서 가속도계 신호에서 FFT를 수행하기 위해 Libgdx 라이브러리를 사용하고 있습니다.FFT 전후의 신호 정규화의 차이점은 무엇입니까?

는 내가 두 신호의 내적을 찾을 수 있기 때문에 내 신호 정규화가 필요하고 나는 그것의 최대 값을 원하는 1. "정상화"와

나는 유클리드 규범 신호의 1 것을 의미 (유클리드 표준은 벡터의 아날로그 구성 요소 곱의 제곱근입니다. 그 값을 찾았 으면 정규화 신호에 대해 벡터의 모든 구성 요소를 표준 값으로 나눕니다).

도트 생성물이 주파수 스펙트럼에 있으므로, 시간 영역에서 신호를 정규화하면 주파수 스펙트럼 표현이 정규화되지 않고 다음에 유클리드 정규화를 다시 수행합니다. (나는 이미 FFT를 1/N 스케일 인수으로 정규화 한 것으로 생각합니다. 아마도 제 문제에는 영향을 미치지 않을 것 같습니다).

FFT 전후에 유클리드 정규화를 수행하면 어떤 차이가 있습니까? 아니면 FFT 이후에만합니까?

편집 1 : Libgdx 라이브러리의 FFT가 복소수 DFT이고 출력 신호가 0에서 (N/2) -1 및 N/2에서 N까지 대칭 인 것보다 입력에서 실제 신호가 있다고 생각하십시오. 필자는 해밍의 창과 같은 창을 적용하지 않으면 Parseval의 정리가 검증되는지 확인합니다. 신호의 N/2-1 구성 요소에 0을 사용하면 0과 1 사이의 내적을 얻을 수 있습니까?

+1

대신이 질문을 http://dsp.stackexchange.com/에서 요청하십시오.신호 처리 분야에서 일하는 많은 사람들이 있습니다 –

+1

1. 푸리에 변환은 선형이고 2. parseval의 정리입니다. – thang

+0

일부 FFT 구현은 1/N, 일부 1/sqrt (N) 및 일부 1.0 (IFFT에 1/N 적용)의 배율 인수를 적용한다는 점에 유의하십시오. 이 정보는 라이브러리의 문서에있을 수 있습니다. – hotpaw2

답변

2

흠, 아무도 대답하지 않는 것 같습니다. 이유는 모르겠지만 간단히 말해 보겠습니다.

f [n]을 신호라고하고, F [k]를 푸리에 변환 된 버전 (분명히 이산)이라고합시다.

norm(f[n]) = (1/N) norm(F[k]) 

N 샘플의 수입니다 : Parseval's theorem으로

, 우리는 가지고있다. 푸리에 변환의 동질성에 의해, g [n] = a f [n]이면, G [k] = a F [k].

마지막으로, 규범을 얻기 위해,이 두 가지를 결합하는 것은 (F [K]) 1로, 당신이해야 할 일을 분열입니다 :

(1)  norm(F[k]) = N norm(f[n]) 

어느 시간이나 주파수 영역이다.

(2)  norm(f[n]) = (1/N) norm(F[k]) 

그리고 마지막으로 : 내가 할 경우 차이가 있습니다

마찬가지로,이 규범을 원하는 경우 (F [N]) 1이 될, 당신이해야 할 것은으로 나누기입니다 FFT 전후의 유클리드 정규화, 아니면 FFT 이후에만합니까?

푸리에 변환이 선형이므로 (균질성 유지) 이전이나 이후로 나눌 지 여부가 달라지지 않습니다. 그러나, 시간 영역에서 norm이 1이되도록하려면 (2)에서 상수를 사용해야합니다. 반면에, 주파수 도메인이 1의 표준을 가지게하려면 (1)에서 상수를 사용해야합니다.

+0

답변을 주셔서 감사합니다. 그러나 제가 찾고 있던 것이 적절하지 않습니다. FFT 알고리즘의 정규화 요소에 대한 명확한 스키마를 제안했지만, 시간 표현 전에, 그리고 주파수 표현 후에, 신호에 적용된 유클리드 기준의 정규화의 영향을 이해하고자합니다. 예를 들어, FFT 알고리즘 대신 고전적인 DFT 변환을 사용하면 1/N 요소 (또는 유사)가 필요하지 않지만 "유클리드 정규화"는 항상 수행해야합니다. – Gabrer

+1

@robott, 실제로 나는 그 대답이 당신이 찾고있는 것과 정확히 같다고 생각합니다 : 나는 당신이 Parseval 링크를 따라갈 것으로 예상했습니다. 당신이 말하는 유클리드 표준은 더 일반적으로 L2 표준이라고 불립니다. Parseval의 정리에 따르면 L2 표준은 푸리에 변환에 의해 보존됩니다 (이산 FT에서는 상수 1/N 요소까지). 그리고 그 이유는 제가 대답에서 말한 것입니다 : * 당신이 앞이나 뒤에 나누 든 상관없이 (당신의 라이브러리에 의해 이미 끝났을 수도있는 상수 요소를 설명 할 수 있다면) 차이점을 만들지 않습니다. 이 혼란을 명확히하기 위해 대답을 업데이트하겠습니다. – thang