You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* For n = 0 (elements i = 0,1) the twiddle factor is +1, so
256
+
* In the following loop, we handle harmonic `n = 0` for every transform. As described for `iptr`, the input array is interpreted as a three-dimensional array, containing two "rows" per sub-sequence.
264
257
*
265
-
* E₀ = ½(row0 + row1) and O₀ = ½(row0 − row1)
258
+
* row0 = even + odd (j = 0)
259
+
* row1 = even - odd (j = 1)
266
260
*
267
-
* The forward radix-2 butterfly stores two **columns**:
261
+
* For a radix-2 forward FFT of a real-valued signal `x` and `n = 0`,
// When `M` is odd, there is no Nyquist pair to process, and, thus, the central element is purely real and was handled in the very first butterfly, so we do not need to perform any further transformations...
333
+
// When `M` is odd, there is no Nyquist pair to process, so we do not need to perform any further transformations...
327
334
if(M%2===1){
328
335
return;
329
336
}
330
337
}
331
-
/*
338
+
/**
332
339
* Lastly, handle the Nyquist frequency where `i = M-1` (i.e., the last element of each sub-sequence).
333
340
*
334
341
* When `M` is even, the Nyquist index is `i = M/2`. In this stage, we've stored that element at the end of each sub-sequence (i.e., `i = M-1` in the packed layout).
335
342
*
336
-
* At this point, FIXME: ????
343
+
* At this point, the cosine term is -1 and the sine term is 0, so the twiddle multiplication collapses to simple addition/subtraction.
0 commit comments