Fast Fourier transform: Difference between revisions
Content added Content deleted
m (→Recursive) |
|||
Line 2,643: | Line 2,643: | ||
{{out}} |
{{out}} |
||
<pre>[4.0000000000000000000000000000000000000, 1.0000000000000000000000000000000000000 - 2.4142135623730950488016887242096980786*I, 0.E-37 + 0.E-38*I, 1.0000000000000000000000000000000000000 - 0.41421356237309504880168872420969807856*I, 0.E-38 + 0.E-37*I, 0.99999999999999999999999999999999999997 + 0.41421356237309504880168872420969807860*I, 4.701977403289150032 E-38 + 0.E-38*I, 0.99999999999999999999999999999999999991 + 2.4142135623730950488016887242096980785*I]</pre> |
<pre>[4.0000000000000000000000000000000000000, 1.0000000000000000000000000000000000000 - 2.4142135623730950488016887242096980786*I, 0.E-37 + 0.E-38*I, 1.0000000000000000000000000000000000000 - 0.41421356237309504880168872420969807856*I, 0.E-38 + 0.E-37*I, 0.99999999999999999999999999999999999997 + 0.41421356237309504880168872420969807860*I, 4.701977403289150032 E-38 + 0.E-38*I, 0.99999999999999999999999999999999999991 + 2.4142135623730950488016887242096980785*I]</pre> |
||
differently, and even with "graphics" |
|||
<lang parigp>install( FFTinit, Lp ); |
|||
install( FFT, GG ); |
|||
k = 7; N = 2 ^ k; |
|||
CIRC = FFTinit(k); |
|||
v = vector( N, i, 3 * sin( 1 * i*2*Pi/N) + sin( 33 *i*2*Pi/N) ); |
|||
w = FFT(v, CIRC); |
|||
\\print("Signal"); |
|||
\\plot( i = 1, N, v[ floor(i) ] ); |
|||
print("Spectrum"); |
|||
plot( i = 1, N / 2 , abs( w[floor(i)] ) * 2 / N );</lang> |
|||
{{out}} |
|||
<pre>Spectrum |
|||
3 |"'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''| |
|||
|: | |
|||
|: | |
|||
|: | |
|||
|: | |
|||
|: | |
|||
|: | |
|||
|: | |
|||
|: | |
|||
|: | |
|||
|: | |
|||
: : | |
|||
: : | |
|||
: : | |
|||
: : x | |
|||
: : : | |
|||
: : : | |
|||
: : : | |
|||
: : : : | |
|||
: : : : | |
|||
: : : : | |
|||
0 _,_______________________________,______________________________ |
|||
1 64</pre> |
|||
=={{header|Pascal}}== |
=={{header|Pascal}}== |