Fast Fourier transform: Difference between revisions
Content added Content deleted
m (→Recursive) |
|||
Line 2,736: | Line 2,736: | ||
O : table ; |
O : table ; |
||
Odds : table ; |
Odds : table ; |
||
T : complex ; |
|||
⚫ | |||
BEGIN |
BEGIN |
||
Line 2,751: | Line 2,750: | ||
SetLength ( E, halfN ) ; |
SetLength ( E, halfN ) ; |
||
SetLength ( O, halfN ) ; |
SetLength ( O, halfN ) ; |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
SetLength ( Even, halfN ) ; |
SetLength ( Even, halfN ) ; |
||
⚫ | |||
⚫ | |||
SetLength ( Odds, halfN ) ; |
SetLength ( Odds, halfN ) ; |
||
⚫ | |||
⚫ | |||
⚫ | |||
Odds := FFT ( O ) ; |
Odds := FFT ( O ) ; |
||
⚫ | |||
⚫ | |||
SetLength ( O , 0 ) ; |
SetLength ( O , 0 ) ; |
||
SetLength ( |
SetLength ( L, N ) ; |
||
⚫ | |||
SetLength ( T, halfN ) ; |
|||
FOR k := 0 to halfN - 1 DO |
FOR k := 0 to halfN - 1 DO |
||
BEGIN |
BEGIN |
||
T |
T := Cexp ( -2 * i * pi * k / N ) * Odds [ k ]; |
||
L [ k ] := Even [ k ] + T ; |
|||
L [ k + halfN ] := Even [ k ] - T ; |
|||
END ; |
END ; |
||
SetLength ( T , 0 ) ; |
|||
SetLength ( Even, 0 ) ; |
SetLength ( Even, 0 ) ; |
||
SetLength ( Odds, 0 ) ; |
SetLength ( Odds, 0 ) ; |
||
FFT := |
FFT := L ; |
||
⚫ | |||
END ; |
END ; |
||
Line 2,833: | Line 2,828: | ||
</lang> |
</lang> |
||
JPD 2021/12/ |
JPD 2021/12/26 |
||
=={{header|Perl}}== |
=={{header|Perl}}== |