![](https://csdnimg.cn/release/download_crawler_static/87760356/bg4.jpg)
2 利用 FFT 计算离散信号的线性卷积
已 知 两个 离散 时间 信号
x[n] (n 0,1,2 L , M 1)
与
y[n] (n 0,1,2L , N 1)
, 取
L
M N 1
,对
x[n]
和
y[n]
右端补零,使得
x[n] 0, n M 1, M 2,L , L 1
y[n] 0, n N 1,N 2,L , L 1
(31)
利用 FFT 算法可以求得
x[n]
和
y[n]
的 L 点 DFT,分别是
X [k]
和
Y[k]
,利用 DTFT 卷
积性质,卷积
x[n]* y[n]
等于乘积
X [k]Y[k]
的 L 点 DFT 反变换,这也可以通过 FFT 算法
得到。
例 2 利用 FFT 计算线性卷积
已知
x[n] 0.8 u[n]
,其中
u[n]
为单位阶跃序列,信号
y[n]
如图 15 所示。由于当
n 16
时,
x[n]
很小,故
M
可以取为 17;N 取 10,
L M N 1 26
。
利用下面的 Matlab 命令,可得到
x[n]
、
y[n]
的卷积图形如图 15 所示。
subplot(3,1,1);
n=0:16;
x=0.8.^n;
stem(n,x);
xlabel('n');ylabel('x[n]');
subplot(3,1,2);
n=0:15;
y=[ones(1,10) zeros(1,6)];
stem(n,y);
xlabel('n');ylabel('y[n]')
subplot(3,1,3);
L=26;n=0:L-1;
X=fft(x,L);Y=fft(y,L);
Z=X.*Y;z=ifft(Z,L);
stem(n,z);
xlabel('n');ylabel('z[n]')
n