Polynomial¶
Convolution with Gaussian LSF¶
Polynomial continuum forms (Linear, Polynomial, Chebyshev, Bernstein)
are analytically convolved with the Gaussian instrumental LSF at evaluation
time. This is possible because a polynomial convolved with a Gaussian is still
a polynomial, with a coefficient transform that can be precomputed. This
document derives that transform, which is implemented in
_gaussian_convolve_poly().
Setup¶
Let the continuum model in some normalised coordinate \(x\) be a polynomial
and let the LSF be a zero-mean Gaussian kernel with standard deviation \(\sigma\):
The convolved continuum is
Key Idea: Linearity and Moments¶
By linearity the convolution reduces to a sum over monomials:
where \(M_i(x) = \int_{-\infty}^{\infty} t^i\,G(x-t;\sigma)\,dt\) is the \(i\)-th moment of the Gaussian centred at \(x\).
Substituting \(u = t - x\):
Expanding via the binomial theorem \((x+u)^i = \sum_{k=0}^i \binom{i}{k} x^{i-k} u^k\):
where \(\mu_k\) are the moments of a zero-mean Gaussian.
Gaussian Moments¶
All odd moments vanish by symmetry. The even moments are:
where \((k-1)!! = 1 \cdot 3 \cdot 5 \cdots (k-1)\) is the double factorial (with the convention \((-1)!! = 1\), so \(\mu_0 = 1\)). For example: \(\mu_0 = 1\), \(\mu_2 = \sigma^2\), \(\mu_4 = 3\sigma^4\), \(\mu_6 = 15\sigma^6\).
The Convolved Polynomial¶
Substituting back and collecting terms by power of \(x\), the convolution is still a polynomial of the same degree \(N\):
with new coefficients
Each output coefficient \(c_j^\text{new}\) receives contributions from all higher-order input coefficients \(c_{j+k}\) (for even \(k > 0\)): the LSF smears power from sharper features into smoother ones. The \(k = 0\) term is just \(c_j\) itself (LSF has no effect on a constant), and odd moments contribute nothing because \(G\) is symmetric.
Using FWHM Instead of \(\sigma\)¶
The Gaussian LSF is parametrised by its FWHM in unite:
so the coefficient transform becomes
For basis-transformed forms (Chebyshev, Bernstein), the FWHM is
first rescaled into the normalised coordinate domain before applying
this transform, since the polynomial lives in \([-1,1]\) or \([0,1]\)
rather than wavelength space.
Properties and Connection to the Code¶
The transform has three important properties:
Polynomial closure: \((f * G)\) is a polynomial of the same degree as \(f\) — no new basis functions are needed.
Only even moments contribute: odd-\(k\) terms vanish, so the sum steps by 2. This halves the number of non-zero terms for high-degree polynomials.
FWHM-controlled: the entire effect of the LSF enters through a single scalar \(\sigma\), computed from
lsf_fwhmat each wavelength point.
In _gaussian_convolve_poly(), the
coefficients are stored in NumPy descending-order convention
(index 0 = highest power), so the index mapping is
\(c_j \leftrightarrow \text{coeffs}[N-j]\).
The even-moment double factorial is computed iteratively as
\(\mu_{2j} = \mu_{2(j-1)} \cdot (2j-1)\sigma^2\), avoiding explicit
factorial arithmetic. The result is a JAX array of convolved
coefficients that can be evaluated with the same polynomial kernel
used for the unconvolved form.