How do you add specific elements contained within a matrix to produce a new vector?

1 vue (au cours des 30 derniers jours)

I have the columns of n, x[n], and h[n] already produced. Now what I want to produce is the column w[n]. (Side question: is "column" correct term to be using in this instance? Or is "vertical array" or "vector" more appropriate?)

To avoid wasting your time, I've simplified the structure of w[n] in the little box there on the right-hand side, which reads: "In general, the corresponding element of w[n] meets these criteria: 1. has n+1 "component pairs", and 2. those "components pairs" are such that h[k]*x[m] where k+m=n.

Ex1. n=0. w[0] has one (0+1) "component pair:" h[0]*x[0] where k+m=0. Ex2. n=1. w[1] has two (1+1) "component pairs:" h[0]*x[1]+h[1]*x[0] where each k+m=1=n.

And in case you've now forgotten the question: How do I produce w[n] by manipulating the elements in x[n] and h[n].

Réponse acceptée

Roger Stafford
Roger Stafford le 19 Avr 2017
Modifié(e) : Roger Stafford le 19 Avr 2017
That's known as convolution, and you can use matlab's 'conv' function to do the required computation.
w = conv(x,h);
w = w(1:n+1);
Note: Zero indices are not allowed in matlab so the indices shown in your image will have to be increased by one. The first element is w(1) = x(1)*h(1), and the second element would be w(2) = x(1)*h(2)+x(2)*h(1), and so forth.
  5 commentaires
James Long
James Long le 19 Avr 2017
i just did wn(42:81)=[]; and it worked. thank you for your assistance Roger and Stephen.
Roger Stafford
Roger Stafford le 19 Avr 2017
@James: That's what the line "w = w(1:n+1);" was meant to accomplish!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by