复习循环卷积的快速算法(FFT)
两个序列的线性卷积: x(n) N个点; 滤波器h(n) M个点, 线性出来是 L=N+M-1个点;
x(n)填充0至长度为L,h(n)同样填充至L; 做FFT运算,然后IFFT运算,出来的结果时L个点。
eg:
x = 1:50;
h = 1:20;
y = conv(x,h);
N = length(x);
M = length(h);
L = M+N-1;
X = fft(x,L);
H = fft(h,L);
Y2 = X.*H;
y2 = real(ifft(Y2));
sum(y-y2)
对于帧长为N连续的原始信号,使用时域的Overlap-add分段做线性卷积,对于每个段N个信号点,和N个h(n)做线性卷积的快速算法就如图上述。
重叠相加法: