Если Вы хотите поделить частоту f_out = (k/m)*f_in то это банально просто. И делается алгоритмом DDS, реализация которого превратится в 2-3 сумматора. Если затем Вы хотите именно пики, можно, например, вырезать передний фронт. Что собственно говоря и сделано.
Что касается этого кода, то его смысла я не понял.