fftfilt
基于fft的FIR滤波的重叠加法
语法
描述
例子
输入参数
输出参数
更多关于
算法
fftfilt
使用高效的基于fft的方法过滤数据交叠相加[1]一种频域滤波技术,通过组合输入序列的连续频域滤波块,只适用于FIR滤波器。执行的操作fftfilt
在时域用差分方程表示:
等效的表示是z变换或频域描述:
fftfilt
使用fft
实现重叠添加方法。fftfilt
中断输入序列x
到长度l数据块,其中l必须大于过滤器长度吗N.
然后将每个块与滤波器进行卷积b
通过
y = ifft(fft(x(i:i+L-1),nfft).*fft(b,nfft));
在哪里nfft
为FFT长度。fftfilt
使连续输出部分重叠n - 1
点,n
是过滤器的长度,并对它们求和。
fftfilt
选择关键参数l
和nfft
以不同的方式,这取决于您是否提供FFT长度n
用于滤波器和信号。的值n
(决定FFT长度),fftfilt
自动选择这些关键参数:
如果
长度(x)
大于长度(b)
,fftfilt
选择最小块数乘以每个FFT的flop数的值。如果
长度(b)
是大于还是等于长度(x)
,fftfilt
使用长度为的单个FFT2^nextpow2(length(b) + length(x) - 1)
这个计算
y = fft(fft(B,nfft).*fft(X,nfft))
的值n
,fftfilt
选择FFT长度,nfft
的,2 ^ nextpow2 (n)
数据块长度为nfft
-长度(b)
+1
.如果n
小于长度(b)
,fftfilt
集n
来长度(b)
.
参考文献
[1]奥本海姆,艾伦V,罗纳德W.谢弗和约翰R.巴克。离散时间信号处理.第2版。上马鞍河,NJ: Prentice Hall, 1999。
扩展功能
版本历史
R2006a之前引入