센서에서 얻은 플로트 배열을 가지고 있으며 FFT를 통해 신호를 실행 한 후에 진폭을 얻고 싶습니다 (그 전에 샘플은 고역 통과 필터와 한 창 함수를 사용하여 처리되었습니다).1D FFT에 대한 입력
Complex[] complex = new Complex[1024];
for (int i = 0; i < 1024 - 1; i++)
{
complex[i] = new Complex(windowedSamples[i], 0);
}
FourierTransform.FFT(complex, FourierTransform.Direction.Forward);
return complex.Select(x => Math.Sqrt(Math.Sqrt(x.Re) + Math.Sqrt(x.Im))).ToArray();
나는 이상한 결과를 얻고 문제 잠금이이 실행 : 매개 변수로 나는 다음과 같은 코드를 내놓았다 한 복잡한 숫자의 배열을 AForge.Math 라이브러리 FFT 클래스를 사용
문제에.
처음 10 개의 입력 값 :
0 0 -3.8454E-05 0.0001737584 0.0006910793 0.001071334 0.00204984 0.00276812 0.001741312 0.001796867
처음 10 출력값 :
0.482303347948843 0.706458195192639 NaN가 NaN이 NaN NaN NaN NaN NaN NaN
첫 번째 추측은 상상의 부분이있을 수도 있지만 지금까지 읽은 모든 내용은이 경우 0으로 설정해야한다고 말했습니다.
이 문제를 해결하는 데 정말로 감사드립니다.
과 그 표현을 대체 원하는 경우
그것들이 긍정적 인 가치가 있다고 확신합니까? –
Gebb가 오른쪽입니다. 결과 값이 복소수의 절대 값을 계산하는 데 잘못된 방법을 사용하고 있습니다. –