MATLAB Answers

Convolution Computations results for a system response.

Can anyone tell the difference of these plots that I used following two codes to plot the results of convolution computations given and need to know the reason for having following difference?
I have attached the results I got for these codes.

  0 Comments

Sign in to comment.

1 Answer

Answer by Bruno Luong
on 16 Sep 2019 at 9:22
Edited by Bruno Luong
on 16 Sep 2019 at 9:35
 Accepted Answer

You make few mistakes, indexing and flipping (see careful conv documentation, the subtility is there, though TMW never mention whereas CEIL or FLOOR must be applied on even-length kernel, shame on them).
This code will show the correction and match both calculations (roundoff beside)
n=[1:1:1000];
s=10*cos(0.05*n);
N=randn(1,1000);
x=s+N;
h=0.1*ones(1,10);
y = conv(x,h,'same'); % 'same'
yy = zeros(1,length(n));
for i = 1: length(n)
for j = 1:length(h)
k = i-j+ceil((length(h)+1)/2); % shift by ceil(...) which correspond to "same"
if k>=1 && k<=length(x) % overflow check
yy(i) = yy(i) + h(j)*x(k);
end
end
end
close all
figure
plot(yy)
hold on
plot(y)
Related post here