Matlab中的卷积动手

迭戈·卡塔拉诺(Diego Catalano)

我得到下面的矩阵:

 9 18 27 36 45
 0  0  0  0  0
 0  0  0  0  0
 0  0  0  0  0
 0  0  0  0  0

和内核:

-0.5+0.8662i 1 -0.5-0.8662i

我正在尝试使用有效模式执行卷积:

ans = conv2(matrix,kernel,'valid');

Matlab返回:

0.0000+15.5916i 0.0000+15.5916i 0.0000+15.5916i

我的问题是我如何能获得与matlab相同的结果。我首先要在Matlab中进行操作,但结果有所不同。

a =     matrix(1,1) * kernel(1);
a = a + matrix(1,2) * kernel(2);
a = a + matrix(1,3) * kernel(3);

Result: 0-15.5916i

由于某种原因,使用卷积可以使虚数的符号为正。为什么呢

本征克里斯

我相信卷积通常是通过“翻转”内核(左右,上下)然后在矩阵上滑动来执行乘法和的。

换句话说,matlab实际计算的是:

a =     matrix(1,1) * kernel(3);
a = a + matrix(1,2) * kernel(2);
a = a + matrix(1,3) * kernel(1);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章