基于FFT的重叠加法FIR滤波
fftfilt
使用高效的基于FFT的滤波方法对数据进行滤波交叠相加[1],一种频域滤波技术,它只适用于FIR滤波器,通过组合输入序列的连续频域滤波块。由fftfilt
在时域中由差分方程描述:
等效表示为Z变换或频域描述:
fftfilt
使用fft
要实现重叠添加方法。fftfilt
中断输入序列x
到长度L数据块,其中L必须大于筛选器长度N.
然后用过滤器对每个块进行卷积B
通过
y =传输线(fft (x(我+ l - 1), nfft)。* fft (b, nfft));
哪里非规则采样快速傅里叶变换
为FFT长度。fftfilt
将连续输出部分重叠为n-1
点,N
是筛选器的长度,并对其求和。
fftfilt
选择关键参数L
和非规则采样快速傅里叶变换
以不同的方式,这取决于你是否提供一个FFT长度N
用于滤波器和信号。如果未指定N
(用于确定FFT长度),fftfilt
自动选择以下关键参数:
如果长度(x)
大于长度(b)
,fftfilt
选择将块数乘以每个FFT的触发器数最小化的值。
如果长度(b)
是大于还是等于长度(x)
,fftfilt
使用单个长度的FFT
2^nextpow2(length(b) + length(x) - 1)
这算
y=ifft(fft(B,nfft)。*fft(X,nfft))
如果你提供一个值N
,fftfilt
选择一个FFT长度,非规则采样快速傅里叶变换
属于2^nextpow2(n)
和数据块长度非规则采样快速傅里叶变换
-长度(b)
+1.
.如果N
少于长度(b)
,fftfilt
设置N
到长度(b)
.
[1] 奥本海姆、艾伦·V、罗纳德·W·谢弗和约翰·R·巴克。离散时间信号处理第二版。新泽西州上鞍河:普伦蒂斯大厅,1999年。