Compute convolution y[n]=x[n]*h[n]: x[n]={2,0,1,-1,3}; h[n]={1,2,0,1}

70 visualizaciones (últimos 30 días)
Li Hui Chew el 24 de Jun. de 2021
Editada: Paul el 3 de Dic. de 2023
My approach:
x=[2 0 1 -1 3];
h=[1 2 0 1];
% therefore
y=conv(x,h)
y =
2 4 1 3 1 7 -1 3
4 comentariosMostrar 2 comentarios más antiguosOcultar 2 comentarios más antiguos
Walter Roberson el 2 de Dic. de 2023
It would depend on whether that u[n-1] is the unit step function or not.
If it is then x[n] would be 0 for n < 0, and 1 for n >= 0 -- an infinite stream of 1's. And h[n] would be 0 for n <= 1, and 0.9^n for n > 1 -- an infinite stream of non-negative numbers. You cannot express that as a finite convolution sequence.
Let us see what it would turn out like for continuous functions:
sympref('heavisideatorigin', 1)
ans =
1
syms n integer
x(n) = heaviside(n)
x(n) =
h(n) = (sym(9)/sym(10))^n * heaviside(n-1)
h(n) =
syms t tau
C(t) = int(x(tau) * h(t-tau), tau, 0, t)
C(t) =
[C(-1), C(0), C(1)]
ans =
assume(sign(t-1) == 1)
simplify(C)
ans(t) =
Paul el 2 de Dic. de 2023
Editada: Paul el 3 de Dic. de 2023
The follow-up problem posed by James can be solved for a closed form solution using symsum and the shift property of the convolution sum. Seem like a HW problem so won't show it now.

Iniciar sesión para comentar.

Respuestas (1)

Image Analyst el 2 de Dic. de 2023
@Li Hui Chew, yes your approach is correct. Is that all you wanted - confirmation of your approach?
0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Categorías

Más información sobre Calculus en Help Center y File Exchange.

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by