Цитата(Сергей Ст @ Jun 26 2017, 18:11)

...Более того в книге утверждается что этот вариант алгоритма предпочтительнее чем первый.
Overlap-save ничем не лучше overlap-add с точки зрения теории. В смысле - и в том и в другом случае получится одинаковая последовательность на выходе.
Цитата
В случае же обработки которую рекомендуют в статьях о шумоподавлении применяется алгоритм блочной обработки который не принадлежит ни к одному из типов обработки, описанных выше. Хотя по идее любая обработка кадра входного сигнала в спектральной области - это применение фильтра с некоторой импульсной характеристикой преобразованной в частотную область (то есть передаточной функцией). И, поскольку длина кадра фиксированная, фиксированной надо полагать и эту самую импульсную характеристику. То есть можно применять один из алгоритмов описанных выше?? Но видимо не все так просто.
Количество отсчетов в ЧХ полученного фильтра равно длине используемого преобразования Фурье. После обратного преобразования Фурье в общем случае получится столько же отсчетов и в ИХ. А перекрытие у Вас по длине меньше, т.е. условия использования алгоритмов overlap-add/save не выполняются.
Капитан очевидность подсказывает, что можно обеспечить требуемую длину ИХ просто сделав c ЧХ следующее преобразование IFFT ->обнуляем все, что вылазит за N1 -> FFT.
Если N1 кратно N2 (N2 = k*N1, k - целое) то можно просто занулить каждый k-ый отсчет ЧХ фильтра начиная с k и получим ИХ длины N2.(Это я ступил и погорячился

)
Но в этом случае фильтр станет "не совсем винеровским" и на выходе останется недодавленная помеха, которую могли бы додавить.
В результате имеем баланс - искажения вызванные усечением ИХ фильтра vs искажения вызванные наложением при использовании циклической свертки вместо линейной. Что победит - зависит от конкретной ИХ фильтра.
Поэтому еще в той теме писал, что все эти алгоритмы шумоподавления отдают "черной магией"
Впрочем, вот есть статья о том как хорошо делать подобные свертки
Сообщение отредактировал andyp - Jun 27 2017, 12:03