FOURIER in Collabora Office: Complex Arrays, Direction and Scaling
Calculate a discrete Fourier transform with original real and complex examples, inverse checks, polar thresholds and exact Linux desktop source scope.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: =FOURIER(A2:A5;TRUE()) transforms the real sequence 2, 1, 0, ā1 into complex pairs (2,0), (2,ā2), (2,0), (2,2). The forward transform is unnormalized; the inverse divides by the sequence length. A sign or scale mistake can therefore produce a plausible-looking but incorrect spectrum.
Syntax and data layout
=FOURIER(Array; GroupedByColumns [; Inverse [; Polar [; MinimumMagnitude]]])
The official FOURIER reference describes numeric complex samples as a real/imaginary pair of columns or rows. With GroupedByColumns TRUE, each row is one sample: first column real, second imaginary. A single column means purely real input. With FALSE, the first row supplies real parts and an optional second row supplies imaginary parts.
Inverse defaults to FALSE. Polar defaults to FALSE, giving real and imaginary components. With Polar TRUE, the two output components are magnitude and phase. MinimumMagnitude defaults to zero and suppresses sufficiently small polar components; it is not a filter applied to the original samples.
The exact evaluator and FFT implementation transpose row-grouped input internally and construct N rows by two columns of output, regardless of input grouping. Do not assume row-grouped input produces a two-row result. Phase is calculated with atan2 and is in radians. A single complex sample is a supported special case, but a useful transform example should exercise more than that identity case.
Worked example: a real four-sample signal
Enter this complete input grid:
| Cell | Value |
|---|---|
| A1 | Sample |
| A2 | 2 |
| A3 | 1 |
| A4 | 0 |
| A5 | ā1 |
Use =FOURIER(A2:A5;TRUE();FALSE();FALSE()) in a separate output region. Expected output, with frequency index k starting at zero:
| k | Real | Imaginary |
|---|---|---|
| 0 | 2 | 0 |
| 1 | 2 | ā2 |
| 2 | 2 | 0 |
| 3 | 2 | 2 |
The independent definition is X[k] = sum of x[n] Ć exp(ā2Ļi k n/N). For k=1, the four contributions are 2, āi, 0 and āi, yielding 2ā2i. The zero-frequency value is the sample sum, 2, not its mean 0.5. Divide the DC component by N if you need the mean.
As a second check, the time-domain squared magnitudes total 2²+1²+0²+(ā1)² = 6. Frequency-domain squared magnitudes total 4+8+4+8 = 24; dividing by N=4 gives the same 6. This Parseval check catches an accidental normalization change.
Inverse and genuinely complex controls
If the expected spectrum above occupies D2:E5 as numeric real/imaginary columns, =FOURIER(D2:E5;TRUE();TRUE();FALSE()) should return (2,0), (1,0), (0,0), (ā1,0). The independent inverse uses the positive exponent and divides by four. Do not feed magnitude/phase pairs to that call: the input interpretation remains real/imaginary even when Polar was used for an earlier output.
A more demanding control is:
| Row | G: real | H: imaginary |
|---|---|---|
| 2 | 1 | 2 |
| 3 | 3 | ā1 |
| 4 | ā2 | 0.5 |
| 5 | 4 | 3 |
=FOURIER(G2:H5;TRUE()) independently yields (6,4.5), (ā1,2.5), (ā8,0.5), (7,0.5). Applying the inverse to those rectangular pairs recovers all four original complex samples. This tests both components rather than relying only on real-input conjugate symmetry.
Polar suppression and non-power-of-two lengths
For the first real fixture, =FOURIER(A2:A5;TRUE();FALSE();TRUE();2.5) has expected polar pairs (0,0), (2.828427125,ā0.785398163), (0,0), (2.828427125,0.785398163). The two magnitude-2 components fall below 2.5. A suppressed phase of zero does not mean the original component had phase zero; the component was intentionally removed.
The implementation compares the computed magnitude with the threshold, so borderline equality is sensitive to floating-point rounding. Thresholding happens before inverse normalization in the inspected implementation. Avoid assuming that an inverse polar threshold applies to the final scaled magnitude.
Lengths need not be powers of two: the source includes a Bluestein path. With real values 1,2,4 in J2:J4, =FOURIER(J2:J4;TRUE()) independently gives (7,0), (ā2,1.732050808), (ā2,ā1.732050808). This is a length-three transform, not implicit padding to four samples.
Troubleshooting and limits
More than two component columns when column-grouped, or more than two component rows when row-grouped, is rejected by the inspected evaluator. A nonnumeric input matrix is rejected too. Keep headers outside the range and do not assume text numerals or blanks are converted into zero. Exact localized error presentation has not been tested.
Output bins have index k; the function does not know the sampling interval. For uniformly spaced samples with spacing Īt, the standard bin spacing is 1/(NĪt). Frequencies above the halfway bin represent the negative-frequency side in the usual ordering. That interpretation assumes uniformly sampled data; irregular timestamps are not repaired by FOURIER.
Small residual imaginary values near zero are normal numerical artifacts. A large discrepancy, incorrect phase sign or inverse scaled by N usually indicates layout, direction or normalization confusion. IMABS works with complex-number text representations; FOURIER’s two numeric columns are a different representation and should not be silently interchanged.
Product scope and verification
This guide covers the new Collabora Office desktop for Linux, identified by Flathub source tag coda-26.04.4.3-1 and commit 81339d176148d0d5c81ff05d82540f58f8aaa117. The desktop release notes and Linux package manifest establish the product mapping. The manifest is a dated source observation from October 18, 2026, not verification of an installed binary.
Versioned vendor Help, exact-commit registrations and evaluator code were reviewed on October 18, 2026. All numerical outputs in this guide are independently calculated expectations, not native Collabora observations. No Collabora application was run and no application screenshot is presented. Source availability does not establish identical Classic, Online/CODE, Windows, macOS or mobile behavior. First introduction and retirement dates are not established; no deprecation claim is made.
Examples use English names and semicolon separators. Adapt separators to the workbook’s formula settings. Array results describe mathematical/evaluator output, not a tested spill, selection or keyboard-entry procedure. The documented extension function is outside standard OpenFormula 1.3; workbook portability and file-format round trips require separate checks.