我有两个大小相同的数据数组(主要是零,并且稀疏地填充了一些),然后生成它的conv
。结果我得到this。
现在可以看到-10 ^ { - 5}附近的峰值。我的问题是,我怎么能进行卷积,这样我才能在这个峰值周围得到一个小区域?
我知道convolution is defined从负无穷大到无穷大。在数学上我想将这些限制改为(在我的例子中)[ - 1.5 * 10 ^ 5,-0.5 * 10 ^ -5]。
非常感谢你的帮助!
修改
我找到了解决方案:可以使用xcorr(a,fliplr(b))
代替conv(a,b)
。现在xcorr有“maxlags”选项,这正是我要搜索的内容。
答案 0 :(得分:0)
您可以减少conv
的输出值数量,但不能任意减少。{p>试试'same'
或'valid'
选项:
C = CONV(A,B,SHAPE)返回卷积的一个子部分,其大小由SHAPE指定:
'full' - (default) returns the full convolution, 'same' - returns the central part of the convolution that is the same size as A. 'valid' - returns only those parts of the convolution that are computed without the zero-padded edges. LENGTH(C)is MAX(LENGTH(A)-MAX(0,LENGTH(B)-1),0).
要指定任意输出限制,您可能需要使用用户定义的函数手动进行卷积。但是使用conv
然后修剪输出可能更有效。