1D быстрая свертка без БПФ

Мне нужна 1D свертка против двух больших массивов. Я использую этот код на C #, но для его выполнения требуется очень много времени.

Знаю, знаю! Свертка БПФ выполняется очень быстро. Но в этом проекте я НЕ МОГУ его использовать. Ограничением проекта является отказ от использования БПФ (пожалуйста, не спрашивайте, почему: /).

Это мой код на C # (кстати, перенесенный из Matlab):

var result = new double[input.Length + filter.Length - 1];
for (var i = 0; i < input.Length; i++)
{
    for (var j = 0; j < filter.Length; j++)
    {
        result[i + j] += input[i] * filter[j];
    }
}

Итак, кто-нибудь знает какой-нибудь алгоритм быстрой свертки с расширением FFT?

7
задан walteram 30 August 2011 в 01:47
поделиться