30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
# Frequency Split
|
||
|
||
Separate a DATA_FIELD into low-frequency and high-frequency components using an FFT-based Gaussian filter. The low-pass output contains smooth, large-scale variations while the high-pass output contains fine detail and noise. Equivalent to Gwyddion's `freq_split.c` module.
|
||
|
||
## Inputs
|
||
|
||
| Name | Type | Required | Description |
|
||
|------|------|----------|-------------|
|
||
| field | DATA_FIELD | Yes | Input field to split |
|
||
|
||
## Outputs
|
||
|
||
| Name | Type | Description |
|
||
|------|------|-------------|
|
||
| low_pass | DATA_FIELD | Low-frequency (smoothed) component |
|
||
| high_pass | DATA_FIELD | High-frequency (detail) component |
|
||
|
||
## Controls
|
||
|
||
| Name | Type | Default | Description |
|
||
|------|------|---------|-------------|
|
||
| cutoff | FLOAT | 0.1 | Cutoff frequency as a fraction of Nyquist (0.001–0.5) |
|
||
|
||
## Notes
|
||
|
||
- The cutoff is relative to the Nyquist frequency. A value of 0.5 effectively passes everything (no filtering), while 0.001 aggressively removes nearly all spatial frequencies from the low-pass output.
|
||
- The two outputs always sum to the original field: low_pass + high_pass = input.
|
||
- Useful for separating roughness from waviness, or for removing long-range background while preserving features.
|
||
- The filter operates in the frequency domain via FFT, so it handles periodic boundaries naturally.
|