Разобрался с помощью тестовых сэмплов, ошибка в моем коде, я считал среднее значение для диапозонов частот, а так как, например, в диапазон низких частот попадает очень маленькое количество элементов fff, то значение получается большим, и наоборот, в диапазон >3500 очень много элементов, значение большинства которых около 0, то общее значения диапазона получалось маленьким. Т.о. надо считать не среднее, а пики для диапазонов.