저는 Numerical Recipes와 (결과를 확인하기 위해) Matlab을 사용하여 이산 푸리에 변환을 계산하고 있습니다. 실제 가치만을 가지고 일하기.Numerical Recipes에서 Matlab fft 로의 실제 푸리에 변환 구현을 비교하는 방법은 무엇입니까?
내 MATLAB 코드
in(1)=0.0;
in(2)=1.0;
in(3)=2.0;
in(4)=3.0;
in(5)=4.0;
in(6)=5.0;
in(7)=6.0;
in(8)=7.0;
out = fft(in);
나에게
out =
28.0000 + 0.0000i
-4.0000 + 9.6569i
-4.0000 + 4.0000i
-4.0000 + 1.6569i
-4.0000 + 0.0000i
-4.0000 - 1.6569i
-4.0000 - 4.0000i
-4.0000 - 9.6569i
을 제공 무엇
data
입력 내가 matlab에 같은 출력을 얻기 위해 수치 조리법
void realft(float data[], unsigned long n, int isign){...}
에 보내야 할 ? 이 NR forum 링크에서
, 내가 입력 realft
요구 한 장소를 이동하는 것을 발견, 그래서 나는 in[0] = 0
를 사용하고, 그 결과 입력 N. 요소 수가 1보다 큰
테스트 코드 :
#include <stdio.h>
#define LEN 8
int main()
{
float inout[LEN+1];
inout[0] = 0.0;
inout[1] = 0.0;
inout[2] = 1.0;
inout[3] = 2.0;
inout[4] = 3.0;
inout[5] = 4.0;
inout[6] = 5.0;
inout[7] = 6.0;
inout[8] = 7.0;
realft(inout, LEN, 1);
for(unsigned int i=0; i<LEN+1; i=i+1)
printf("%15.10f \n",inout[i]);
return 0;
}
테스트 코드에서
출력은 다음과 유사하지만 matlab에 다른
0.00000000
28.00000000
-4.00000000
-4.00000000
-9.65685463
-4.00000000
-4.00000000
-4.00000000
-1.65685427
.
realft
이 (four1
루틴을 사용) 수치 조리법에서 가져온 것입니다 :
어떻게 다릅니 까? 우리에게 [mcve]를 보여주세요. –
수정되었습니다. – Danijel
다시 편집하여 저작권 문제로 인해 코드를 삭제했습니다. – Danijel