Measuring vibration

I was going through the following link about measuring vibration in the documentation

http://ardupilot.org/copter/docs/common-measuring-vibration.html#common-measuring-vibration

The document mentions that following steps used in the code

  1. Capture the raw x, y and z accelerometer values from the primary IMU
  2. High-pass filter the raw values at 5hz to remove the vehicle’s movement and create a “accel_vibe_floor” for x,y and z axis.
  3. Calculate the difference between the latest accel values and the accel_vibe_floor.
  4. Square the above differences, filter at 2hz and then calculate the square root (for x, y and z). These final three values are what appear in the VIBE msg’s VibeX, Y and Z fields.

When I went through the code I found that step 2 is low pass filtering at 5 Hz and step 3 is actually spectral inversion to implement a High pass filter at 5 Hz.
I want to know if I am right about this or am I missing something?
I was also wondering what is the purpose of low pass filtering the squared values at 2 Hz?