Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Matlab Code for Convolution is this right?

  1. Sep 23, 2007 #1
    1. The problem statement, all variables and given/known data

    A DT system has the unit response h[n] = (0.2(1.3)^n)u[n]. You then input x[n] = sin(n*pi/2)u[n]. Find the convolution.

    2. Relevant equations


    3. The attempt at a solution

    >> n = 0:30;
    >> h = 0.2*(1.3).^n;
    >> x = sin(n*pi/2);
    >> s = conv(h,x);

    I left out u[n] because we know that u[n] = 1 whenever n >= 0 and 0 when n < 0. So, if I am correct, it is just multiplying the input by 1, if n >=0.

    This should be right, just wanted to verify.
    Last edited: Sep 23, 2007
  2. jcsd
  3. Sep 23, 2007 #2
    Looks good to me. Just remember that the far end of the convolution sum will not be valid because you are truncating it at 30. What the algorthm does is insert zeros at the front and back of the signals. This is all right on the low end because the signals are zero anyway below zero, but it will cause invalid results at the high end. This can be fixed by simply making the signals longer than you need.
  4. Sep 23, 2007 #3
    oh it didnt specify how far n should go, so i made it randoml from 0 to 30.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook