Отпала тема восстановления скатов полностью. Был проделан вариант при котором просто скат сжимается в соответствии с sin от 0 до 1 это значит , что пик который не надо сжимать localAGCmax (множитель) умножается на 0 и пик остается на месте, а тот пик который надо занизить по итогу (по закону sin) localAGCmax умножается на 1 и пик слетает вниз в соответствии с расчетом.
Короче была сделана попытка реализовать алгоритм резинки которая растягивается в середине и применить его к скату.
Результат тот же - где-то все ломается хотя глазом на осциллограмме не видно. И иногда алгоритм уходил в конкретный блуд, который я не смог найти.