要使用卷积定理来计算两个序列的卷积,首先需要对它们进行傅里叶变换,然后将它们的频谱相乘,最后进行傅里叶逆变换以获得卷积结果。
给定两个序列:
x(n) = a^n \cdot u(n)x(n)=an⋅u(n),其中 u(n)u(n) 是单位阶跃函数,表示 u(n) = 1u(n)=1 对于 n \geq 0n≥0,否则 u(n) = 0u(n)=0。
h(n) = u(n)h(n)=u(n),也是单位阶跃函数。
首先,对这两个序列进行离散傅里叶变换(DFT):
X(k) = \sum_{n=-\infty}^{\infty} x(n) \cdot e^{-j2\pi kn/N}X(k)=n=−∞∑∞x(n)⋅e−j2πkn/N
H(k) = \sum_{n=-\infty}^{\infty} h(n) \cdot e^{-j2\pi kn/N}H(k)=n=−∞∑∞h(n)⋅e−j2πkn/N
其中,NN 是DFT的点数,kk 是频域中的频率索引。
根据序列的定义,我们可以得到它们的DFT:
X(k) = \sum_{n=0}^{\infty} a^n \cdot e^{-j2\pi kn/N} = \frac{1}{1 - ae^{-j2\pi k/N}} \quad \text{for } 0 \leq k < NX(k)=n=0∑∞an⋅e−j2πkn/N=1−ae−j2πk/N1for 0≤k<N
H(k) = \sum_{n=0}^{\infty} e^{-j2\pi kn/N} = \frac{1}{1 - e^{-j2\pi k/N}} \quad \text{for } 0 \leq k < NH(k)=n=0∑∞e−j2πkn/N=1−e−j2πk/N1for 0≤k<N
接下来,将它们的频谱相乘:
Y(k) = X(k) \cdot H(k)Y(k)=X(k)⋅H(k)
最后,进行傅里叶逆变换(IDFT)以获得卷积结果 y(n)y(n):
y(n) = \frac{1}{N} \sum_{k=0}^{N-1} Y(k) \cdot e^{j2\pi kn/N}y(n)=N1k=0∑N−1Y(k)⋅ej2πkn/N
这将给出 h(n) * x(n)h(n)∗x(n) 的离散卷积结果。请注意,这是一个离散卷积,因此 nn 的范围取决于序列的长度和DFT点数 NN。