Conv2 explanation for specific example
조회 수: 4 (최근 30일)
이전 댓글 표시
Hey Guys, i need some help for the conv2 implementation for given problem:
K>> conv2([1 2 3], [1 0 0], 'full')
ans =
1 2 3 0 0
Why are the zeros on the right side? Does varies with the border depending on the kernel-center?
For this example its clear:
K>> conv2([1 2 3], [1 0 1], 'full')
ans =
1 2 4 2 3
Thanks for your help, Leo
댓글 수: 0
답변 (4개)
Jan
2011년 7월 26일
Because you have vectors, your example is equivalent to:
conv([1, 2, 3], [1, 0, 0])
E.g. the last element of the result is "w(2*n-1) = u(n)*v(n)", which is 0 in your example. Perhaps your are searchng for the 'same' or 'valid' shapes?
댓글 수: 2
Jan
2011년 7월 26일
Indeed?
In Matlab 6.5 it called FILTER after reordering the inputs: CONV(A, B) equals CONV(B, A), but FILTER(B, 1, A) is faster, if length(A) < length(B).
I think I should read through all of the toolbox functions again...
the cyclist
2011년 7월 26일
Isn't the convolution calculation essentially doing what I have written below? Does that make it clearer where the zeros come from?
a = [1 2 3]
b = [1 0 0]
conv_a_b = b(1)*[a 0 0] + b(2)*[0 a 0] + b(3) * [0 0 a]
댓글 수: 0
Leo
2011년 7월 26일
댓글 수: 1
the cyclist
2011년 7월 26일
In response to what you said to Jan: There is no "padding". MATLAB is treating the trailing zeros in "b" exactly how it would treat them if they were non-zero, and giving you the result.
In response of what you said to me: Yes. What I typed is functional code, using the "a" that you defined.
참고 항목
카테고리
Help Center 및 File Exchange에서 Performance and Memory에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!