Цитата(Xenia @ Jul 27 2010, 13:23)

Попытка не пытка! Тогда уж я еще одно новое слово скажу

В чем, собственно, недостаток FFT в практическом смысле? В прежде всего в
его циклическом характере
базисных функций и самого способа построения ортонормированного базиса. FFT преобразует массив так, как будто он закольцован, хотя на самом деле этого нет.
- не так FFT, как то, что мы делаем всю математику подразумевая sin(t)/cos(t) - а они бесконечные циклические функции.Т.е. проблему решит не какое-то дополнение нулями - ну же,
Xenia, у меня блок где замерян постоянный ток. 11111...111 (V) - как его не дополняй - спектр станет заметно отличным от простой палки на 0-ой частоте... Или вон пример который привел товарищ
bahurin - тоже очевиден для мыслеэксперимента.
Проблему решит:
1) Выбор других базисных функций и метода построения базиса.
2)
Выбор "иного" математического мира - и так между прочим тоже делают...
Остальное прочел... Здорово. Но это частные случаи.
P.S.: был задан конкретный вопрос и товарищ
связист дал на него самый компетентный ответ - смысле на самый первый вопрос(уточнение аФФтАр топика дал просто чумовое

). Дальше понеслось - и дополнение 0-ми, и IIR... Сейчас пойдут теоретико-числовые алгоритмы и кольца Галуа...
P.P.S.:
Xenia, перепишите DCT(FCT) для своего mp3 плеера или JPEG просмотрщика - так "грамотно". С "не кольцевой" сверткой. Послушайте(посмотрите) его минут 10. А выводы опубликуйте на форуме...
P.P.P.S.:
Цитата(PriBoris @ Jul 27 2010, 13:39)

Для вычисления фильтрованного значения первой точки свежего блока используются 255 (256-1) точек предыдущего блока.
Мда... Это диагноз...
PriBoris, без обид, но Вы жжоте...
Цитата(PriBoris @ Jul 27 2010, 11:33)

Вопрос возник при попытке реализации фильтрации с помощью быстрой линейной свёртки. Длина фильтра почти 256 точек, данные поступают в реальном времени блоками по 512.
Почти это как? 255.5?
делайте по 2-а FFT по 256 точек...
или одно по 512 на блок...
Физический смысл быстрой свертки в том, что у Вашего фильтра есть определенные АЧХ/ФЧХ(которое однозначно связано с его "импульсной"). Мы определяем его и накладываем операцией умножения(свертка-фильтрация над временным рядом соответствует умножению в частотном отображении) на частотный спектр сигнала. Размер блока может быть
любым - впринципе, даже меньше длинны фильтра - но тогда его нужно будет пересемплировать с другой частотой Ничего из уже обработанного блока хранить не надо. Это не FIR. А все ускорение за счет того, что переход в частотную область с помощью FFT, посемпловое умножение, и обратный переход уже где-то начиная с 128 точек требует меньше операций чем свертка "в лоб".
Кстати блоки по 256 точек, 32-х битная система и тип данных int(если у Вас,
PriBoris, так) - это и в самом деле лучше на кольцах Галуа. Зачем нам комплексность и округленные значения sin(t)/cos(t) !?
В чем вопрос?