filters/sweep
A scenario of the Gyro filters, from tools/trace/scenarios/filters/sweep.cpp.
✓ pass
- The clang run (clang 18.1 optimized) matches the committed trace.
- The gcc run (gcc 13.3 optimized) matches the committed trace.
Shown on
These players show the same trace, with panels chosen to explain it:
- Do the notches keep up with a throttle sweep? (How the Gyro Filters Work)
- Do the tracked notches leave less than −30 dB of the vibration? (Gyro Filters V&V Plan)
Every channel
rotor_hz [Hz] [0] [1] [2] [3]
raw_spectrum -60 dB0 dB (level, dB re 1 rad/s)
filtered_spectrum -60 dB0 dB (level, dB re 1 rad/s)
notch_hz [Hz] [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
notch_weight [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
vibration_db [dB] [0] [1]
t = 0.000 s / 4.000 s
Keys (with the player focused): Space play/pause · ← → one sample (Shift: ten) · Home/End · [ ] speed
4 s of the dsp/filters scenario sweep.cpp, 161 samples every 0.025 s. The panels plot every channel that changes: rotor_hz, raw_spectrum, filtered_spectrum, notch_hz, notch_weight, vibration_db. 5 events are marked. Pass criteria: BB-I2 vibration_residual_db <= -30 dB; BB-C2 motion_gain_error <= 0.02.
- throttle up: every fundamental is below min_hz (100 Hz), so those notches are off
- the slowest rotor's fundamental reaches 100 Hz: its notch starts to fade in
- every fundamental past 150 Hz: all twelve notches on
- passing hover, where the fixed notches sit
- held at 90 % of maximum speed: fundamentals 500 to 552 Hz
- ✓ passBB-I2 vibration_residual_db = -70.68 dB (<= -30), computed by the scenario harness
- ✓ passBB-C2 motion_gain_error = 2.55e-4 (<= 0.02), computed by the scenario harness
Constant over the run
spectrum_bin_hz= 31.25 Hzvibration_limit= -30 dB