scope.getPeak()
scope.getPeak(fMin, fMax, [label]) → { bin, freq, amp }
Finds the highest-amplitude peak in a frequency range of the most recent FFT — typically used to measure running speed.
Searches the spectrum of the most recent scope.getWaveform() capture between
fMin and fMax and returns the dominant peak.
The optional label string draws a named marker on the FFT amplitude chart in
the web interface for the associated capture, which makes verifying the speed
lock-on easy.
Measuring RPM. Search a window around the expected electrical or mechanical frequency, then convert. For a 10-pole motor near line frequency:
let speed = scope.getPeak(50, 70, "hz");
let rpm = speed.freq * 120 / 10;
For better precision, re-find the speed on a strong harmonic using a tight tolerance window seeded from the first estimate:
let peak180hz = rpm/60*15;
let speed = scope.getPeak(peak180hz*0.98, peak180hz*1.02, "Speed"); // ±2%
rpm = speed.freq * 4;
Arguments
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| fMin | number (Hz) | yes | — | Lower bound of the search window. |
| fMax | number (Hz) | yes | — | Upper bound of the search window. |
| label | string | optional | — | Optional marker label shown on the FFT chart for this capture. |
Returns
object
{ bin, freq, amp } — e.g. {"bin":322,"freq":59.977173,"amp":0.037552}
Example
scope.getWaveform({ "ch":0, "osr":4096, "size":4096, "fft":true,
"bandpass":false, "fMin":120, "fMax":190, "demod":false, "demodRatio":8 });
let speed = scope.getPeak(50, 70, "hz");
print(string(speed)); // {"bin":322,"freq":59.977173,"amp":0.037552}
let rpm = speed.freq * 120 / 10; // 10-pole motor