CP Decomposition
Why Tensors Beat Matrices in Array Processing
Most classical array methods, including the covariance-based subspace techniques, work on two-way data: a snapshot matrix of element outputs versus time. Collapsing the data into a single matrix discards structure. When the same wavefronts are observed across several diversity dimensions at once (multiple subarrays, polarizations, frequency bins, or coherent processing intervals), the measurements naturally form a three-way or higher tensor, and CP decomposition is the tool that exploits that structure. Each source contributes one rank-one term whose factor vectors are exactly the source's signature along each mode. Because the decomposition is essentially unique under mild conditions, those signatures come out cleanly separated, even when the underlying steering vectors are not orthogonal and even when there are more sources than a single dimension could resolve alone.
The contrast with the MUSIC subspace approach is the crux. A matrix SVD is only unique up to an arbitrary rotation of its singular vectors, so it can return any orthogonal mixture of the true components. The CP model has no such rotational freedom: once Kruskal's inequality on the Kruskal ranks of the factor matrices is satisfied, the rank-one terms are pinned down up to trivial scaling and reordering. This is the mathematical reason a CP-based estimator can read physical angles directly off the spatial factor matrix rather than performing a 2-D spectral search, and it underlies modern multidimensional ESPRIT-style and PARAFAC-DOA algorithms.
The cost is conditioning sensitivity. When two sources have nearly collinear signatures in every mode, the CP fit becomes ill-posed and alternating least squares can stall in long swamps where the error barely changes for many iterations. Practical implementations guard against this with line-search acceleration, good algebraic initialization, and a model-order check so the assumed rank R matches the data.
Governing Equations
Xijk ≈ ∑r=1R air × bjr × ckr
Outer-product form:
X ≈ ∑r=1R ar ° br ° cr
Matricized (mode-1) form via Khatri-Rao product (⊙):
X(1) ≈ A (C ⊙ B)T
Kruskal uniqueness condition:
kA + kB + kC ≥ 2R + 2
Where R = tensor rank (number of sources), ar, br, cr = factor vectors along each mode, k(·) = Kruskal rank of each factor matrix. Example: factors with kA=kB=kC=4 give a guaranteed-unique fit for up to R = 5 sources (12 ≥ 12).
CP Versus Other Subspace Estimators
| Method | Data model | Uniqueness | Max sources (N elements) | Search | Notes |
|---|---|---|---|---|---|
| CP / PARAFAC | 3-way+ tensor | Essentially unique (Kruskal) | > N−1 with extra diversity | None (closed form) | Handles non-orthogonal factors |
| MUSIC | 2-way covariance | Subspace, needs ortho. | N−1 | 1-D / 2-D peak search | High resolution, search cost |
| ESPRIT | 2-way, shift-invariant | Up to rotation | N−1 | None (closed form) | Needs paired subarrays |
| Matrix SVD | 2-way matrix | Up to rotation | min(rows, cols) | None | Rotationally ambiguous |
| Tucker / HOSVD | N-way tensor | Not unique (core) | Model dependent | None | Compression, not separation |
Frequently Asked Questions
How does CP decomposition differ from singular value decomposition?
The SVD applies to two-way matrices and is unique only up to an arbitrary orthogonal rotation, so it can return any rotated mixture of the true components. CP applies to 3-way and higher tensors and, when Kruskal's condition kA+kB+kC ≥ 2R+2 holds, is essentially unique up to scaling and permutation. That uniqueness recovers the actual physical factors (steering vectors versus delay or Doppler signatures) without forcing them to be orthogonal, letting one CP fit jointly separate spatial, temporal, and frequency signatures.
How is the CP model fitted to measured array data?
Alternating least squares (ALS) is the standard. The R-component model is matricized with the Khatri-Rao product, then each factor matrix A, B, C is updated in turn while the others are fixed, solving a linear least-squares step each time. Iteration continues until the relative fit-error change drops below about 1e−6 to 1e−8, often 20 to a few hundred iterations. Algebraic GEVD or trilinear initialization avoids local minima and swamps; the spatial factor columns are then matched to the steering-vector manifold to read off the angles of arrival.
What tensor rank can a CP decomposition resolve with an N-element array?
Identifiability is set by Kruskal uniqueness, not by N alone. For an I1 × I2 × I3 tensor with generic factors, separation is guaranteed up to roughly R ≤ floor((I1 × I2)/2) when I3 ≥ R, which can exceed the N−1 sources a single subspace method resolves. A 10-element array adding a second diversity dimension (polarization, frequency, or time) can identify on the order of 20 to 40 sources. The cost is sensitivity to collinear factors and model-order error, usually checked with CORCONDIA core consistency or an information criterion.