Skew Voigt

Convolution with a Gaussian LSF

The skew Voigt profile extends the pseudo-Voigt with a skewness parameter \(\alpha\) that shifts flux toward the red or blue wing while preserving normalisation.


Definition

Given a pseudo-Voigt profile \(V(x)\) (centred at zero, normalised to 1, even in \(x\)) with Gaussian component FWHM \(\Gamma_g\) and Lorentzian component FWHM \(\Gamma_l\), define \(w_0 = \sqrt{\Gamma_g^2 + \Gamma_l^2}\) and

\[ V_\text{skew}(x) = V(x)\,\bigl[1 + \text{erf}\!\left(\tfrac{\alpha x}{w_0}\right)\bigr]. \]

Normalisation. Since \(V(x)\) is even and \(\text{erf}(\alpha x / w_0)\) is odd, their product is odd and integrates to zero, so \(\int V_\text{skew}\,dx = \int V\,dx = 1\) for any \(\alpha\).


Approximation after LSF convolution

Let the LSF be \(G_\text{lsf}(x) = \mathcal{N}(0, \sigma_\text{lsf}^2)\). The convolution splits into a symmetric part and a skew correction:

\[ (V_\text{skew} * G_\text{lsf})(x) = \underbrace{(V * G_\text{lsf})(x)}_{V'(x)} + \int_{-\infty}^{\infty} V(t)\,\text{erf}\!\left(\tfrac{\alpha t}{w_0}\right) G_\text{lsf}(x - t)\,dt. \]

The symmetric part \(V' = V * G_\text{lsf}\) is the standard LSF-convolved pseudo-Voigt (Thompson et al. 1987 approximation with Gaussian width \(\Gamma_{cg} = \sqrt{\Gamma_g^2 + \Gamma_\text{lsf}^2}\)). The skew correction does not have a closed form for the mixed Voigt case, so the convolved profile is approximated as

\[ (V_\text{skew} * G_\text{lsf})(x) \;\approx\; V'(x)\,\Bigl[1 + \text{erf}\!\Bigl(\frac{\alpha_\text{eff}\,x}{w_0'}\Bigr)\Bigr], \]

where \(w_0' = \sqrt{\Gamma_g^2 + \Gamma_\text{lsf}^2 + \Gamma_l^2}\) is the post-convolution total width and \(\alpha_\text{eff}\) is the effective skewness derived below.

Gaussian-body exact formula

For the pure-Gaussian component (\(\Gamma_l = 0\)) the skew correction integral factors exactly via the Gaussian product identity. With \(\sigma_g = \Gamma_g / (2\sqrt{2\ln 2})\), \(\sigma_\text{lsf} = \Gamma_\text{lsf} / (2\sqrt{2\ln 2})\), the result is:

\[ \alpha_\text{gauss} = \frac{\alpha\, w_0}{\sqrt{w_0'^{\,2} + 2\,\alpha^2\,\sigma_\text{lsf}^2}}. \]

Properties:

  • \(\alpha_\text{gauss} \to \alpha\) as \(\sigma_\text{lsf} \to 0\) (no LSF)

  • \(\alpha_\text{gauss} \to 0\) as \(\sigma_\text{lsf} \to \infty\) (LSF washes out skew)

  • \(|\alpha_\text{gauss}| < |\alpha|\) always (convolution reduces skewness)

FXIG boost correction for the Lorentzian component

When \(\Gamma_l > 0\), the Lorentzian contribution causes \(\alpha_\text{eff}\) to exceed \(\alpha_\text{gauss}\). A multiplicative boost \(B \geq 1\) was fit numerically over a grid of \((\textrm{lor}, \alpha, \eta) \in [0, 8] \times [0.3, 10] \times [0.1, 3]\), where:

\[ \textrm{lor} = \frac{\Gamma_l/2}{\sigma_g}, \qquad \eta = \frac{\sigma_\text{lsf}}{\sigma_g}, \qquad \xi = \frac{\textrm{lor}}{\eta} = \frac{\Gamma_l/2}{\sigma_\text{lsf}}. \]

\(\xi\) is the ratio of Lorentzian half-width to LSF sigma; when \(\xi\) is large the Lorentzian wings are resolved by the LSF and carry more skew. The boost is modelled as:

\[ \ln B = \frac{k\,\xi^a\,\eta^b}{(1 + q\,\xi^c)(1 + r\,|\alpha|^d)}, \]

with fitted parameters \((k, a, b, c, q, r, d) = (9.9126,\;0.43576,\;0.97281,\;2.1469,\;2.3396,\;26.449,\;0.36404)\).

Boundary conditions satisfied:

  • \(\ln B = 0\) at \(\textrm{lor} = 0\) (Lorentzian absent, Gaussian formula exact)

  • \(\ln B = 0\) at \(\eta = 0\) (no LSF, \(\alpha_\text{eff} = \alpha\) trivially)

Final formula

\[ \boxed{ \alpha_\text{eff} = \alpha_\text{gauss} \cdot \exp(\ln B) = \frac{\alpha\,w_0}{\sqrt{w_0'^{\,2} + 2\,\alpha^2\,\sigma_\text{lsf}^2}} \cdot \exp\!\left(\frac{k\,\xi^a\,\eta^b}{(1+q\,\xi^c)(1+r\,|\alpha|^d)}\right) } \]

Accuracy (numerical validation, \(\Gamma_l \in [0,8\sigma_g]\), \(\eta \in [0.1, 3]\), \(\alpha \in [0.3, 10]\)): median profile error 0.57%, 95th-percentile 1.67%, maximum 2.44%, versus 5.43% / 7.65% for \(\alpha_\text{gauss}\) alone.


Pixel integration

The skew Voigt is not analytically integrated over pixels. Both the Gaussian skew correction (expressible via Owen’s T function) and the Lorentzian skew correction require numerical work that would add two further approximation layers on top of the Thompson pseudo-Voigt.

Instead, unite evaluates the approximation pointwise at the pixel midpoint and multiplies by the pixel width (midpoint-rule approximation), which is adequate when pixels are small relative to the profile width.