Цитата
Ничего вобщем-то непонятно. Рисунки(графики) в студию. Вообще не понял, что же Вы там дополнили нулями в процессе непрерывной свертки... хм...
P.S.: и вообще, не мешало бы понакрутить ухи тому кто первым в литературе орисал трюк с дополнением нулями и не удостоился дальше растолковать, что область его правильных решений это очень частный случай...
Секционированная свертка,алгоритм перекрытия с накоплением:
Режем входную последовательность x на перекрывающиеся куски xi. Далее
yi=IFFT(FFT(xi)*W), W=FFT(h || 0...0), где h - импульсная функция фильтра. Из полученного yi
отбрасываем бракованный кусок, а остаток на выход. Повторяем до бесконечности. Получаем линейную свертку h*x. Дополнение нулями позволяет обыграть тот факт, что просто IFFT(FFT(xi)*FFT(h)) есть циклическая свертка. Нам же нужна линейная. Вроде классика. Ухи крутить - не допрыгнуть.
Цитата
Предполагаю, что в исходной проблеме наверняка в алгоритме или в реализации неточность. Реализация никогда не работала, а ответ случайно получался удобоваримый при отладке.
Какая случайность? При тестировании выбираю случайный сигнал и случайную же имульсную ф-ю
и сравниваю истинную свертку и секционированную. Раз за разом дельта 10е-12. Нет. У меня сомнение- правильно ли я делаю, когда исходную передаточную ф-ю R употребляю так:
W=FFT(IFFT( R ) || 0...0)