Основанная на БПФ КИХ-фильтрация с помощью перекрытия - добавляет метод
y = fftfilt(b,x)
y = fftfilt(b,x,n)
y = fftfilt(d,x)
y = fftfilt(d,x,n)
y = fftfilt(gpuArrayb,gpuArrayX,n)
fftfilt
фильтрует данные с помощью эффективного основанного на БПФ метода перекрытия - добавляют, метод фильтрации частотного диапазона, который работает только на КИХ-фильтры.
y = fftfilt(b,x)
фильтрует данные в векторном x
с фильтром, описанным вектором коэффициентов b
. Это возвращает вектор данных y
. Операция, выполняемая fftfilt
, описана во временном интервале разностным уравнением:
Эквивалентное представление является описанием частотного диапазона или Z-преобразованием:
По умолчанию fftfilt
выбирает длину FFT и длину блока данных, которые гарантируют эффективное время выполнения.
Если x
является матрицей, fftfilt
фильтрует свои столбцы. Если b
является матрицей, fftfilt
применяет фильтр в каждом столбце b
к сигнальному вектору x
. Если b
и x
являются оба матрицами с одинаковым числом столбцов, i th столбец b
используется, чтобы отфильтровать i th столбец x
.
y = fftfilt(b,x,n)
использование n
, чтобы определить длину БПФ. См. Алгоритмы для получения информации.
y = fftfilt(d,x)
фильтрует данные в векторном x
с объектом digitalFilter
, d
. Используйте designfilt
, чтобы сгенерировать d
на основе спецификаций частотной характеристики.
y = fftfilt(d,x,n)
использование n
, чтобы определить длину БПФ.
y = fftfilt(gpuArrayb,gpuArrayX,n)
фильтрует данные в объекте gpuArray
, gpuArrayX
, с КИХ-коэффициентами фильтра в gpuArray
, gpuArrayb
. Смотрите функции MATLAB Выполнения на графическом процессоре (Parallel Computing Toolbox) для получения дополнительной информации об объектах gpuArray
. Используя fftfilt
с gpuArray
объекты требует программного обеспечения Parallel Computing Toolbox™. Пошлите к Поддержке графического процессора Релизом (Parallel Computing Toolbox) видеть то, что поддерживаются графические процессоры. Отфильтрованные данные, y
, являются объектом gpuArray
. Смотрите, что Перекрытие - Добавляет, что Фильтрация на графическом процессоре, например, перекрытия - добавляет фильтрацию на графическом процессоре.
fftfilt
работает и на действительные и на комплексные входные параметры.
filter
Когда входной сигнал является относительно большим, выгодно использовать fftfilt
вместо filter
, который выполняет умножение N для каждой выборки в x
, где N является длиной фильтра. fftfilt
выполняет 2 операции FFT — БПФ блока сигнала длины L плюс обратный FT продукта БПФ — за счет
½Llog2L
где L является длиной блока. Это затем выполняет L мудрое точкой умножение для общей стоимости
L + L log2L = L (1 + log2L)
умножение. Отношение стоимости поэтому
L (1+log2L) / (N L) = (1 + log2L)/N
который является приблизительно log2L / N.
Поэтому fftfilt
становится выгодным когда log2Lis меньше, чем N.
fftfilt
использует fft
, чтобы реализовать перекрытие - добавляет метод
[1], метод, который комбинирует последовательный частотный диапазон, отфильтровал блоки входной последовательности. fftfilt
повреждает входную последовательность x
в длину блоки данных L
, где 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
выбирает длину FFT, nfft
, 2^nextpow2(n)
и длины блока данных nfft
- length(b)
+ 1
. Если n
является меньше, чем length(b)
, fftfilt
устанавливает n
на length(b)
.
[1] Оппенхейм, Алан V, Рональд В. Шафер и Джон Р. Бак. Обработка сигналов дискретного времени. 2-й Эд. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1999.
conv
| designfilt
| digitalFilter
| filter
| filtfilt