FFT vibration analysis of Quad X Frame

I am building a coaxial drone. Here is my

Setup:

Airframe: Generic Octo coaxial geometry

Flight Controller: CUAV_X7PRO

PX4: v1.16.0rc

Motor: MAD-kv380

Propeller: 13X10

Battery: 12S

I am tuning the Gyro filter following the documentation MC Filter Tuning & Control Latency

I do some Position & stabilized Flights

Position Flight Log

Stabalized Fligth Log

As I am recording a log at high data to get Raw FIFO high-rate IMU(Gyro)

I do an FFT analysis using plotjuggler on sensor_gyro_fifo recorded in .ulg .


IMU_DGYRO_CUTOFF = 18 Hz

IMU_GYRO_CUTOFF = 38 Hz

IMU_GYRO_RATEMAX = 2000 Hz

As the motor is running at high RPM, taking advantage of high noise frequency, I can set IMU_GYRO_CUTOFF to Attenuat High freqency noise, but also below IMU_GYRO_CUTOFF & IMU_DGYRO_CUTOFF, I can see noise spikes in the range from 0-50Hz which is not filtered out.
I can not use Dynamic notch filtersas i dont have Dshot or ESC telemetry.
How can I perfectly tune it? I check IMU_GYRO_FFT_EN to enable onboard FFT, but I haven’t studied mathematics behind it.