Fourier Transform
The fourier command transforms EXAFS data from k-space to R-space (radial distance space) via Fourier transform, enabling analysis of the local coordination environment around the absorbing atom.
The transform is applied to k-weighted chi data with optional apodization:
\[F(R) = \int k^n \cdot \chi(k) \cdot w(k) \cdot e^{2ikR} dk\]where \(n\) is the k-weight, \(w(k)\) is an apodization window, and the integral is over the specified k-range.
Basic Usage
fourier <k-range> [options]
where:
<k-range>is a mandatory two-value range in k-space (required)[options]control k-weighting, window function, and r-axis spacing
Command Options
| Option | Description |
|---|---|
<k-range> | k-space range for the transform (required). Both limits must be specified; use .. for open bounds within the available data. Accepts k units. See range specification for details. |
--kweight <n> -k <n> | k-weighting exponent (default: 0.0). Common values: 1 (linear), 2 (quadratic), 3 (cubic). |
--apodizer <func> -a <func> | Window function for apodization (default: hanning). See Apodization Functions for choices. |
--parameter <p> -p <p> | Shape parameter for window functions that support it (default: 3.0). |
--width <distance> -w <distance> | Ramp width for the apodization window edges (default: half the k-range span). Specified in Å. |
--maxR <distance> | Maximum R value for the output r-axis (default: auto-computed from k-range). Specified in Å. |
--dr <distance> --spacing <distance> | Fixed r-axis spacing (default: Nyquist-optimal). Specified in Å. |
Apodization Functions
Apodization windows reduce spectral ringing from the sharp k-range cutoffs. EstraPy supports:
| Function | Description | Parameter use |
|---|---|---|
rectangular | No apodization (sharp cutoff) | - |
hanning | Cosine-based window (default) | - |
hamming | Variant of Hanning with reduced sidelobe | - |
welch | Parabolic window | - |
sine | Pure sine window | - |
blackman | Very low sidelobe window | - |
gaussian | Gaussian shape with tunable width | See definition below. |
exponential | Exponential decay with tunable rate | See definition below. |
Window names are matched fuzzily (minimum 3 characters required).
Window definitions
Rectangular
No apodization is applied (sharp cutoff):
\[w(r) = \begin{cases} 1 & r \leq 1 \\ 0 & r > 1 \end{cases}\]Hanning
Cosine-based smooth window:
\[w(r) = \frac{1}{2} + \frac{1}{2}\cos(\pi r)\]Hamming
Variant of Hanning with reduced first sidelobe:
\[w(r) = 0.54 - 0.46\cos(2\pi r)\]Welch
Parabolic window:
\[w(r) = 1 - r^2\]Sine
Pure sine taper:
\[w(r) = \cos\left(\frac{\pi r}{2}\right)\]Blackman
Very low sidelobe window with excellent stopband attenuation:
\[w(r) = 0.42 - 0.5\cos(2\pi r) + 0.08\cos(4\pi r)\]Gaussian
Gaussian shape with tunable width controlled by parameter \(p\) (default: 3.0):
\[w(r) = \exp(-r^2 p)\]Higher \(p\) values create narrower windows with sharper cutoffs.
Exponential
Exponential decay with tunable rate controlled by parameter \(p\) (default: 3.0):
\[w(r) = \exp(-rp)\]Higher \(p\) values create faster decay rates.
Parameter definition
For gaussian and exponential windows, the --parameter option controls the shape:
- Gaussian: Controls the width; higher values (\(p \geq 5\)) create sharper transitions
- Exponential: Controls the decay rate; higher values create steeper roll-off
The normalized distance \(r\) ranges from 0 (at the flat region edge) to 1 (at the window outer edge).
R-axis Specification
The r-axis (output radial distance grid) can be specified via:
| Case | r-axis behavior |
|---|---|
| No options | Nyquist-optimal: spacing and extent determined from k-range via \(\Delta R = \pi / (2 \Delta k_{\max})\) |
--maxR <Rmax> only | Nyquist spacing computed, axis spans \([0, R_{\max}]\) |
--dr <spacing> only | Fixed spacing, extent computed from k-range |
Both --maxR and --dr | Fixed spacing and extent: axis spans \([0, R_{\max}]\) with steps of --dr |
Results
After executing fourier, a new Fourier domain is created for each page containing:
r- Radial distance axis (in Ångströms)f- Fourier transform magnitude
The magnitude is typically plotted to identify coordination shells.
Examples
# Basic Fourier transform with Hanning window
fourier 3k 15k
# Quadratic k-weighted transform (emphasizes higher-k)
fourier 2k 14k --kweight 2
# Custom window with narrow ramp (sharp edges)
fourier 3k 14k --apodizer kaiser --parameter 5 --width 0.5A
# Fine r-space sampling up to 6 Ångströms
fourier 2k 16k --maxR 6A --dr 0.01A
# Linear k-weighted with Blackman window
fourier 3k 13k --kweight 1 --apodizer blackman
Tips and Best Practices
- k-range selection:
- Start where the data quality is good (typically 2–3 k)
- End where noise dominates (often 12–15 k, depending on material and temperature)
- Wider ranges improve r-resolution per Nyquist
- k-weight choice:
k=1: Emphasizes low-k structurek=2: Default choice, balanced emphasisk=3: Emphasizes high-k (farther-distance) features
- r-axis:
- Nyquist default provides good efficiency
- Reduce
--maxRto focus on near-neighbor shells - Increase
--drfor smoother curves at the cost of larger output (does not generate new information beyond Nyquist)
See also: