Фильтрация конечной импульсной характеристики на основе БПФ с использованием метода перекрытия-суммы
отфильтровывает данные в векторных y = fftfilt(d,x)x с digitalFilter d объекта.
fftfilt фильтрует данные с помощью эффективного FFT-основанного метода наложения-сложения
[1], частотного диапазона метода фильтрации, который работает только для конечной импульсной характеристики фильтров путем объединения последовательных частотных диапазонов отфильтрованных блоков входа последовательности. Операция, выполненная fftfilt описывается во временном интервале разностным уравнением:
Эквивалентным представлением является Z-преобразование или описание частотного диапазона:
fftfilt использование fft для реализации метода перекрытия-суммы. fftfilt нарушает последовательность входа x в блоки length L data, где L должны быть больше, чем длина фильтра N.
![]()
и свертывает каждый блок с фильтром b около
y = ifft(fft(x(i:i+L-1),nfft).*fft(b,nfft));
где nfft - длина БПФ. fftfilt перекрывает последующие выходные разделы по n-1 точки, где n - длина фильтра, и суммирует их.

fftfilt выбирает ключевые параметры L и nfft различными способами, в зависимости от того, поставляете ли вы длину БПФ n для фильтра и сигнала. Если вы не задаете значение для n (который определяет длину БПФ), fftfilt автоматически выбирает следующие ключевые параметры:
Если length(x) больше length(b), fftfilt выбирает значения, которые минимизируют количество блоков, умноженное на количество флопов на БПФ.
Если length(b) больше или равно length(x), fftfilt использует одну БПФ длины
2^nextpow2(length(b) + length(x) - 1)
Это вычисляет
y = ifft(fft(B,nfft).*fft(X,nfft))
Если вы задаете значение для n, fftfilt выбирает длину БПФ, nfft, из 2^nextpow2(n) и длину блока данных nfft - length(b) + 1. Если n меньше length(b), fftfilt устанавливает n на length(b).
[1] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Обработка сигнала в дискретном времени. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.
conv | designfilt | digitalFilter | filter | filtfilt