Incorrect continuous signal convolution values in Matlab
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Konstantinos
le 27 Juin 2016
Commenté : Star Strider
le 29 Juin 2016
I am trying to convolve the following signals in Matlab:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/154494/image.png)
and
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/154495/image.png)
for a=0.5. The result, say z(t) is:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/154496/image.png)
So here is my Matlab code:
%Define initial signals
alpha = .5;
Ts = 0.01;
t_x = -5:Ts:5;
x = heaviside(t_x);
t_y = -5:Ts:5;
y = heaviside(t_y).*(alpha.^abs(t_y));
%Plot initial signals
figure(1)
plot(t_x,x);
xlabel('t');
ylabel('x(t)');
axis([min(t_x)-1 max(t_x)+1 min(x)-1 max(x)+1]);
figure(2)
plot(t_y,y);
xlabel('t');
ylabel('y(t)');
axis([min(t_y)-1 max(t_y)+1 min(y)-1 max(y)+1]);
%Convolution
z = Ts*conv(x,y);
t_z = min(t_x)+min(t_y):Ts:max(t_x)+max(t_y);
figure(3)
plot(t_z,z);
xlabel('t');
ylabel('z(t)');
axis([min(t_z)-1 max(t_z)+1 min(z)-1 max(z)+1]);
The problem is that the final signal that Matlab calculates has incorrect values for values of t greater than 5. I have checked this in detail and noticed that the signal is wrong for t > max(t_x). Here is the final plot:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/154497/image.png)
What am I doing wrong?
0 commentaires
Réponse acceptée
Star Strider
le 27 Juin 2016
The convolution is actually defined only for your ‘t_x’ vector (that must be the same as ‘t_y’).
For example, if you have the Symbolic Math Toolbox, run this:
syms a t x y
assume(t>0)
assume(a>0)
x(t) = 1;
y(t) = a^t;
X = laplace(x);
Y = laplace(y);
Z = X*Y;
z = ilaplace(Z)
za = subs(z, a, 0.5);
figure(1)
fplot(za, [-5 5])
6 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Multirate Signal Processing dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!