Question about turning a biquad filter2p into a third-order filter

Hi.
i was trying to turn a biquad filter2p into a third-order filter,here is my work.

  1. i modify the code in LowPassFilter2p.cpp.

  2. i set INS_GYRO_FILTER=20 and test on biquad filter(original) and third-order filter in SITL with same fly mission.
    when using biquad filter , the vehicle runs stably, on third-order filter, it runs unsteadily,gyro has a lot of noise .

  3. i set INS_GYRO_FILTER=40,both code version run stably
    i want to know why it work so differently? does it have somethings to do with autotune after i change the filter setting?

40hz experiment fft data are as follows.
secondorder

thirdorder

Do a github pull request so that we can look at the code

here is the pull request.
3order_test by sleepat-11 · Pull Request #20317 · ArduPilot/ardupilot (github.com)