Я реализовал базовый алгоритм Карплюса-Стронга.
Кольцевой буфер, заполняющийся белым шумом, выводит выборку спереди и добавляет среднее значение первых двух элементов в конец и удаляет первый элемент. Повторяйте последние шаги.
Для лучших результатов и контроля над ними я попытался реализовать расширенную версию алгоритма.
Поэтому вместо усредняющего фильтра мне нужен частотный фильтр наподобие ФНЧ.
Мой усредняющий фильтр имеет два входа и один выход : среднее(а,б) = (а+б)/2
Пример кода на странице в Википедии дает столько же выходных данных, сколько и входных данных.
http://en.wikipedia.org/wiki/Low-pass_filter
Я нашел другие (математические) версии, такие как:
http://cnx.org/content/m15490/latest/
H(z) = (1+(1/z))/2
Думаю, z — комплексное число.
Обе версии имеют два входа, но также и два выхода.
Как мне получить из этого одно значимое значение?
Или мне нужно переписать большие части алгоритма?
Если это так, где я могу найти хорошее объяснение этого?