Skip to main content
10-Marble
January 8, 2011
Question

Understanding Convolution

  • January 8, 2011
  • 2 replies
  • 3529 views

I am trying to understand the process of constructing a time-area hydrograph i.e. a Runoff Computation by Convolution (linear superposition and addition)

Qn = k=1,n An-k+1 ik (ik = rainfall excess)

Q1 = A i1

Q2 = A2 i1 + A1 i2

Q3 = A3 i1 + A2 i2 + A1 i3

Q4 = A4 i1 + A3 i2 + A2 i3 + A1 i4 . . . etc.

I don't want to use the build-in function viz. convol(x,y) which is part of the Signal Processing Pack but rather develop my own algorithm or function which will help me understand the convolution process that I further explain in the attached worksheet. The best and simplest procedure that I have come across is to develop a function using the summation procedure viz Sum(xk,yn-k) from which I have constructed a function called CONVOLUTE. However this procedure when compared to the inbuilt function convol(x,y) only produces half the necessary ordinates (to see I show the output of each function and have graphed both solutions for comparison). Does anyone know a more general and/or more adroit way to emulate the output of the "convol" built-in function?

Your help will be much appreciated.

Regards, Mark Buckton

2 replies

12-Amethyst
January 8, 2011

Mark,

You need to fill the x and y vectors with 0s from the end of the data to n+1 rows. See attached.

Wayne

1-Visitor
February 6, 2011

Dear mark,

while convolution using multiplication operator is easy, when vector dimensions become high it is very time consuming, attached you find convolution using fast fourrier transform which is much more efficient for high dimension vectors.

br

pierre navidi