pith. sign in

arxiv: 2604.13084 · v1 · submitted 2026-04-02 · 📡 eess.SP

Complex Orthogonal Decomposition (C.O.D.) using Python

Pith reviewed 2026-05-13 21:17 UTC · model grok-4.3

classification 📡 eess.SP
keywords Complex Orthogonal Decompositionspatio-temporal signalmode extractionwave motion analysisPython implementationphase informationsignal decomposition
0
0 comments X

The pith

Complex Orthogonal Decomposition applied to a simple spatio-temporal signal extracts its spatial and temporal modes.

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The paper shows how to apply Complex Orthogonal Decomposition to a basic oscillatory signal that varies in space and time. It supplies the underlying mathematics in two chapters and then demonstrates the procedure with Python scripts that recover the spatial shapes and time evolutions while keeping phase relations intact. A reader would care because the method works even when the spatial forms are unknown in advance, offering a direct route to modal analysis for wave-like data in signal processing.

Core claim

Complex Orthogonal Decomposition, as introduced by Feeny, decomposes a spatio-temporal signal into a set of spatial modes multiplied by complex temporal coefficients; when applied to a simple test signal the procedure isolates the dominant spatial forms and their associated oscillatory time series, with the accompanying Python examples confirming that the decomposition preserves phase information and reproduces the expected modal structure.

What carries the argument

Complex Orthogonal Decomposition (C.O.D.), a linear decomposition that produces orthogonal spatial basis functions paired with complex temporal amplitude functions to capture both amplitude and phase of wave motion.

If this is right

  • The extracted modes can be used directly for further analysis or reduced-order modeling of the signal.
  • Phase relations between different spatial locations are retained in the complex temporal coefficients.
  • The same workflow applies to other oscillatory signals whose spatial structure is not known beforehand.
  • Python implementations make the method immediately reproducible and modifiable for new data sets.

Where Pith is reading between the lines

These are editorial extensions of the paper, not claims the author makes directly.

  • The approach could be tested on measured data from vibrating structures or fluid flows to check whether the modes remain interpretable when noise is present.
  • Combining C.O.D. with standard real-valued decompositions might yield hybrid tools that handle both amplitude and phase information in one step.
  • The method's reliance on a single test signal leaves open the question of how performance scales with increasing spatial complexity or non-stationary behavior.

Load-bearing premise

The original C.O.D. procedure stays numerically stable and produces correct modes when applied to the authors' chosen simple test signal.

What would settle it

Direct comparison of the modes recovered by the Python C.O.D. code against the closed-form analytic solution for the same test signal; any systematic mismatch in spatial shapes or temporal frequencies would falsify the claim.

Figures

Figures reproduced from arXiv: 2604.13084 by Marc Vacher, Sophie Ramananarivo, St\'ephane Perrard.

Figure 1
Figure 1. Figure 1: Figure from Chen et al. [2] - Fish body wave curve: (a) Diagram of the fish body wave curve. The blue area is the outline of a BCF fish, and the red line segment is the fish body wave curve. (b)-(e) Fish body wave curves of four different species of fish. Curves of different colors represent the body midline displacement of fish at 20 equally spaced time intervals during a single tail beat cycle. Mathemati… view at source ↗
Figure 2
Figure 2. Figure 2: Spatio-temporal visualization of the surface waves [PITH_FULL_IMAGE:figures/full_fig_p012_2.png] view at source ↗
Figure 3
Figure 3. Figure 3: Time signal (left) and Fourier spectrum (right) at x = −200 mm (on the wall of the tank, antinode of oscillations for both modes) We clearly see on [PITH_FULL_IMAGE:figures/full_fig_p012_3.png] view at source ↗
Figure 4
Figure 4. Figure 4: Energy of the components λ e i (left) and corresponding oscillations amplitudes Ai (right) [PITH_FULL_IMAGE:figures/full_fig_p014_4.png] view at source ↗
Figure 5
Figure 5. Figure 5: ϕ ℜ i (x) and ϕ ℑ i (x) for i = 1 (left) and i = 2 (right) 0 2 4 6 8 10 f (Hz) 0 2 4 6 8 10 12 14 Amplitude [-] n=1 n=2 n=3 n=4 n=5 [PITH_FULL_IMAGE:figures/full_fig_p014_5.png] view at source ↗
Figure 6
Figure 6. Figure 6: Fourier spectra of the 5 first components of the C.O.D. [PITH_FULL_IMAGE:figures/full_fig_p014_6.png] view at source ↗
Figure 7
Figure 7. Figure 7: Spatio-temporal visualization of the damped waves [PITH_FULL_IMAGE:figures/full_fig_p016_7.png] view at source ↗
Figure 8
Figure 8. Figure 8: Time signal (left) and Fourier spectrum (right) at x = 10 mm 2. Some theoretical insights We compute the analytic signal using the Hilbert transform in time: sc,1(x, t) = s1(x, t) + i se1(x, t) (73) Since the Hilbert transform is not multiplicative, we must treat the damping carefully. In general: H[e −γt sin(ωt)] ̸= e −γt · H[sin(ωt)] (74) However, for "slow damping" (i.e., γ ≪ ω), we approximate: H[e −γt… view at source ↗
Figure 9
Figure 9. Figure 9: Energy of the components λ e i (left) and corresponding oscillations amplitudes Ai (right) We recover only one component with all the energy of the signal and this component has an amplitude of nearly 6. Here a verification calculus could be performed using λ 1 j = 1 T Z T 0 |a1(t)| 2 dt. (86) and link the energy to the initial value of the signal and the total time since it is an integrated quantity. Here… view at source ↗
Figure 10
Figure 10. Figure 10: Fourier spectra of the 5 first components of the C.O.D. [PITH_FULL_IMAGE:figures/full_fig_p018_10.png] view at source ↗
Figure 11
Figure 11. Figure 11: ϕ ℜ i (x) and ϕ ℑ i (x) for i = 1 We indeed recover ϕ ℜ 1 (x) = sin  2πx λ1  and ϕ ℑ 1 (x) = 0. Justification of the Approximation : Let us consider the general form: f(t) = e −γt sin(ωt) (87) The Hilbert transform is: H[f](t) = 1 π p.v. Z ∞ −∞ f(τ ) t − τ dτ (88) Although the Hilbert transform is linear, it is not multiplicative in general. However, when γ ≪ ω, the envelope changes slowly compared to t… view at source ↗
Figure 12
Figure 12. Figure 12: Comparison between approximate and exact Hilbert transform [PITH_FULL_IMAGE:figures/full_fig_p020_12.png] view at source ↗
Figure 13
Figure 13. Figure 13: Spatio-temporal visualization of the "cubic" waves [PITH_FULL_IMAGE:figures/full_fig_p021_13.png] view at source ↗
Figure 14
Figure 14. Figure 14: Time signal (left) and Fourier spectrum (right) at x = −200 mm We can clearly see on [PITH_FULL_IMAGE:figures/full_fig_p022_14.png] view at source ↗
Figure 15
Figure 15. Figure 15: Energy of the components λ e i (left) and corresponding oscillations amplitudes Ai (right) 200 150 100 50 0 50 100 150 200 x 15 10 5 0 5 10 15 Amplitude [-] real imag [PITH_FULL_IMAGE:figures/full_fig_p023_15.png] view at source ↗
Figure 16
Figure 16. Figure 16: ϕ ℜ i (x) and ϕ ℑ i (x) for i = 1 Energies and amplitudes are effectively recovered, since it is, here again, only one component. Similarly, the cubic form is recovered when looking at the spatial form on [PITH_FULL_IMAGE:figures/full_fig_p023_16.png] view at source ↗
Figure 17
Figure 17. Figure 17: Fourier spectra of the 5 first components of the C.O.D. [PITH_FULL_IMAGE:figures/full_fig_p024_17.png] view at source ↗
Figure 18
Figure 18. Figure 18: Illustration of non-uniform spatial sampling points [PITH_FULL_IMAGE:figures/full_fig_p025_18.png] view at source ↗
Figure 19
Figure 19. Figure 19: Representation of the spacing of the points on the non-uniform grid [PITH_FULL_IMAGE:figures/full_fig_p027_19.png] view at source ↗
Figure 20
Figure 20. Figure 20: Time signal (left) and Fourier spectrum (right) at x = −200 mm (on the wall of the tank, antinode of oscillations for both modes) 0 50 100 150 200 250 Component N° 10 15 10 12 10 9 10 6 10 3 10 0 10 3 Energy of Components 0 50 100 150 200 250 Component N° 0 2 4 6 8 10 12 14 Amplitude [-] [PITH_FULL_IMAGE:figures/full_fig_p028_20.png] view at source ↗
Figure 21
Figure 21. Figure 21: Energy of the components λ e i (left) and corresponding oscillations amplitudes Ai (right) in the case of non-uniform spatial grid 200 150 100 50 0 50 100 150 200 x 15 10 5 0 5 10 15 Amplitude [-] real imag 200 150 100 50 0 50 100 150 200 x 4 3 2 1 0 1 2 3 4 Amplitude [-] real imag [PITH_FULL_IMAGE:figures/full_fig_p028_21.png] view at source ↗
Figure 22
Figure 22. Figure 22: ϕ ℜ i (x) and ϕ ℑ i (x) for i = 1 (left) and i = 2 (right) in the case of a non-uniform grid 28 [PITH_FULL_IMAGE:figures/full_fig_p028_22.png] view at source ↗
Figure 23
Figure 23. Figure 23: Fourier spectra of the 5 first components of the C.O.D. (non-uniform grid) [PITH_FULL_IMAGE:figures/full_fig_p029_23.png] view at source ↗
read the original abstract

This work presents the application of the Complex Orthogonal Decomposition (C.O.D.) to a simple spatio-temporal signal. C.O.D. has been introduced rst in the article of B. Feeny, entitled "A Complex Orthogonal Decomposition for Wave Motion Analysis" [1], published in the Journal of Sound and Vibration. The purpose of this signal analysis method is to extract spatial and temporal modes out of a signal. This approach is especially suited to deal with oscillatory signals where phase information is important and where spatial forms are unknown. We provide two theoretical chapters presenting the main mathematical concepts behind C.O.D. and a series of example (with associated Python scripts) to demonstrate the e ciency of the method and some characteristical features.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, simulated authors' rebuttal, and a circularity audit. Tearing a paper down is the easy half of reading it; the pith above is the substance, this is the friction.

Referee Report

1 major / 1 minor

Summary. The paper applies the Complex Orthogonal Decomposition (C.O.D.) method originally introduced by Feeny to a simple spatio-temporal signal. It supplies two theoretical chapters on the underlying mathematics and a series of Python examples (with associated scripts) intended to demonstrate the method's efficiency in extracting spatial and temporal modes from oscillatory signals where phase information matters and spatial forms are unknown.

Significance. If the numerical outputs of the supplied scripts recover the known closed-form modes of the test signal to within discretization error, the manuscript would provide a reproducible Python implementation of an existing decomposition technique, which could be useful for researchers analyzing wave-like or phase-sensitive spatio-temporal data.

major comments (1)
  1. [Examples section] Examples section: the manuscript supplies the test signal and Python scripts but reports no quantitative validation (e.g., L2 norm between extracted spatial vectors and analytic solutions, or recovered temporal frequencies versus exact values). Without this check the central claim that the method 'demonstrates efficiency' remains unverified against possible numerical or implementation issues.
minor comments (1)
  1. [Abstract] Abstract: 'rst' should read 'first'; 'e ciency' should read 'efficiency'; 'characteristical' should read 'characteristic'.

Simulated Author's Rebuttal

1 responses · 0 unresolved

We thank the referee for the constructive comment on the need for quantitative validation. We agree that reporting explicit metrics will strengthen the manuscript and confirm the accuracy of the provided Python implementation.

read point-by-point responses
  1. Referee: [Examples section] Examples section: the manuscript supplies the test signal and Python scripts but reports no quantitative validation (e.g., L2 norm between extracted spatial vectors and analytic solutions, or recovered temporal frequencies versus exact values). Without this check the central claim that the method 'demonstrates efficiency' remains unverified against possible numerical or implementation issues.

    Authors: We agree that the manuscript currently presents only visual results from the scripts without explicit quantitative checks. In the revised version we will add L2-norm comparisons between the extracted spatial modes and the known analytic forms, as well as tables showing the recovered temporal frequencies versus the exact values. These metrics will be reported in the Examples section to verify that the decomposition recovers the modes to within discretization error and thereby substantiate the efficiency claim. revision: yes

Circularity Check

0 steps flagged

No significant circularity; method sourced from external reference

full rationale

The manuscript applies the Complex Orthogonal Decomposition procedure introduced in the external Feeny reference [1] and supplies theoretical exposition plus Python demonstrations on a chosen test signal. No core result is obtained by fitting parameters to a data subset and then relabeling the fit as a prediction, nor does any load-bearing step reduce to a self-citation chain or to a definition that presupposes the claimed output. The derivation chain therefore remains independent of the manuscript's own numerical outputs.

Axiom & Free-Parameter Ledger

0 free parameters · 0 axioms · 0 invented entities

Abstract-only review supplies no explicit free parameters, axioms, or invented entities; the method is presented as already introduced by Feeny, so the ledger remains empty pending full-text inspection.

pith-pipeline@v0.9.0 · 5422 in / 1165 out tokens · 42851 ms · 2026-05-13T21:17:22.786592+00:00 · methodology

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Lean theorems connected to this paper

Citations machine-checked in the Pith Canon. Every link opens the source theorem in the public Lean library.

What do these tags mean?
matches
The paper's claim is directly supported by a theorem in the formal canon.
supports
The theorem supports part of the paper's argument, but the paper may add assumptions or extra steps.
extends
The paper goes beyond the formal theorem; the theorem is a base layer rather than the whole result.
uses
The paper appears to rely on the theorem as machinery.
contradicts
The paper's claim conflicts with a theorem or certificate in the canon.
unclear
Pith found a possible connection, but the passage is too broad, indirect, or ambiguous to say the theorem truly supports the claim.

Reference graph

Works this paper leans on

8 extracted references · 8 canonical work pages

  1. [1]

    A complex orthogonal decomposition for wave motion analysis,

    B. F. Feeny, “A complex orthogonal decomposition for wave motion analysis, ”Journal of Sound and Vi- bration, vol. 310, pp. 77–90, Feb. 2008

  2. [2]

    Complex Modal Characteristic Analysis of a Tenseg- rity Robotic Fish’s Body Waves,

    B. Chen, J. Zhang, Q. Meng, H. Dong, and H. Jiang, “Complex Modal Characteristic Analysis of a Tenseg- rity Robotic Fish’s Body Waves, ”Biomimetics, vol. 9, p. 6, Jan. 2024

  3. [3]

    Identification of the trade- off between speed and efficiency in undulatory swimming using a bio-inspired robot,

    A. Anastasiadis, L. Paez, K. Melo, E. D. Tytell, A. J. Ijspeert, and K. Mulleners, “Identification of the trade- off between speed and efficiency in undulatory swimming using a bio-inspired robot, ”Scientific Reports, vol. 13, p. 15032, Sept. 2023

  4. [4]

    King,Hilbert Transforms

    F. King,Hilbert Transforms. Cambridge University Press, Sept. 2008

  5. [5]

    G. H. Golub and C. F. Van Loan,Matrix Computations. Johns Hopkins University Press, 4 ed., 2013

  6. [6]

    C. D. Meyer,Matrix Analysis and Applied Linear Algebra. SIAM, 2000

  7. [7]

    S. H. Lamb,Hydrodynamics. Cambridge University Press, 1945

  8. [8]

    Abramowitz and I

    M. Abramowitz and I. A. Stegun,Handbook of Mathematical Functions with Formulas, Graphs, and Math- ematical Tables, vol. 55 ofApplied Mathematics Series. Dover Publications, 9 ed., 1983. 30