conv 함수를 사용하여 MatLab (R2011b)에서 컨볼 루션 할 때 -1 시프트가 발생했는데 이유를 알 수 없습니다. 내 신호와 내가 convolving 오전 기능은 길이가 동일한 N 픽셀 및 결과 또한 N 픽셀 수 있기 때문에 회귀 함수를 '동일한'옵션을 사용하고 있습니다.Convolution 후 MatLab에서 -1의 시프트
이 이동은 내 값이 짝수 인 경우에만 발생합니다.
이 짧은 스크립트를 작성하여 문제를 설명했습니다. 그것은 임펄스 응답을 가진 직사각형 펄스를 뒤 틀므로, 결과에 어떤 변화도 기대하지 않습니다.
%% Set up rectangle pulse
N = 21;
signal = zeros(N, 1);
% Designate some pixels in the signal as 1's to make rectangle pulse
signal(9:11) = 1;
%% Set up impulse for convolution
impulse = zeros(N, 1);
impulse(round(N/2)) = 1;
%% Convolution
convolutionResult = conv(signal, impulse, 'same');
%% Plot Results - not shown
N이 홀수 인 경우 결과가 OK, 즉 직사각형 펄스가 예상대로 픽셀 9, 10, 11 (1)의 값을 갖는다 보이는 컨벌루션 이전과 동일.
아무도 이해합니까? 그것은 말한다 w = conv(u,v,'same');
를 들어
좋습니다. 필자는 필기를 한 후 필자의 충동에서 '1'값의 위치가 분명히 이유임을 알아 냈습니다. 걱정 마세요! – DukeOfMarmalade