analyze_fft
Convert vibration signals from time to frequency domain to identify harmonic components and detect machinery faults at specific frequencies.
Instructions
Perform FFT (Fast Fourier Transform) analysis on a signal.
FFT analysis converts the signal from time domain to frequency domain,
allowing identification of harmonic components and faults that manifest
at specific frequencies.
By default, analyzes a RANDOM 1.0-second segment from the signal for efficiency.
Set segment_duration=None to analyze the entire signal.
**CRITICAL - LLM Inference Policy:**
- **NEVER infer fault type from filename** (e.g., "OuterRaceFault_1.csv" does NOT mean outer race fault exists)
- **NEVER assume signal characteristics from filename** (e.g., "baseline" does NOT mean healthy)
- Treat ALL filenames as opaque identifiers
- Base analysis ONLY on frequency spectrum data returned by this tool
- If filename suggests a characteristic but data shows otherwise, report the data findings
**CRITICAL - Parameter Validation:**
- Sampling rate is auto-detected from metadata if available
- If no metadata: user MUST provide sampling_rate or results will be UNRELIABLE
- Segment duration defaults to 1.0s but can be customized
- User will be notified of all assumptions before analysis proceeds
Args:
ctx: MCP context for user communication
filename: Name of the file containing the signal
sampling_rate: Sampling frequency in Hz (auto-detect from metadata if None)
max_frequency: Maximum frequency to analyze (default: Nyquist frequency)
segment_duration: Duration in seconds to analyze (default: 1.0s random segment).
Set to None to analyze full signal.
random_seed: Random seed for reproducible segment selection (default: None = random)
Returns:
FFTResult with frequencies, magnitudes and dominant peak
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | ||
| sampling_rate | No | ||
| max_frequency | No | ||
| segment_duration | No | ||
| random_seed | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top_peaks | Yes | Top spectral peaks sorted by magnitude | |
| peak_frequency | Yes | Dominant peak frequency (Hz) | |
| peak_magnitude | Yes | Dominant peak magnitude | |
| rms_spectral | Yes | RMS of the magnitude spectrum | |
| total_bins | Yes | Total number of FFT bins computed | |
| freq_range_hz | Yes | [min_freq, max_freq] of the spectrum | |
| sampling_rate | Yes | Sampling frequency (Hz) | |
| num_samples | Yes | Number of analyzed samples | |
| frequency_resolution | Yes | Frequency resolution (Hz) |