- 注册时间
- 2008-2-6
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 51573
- 在线时间
- 小时
|
楼主 |
发表于 2008-4-8 09:13:30
|
显示全部楼层
四、循环卷积
由此开始的定义叙述和上面的就可能稍微有点不同了(但结果是一致的),请注意
设两个长为$N$的序列$x_n$和$h_n$, $n = 0, 1, ..., N-1$
其卷积是指
$y_n = \sum_{k=0}^{N-1} x_kh_{n-k} = \sum_{k=0}^{N-1} x_{n-k}h_k$ (41)
其中假定$x_n = h_n = 0, n < 0$。
(41)的矩阵表示是:
$[(y_0), (y_1), (y_2), ..., (y_{N-1})] = [(h_0, 0, 0, ..., 0), (h_1, h_0, 0, ..., 0), (h_2, h_1, h_0, ..., 0), (... , ..., ..., ..., 0), (h_{N-1}, h_{N-2}, h_{N-3}, ... ,h_0)] \quad [(x_0), (x_1), (x_2), (...), (x_{N-1})]$ (41')
直接计算(41)大约需要$N^2$次乘法和$N^2$次加法,当N很大时其计算工作量是很大的,因此寻求快速算法以节约时间是一个很有意义的工作。
通常通过循环卷积来计算(41),所谓两个序列$N$的$x_n$和$h_n$, $n = 0, 1, ..., N-1$的循环卷积是指:
$y_n = \sum_{k=0}^{N-1} x_kh_{_N} = \sum_{k=0}^{N-1} x_{_N}h_k$ (42)
$(n = 0, 1, ..., N-1)$
或者用矩阵表示
$[(y_0), (y_1), (y_2), ..., (y_{N-1})] = [(h_0, h_{N-1}, h_{N-2}, ..., h_1), (h_1, h_0, h_{N-1}, ..., h_2), (h_2, h_1, h_0, ..., h_3), (... , ..., ..., ..., ...), (h_{N-1}, h_{N-2}, h_{N-3}, ... ,h_0)] \quad [(x_0), (x_1), (x_2), (...), (x_{N-1})]$ (42')
$_N$表示$k$对$N$的最小非负剩余。
例如:
$<7>_4 = 3, <-7>_4 = 1$
下面的引理说明如何用循环卷积来计算卷积
引理1 两个长为$N$的序列$x_n$和$h_n$的卷积可以用两个长为$2N$的序列$\hat x_n, (n = 0, 1, ..., 2N-1)$和$\hat h_n, (n = 0, 1, ..., 2N-1)$的循环卷积来计算:
设:
$hat x_n = { (x_n, (n = 0, 1, ..., N-1)), (0, (N <= n <= 2N-1)) :}$
$hat h_n = { (h_n, (n = 0, 1, ..., N-1)), (0, (N <= n <= 2N-1)) :}$
$\hat x_n$和$\hat h_n$的循环卷积记为$\hat y_n$
$\hat y_n = \sum_{n=0}^{2N-1} \hat x_k \hat h_{_{2N}}$
则$y_n = \hat y_n, (n= 0, 1, ..., N-1)$
*************************************************************************
通常要进行卷积运算的两个序列的长度是不同的。
$x_n, n = 0, 1, ..., M_1 - 1, h_n, n = 0, 1, ..., M_2 - 1$
此时的离散卷积
$y_n = \sum_{n=0}^{M_1-1} x_kh_{n-k}=\sum_{n=0}^{M_2-1}x_{n-k}h_k$
$n = 0, 1, ..., M_1+M_2 - 2; x_n = h_n = 0,n<0$
这种卷积可以补零变成长度相同($M_1+M_2-2$)的卷积。输出序列$y_n$的长度亦为$M_1+M_2-2$。
例如:
$x_n, (n=0,1), h_n, (n=0, 1, 2, 3)$
$[(y_0), (y_1), (Y_2), (y_3)] = [(h_0, 0), (h_1, h_0), (h_2, h_1), (h_3, h_2)] \quad [(x_0), (x_1)]$ (a)
对序列$x_n$, $h_n$补零成为长度均为4的序列, $(x_0, x_1, 0, 0), (h_0, h_1, h_2, h_3)$做他们的如下卷积:
$[(y_0), (y_1), (Y_2), (y_3)] = [(h_0, 0, 0, 0), (h_1, h_0, 0, 0), (h_2, h_1, h_0, 0), (h_3, h_2, h_1, h_0)] \quad [(x_0), (x_1), (0), (0)]$ (b)
由计算知道(a)和(b)的结果是相同的。
所以我们以后可只考虑长度相同的离散卷积。
************************************************************************* |
|