Fast Fourier transform: Difference between revisions
Content added Content deleted
MaiconSoft (talk | contribs) (Added Delphi example) |
|||
Line 708: | Line 708: | ||
even = fft(Array.new(x.size // 2) { |k| x[2 * k] }) |
even = fft(Array.new(x.size // 2) { |k| x[2 * k] }) |
||
odd = fft(Array.new(x.size // 2) { |k| x[2 * k + 1] }) |
odd = fft(Array.new(x.size // 2) { |k| x[2 * k + 1] }) |
||
c = Array.new(x.size // 2) { |k| (-2 * Math::PI * k / x.size).i |
c = Array.new(x.size // 2) { |k| Math.exp((-2 * Math::PI * k / x.size).i) } |
||
codd = Array.new(x.size // 2) { |k| c[k] * odd[k] } |
codd = Array.new(x.size // 2) { |k| c[k] * odd[k] } |
||
return Array.new(x.size // 2) { |k| even[k] + codd[k] } + Array.new(x.size // 2) { |k| even[k] - codd[k] } |
return Array.new(x.size // 2) { |k| even[k] + codd[k] } + Array.new(x.size // 2) { |k| even[k] - codd[k] } |