빨간 부분에서 FFT(A(even))에서 재귀호출되서 계속 나누면 결국 A(enen) A(odd)가 각각 한개로 재배열 되고 그러면 for문이 계산이 안될것같은데...
이거 알고리즘 맞음? 맞는것같은데 저 빨간부분 for문이 작동이 되는지 모르겠다
빨간 부분에서 FFT(A(even))에서 재귀호출되서 계속 나누면 결국 A(enen) A(odd)가 각각 한개로 재배열 되고 그러면 for문이 계산이 안될것같은데...
이거 알고리즘 맞음? 맞는것같은데 저 빨간부분 for문이 작동이 되는지 모르겠다
If N=1 return 있자너 그경우에는 아무것도안하고돌려줌
Return값이 Y even odd로 반환되는거냐? 걍 각각의 단계에서 fft를 수행한다고 생각하면됨? 데이터 N이 반으로 짝홀로 나눠지고 그 짝홀이 다시 fft 호출되고 짝홀로 또다시 나눠지고 fft수행하고 그리고 이런식으로 재귀적으로 수행되서 버터플라이그림처럼 되는건가?
아니 맨밑에 말고 위에 길이가 1이면 그냥 아무것도안하고 돌려준다는거 있잖아 그거때문에 else문안으로 들어오지도 않고 끝나. 그래서 길이 1은 그냥두고 길이 2는 어저구저쩌구하면 대충 저거 잘정리하면 버터플라이처럼 되긴할거임
내가 그게 궁금한거임.. 길이가 2가되서 다시 재배열한다음에 길이 1로 만들고 재귀호출되면 if 문안으로 들어가서 걍 그값은 반환하는거잔아 근데 내가 코딩을 이해 못하겠는데.. 즉 길이가 2가 될때 stop하고 저장하라고 말이 없는데 근데 fft 알고리즘은 짝홀이 각각 1개씩 나눠질때부터 버터플라이 알고리즘 들어가잔아... 그러면 2가 될때 알아서 재귀호출을 중단하고 값을 저장하는거냐? 내가 제대로 교육을 못받아서 잘 모르겠다
그리고 저 알고리즘에는 비트반전이 없어서 걍 fft재귀호출이 재배열하고 나누는 과정인데 그게 계속되면 if 문안으로 결국 들어가서 끝나게 되버리는거 아님?
대략적으로 버터플라이 생각하면 이해는 간다만 저 논리대로 그대로 따라가면 걍 반환값이 안나올것같은데
C언어로 고속푸리에변환 하는거임?
여기나와있는것은 걍 pseudocode이고 c는 솔직히 능숙하지가 않아서 걍 matlab 돌려봐씀 근데 그건 무지하게 쉽더라고