SPRAAK
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Functions
conv_d.c File Reference

Polynomial convolution in direct form. More...

Functions

void spr_conv_d (float a[], int La, float b[], int Lb, float c[])
 

Detailed Description

Polynomial convolution in direct form.

Author
Stefaan Van Gerven
Date
22 mei 1992

A direct implementation of a convolution of two vectors.

Formulas:

c[i] = SUM(j) b[j]*a[i-j] with j=0:Lb for i=0:La+Lb
// assume the vector a is zero extended at both sides

Arguments:

a[]
is an array with indices 0:La (input)
b[]
is an array with indices 0:Lb (input)
La+1 and Lb+1
are the lengths of the above defined input arrays
c[]
is the resulting output array with indices 0:La+Lb
Note
the actual implementation is different from the above formula, since no zero extensions is used and the sum of products (SOP) is calculated slightly different as a function of i in order to have the minimum number of multiplications
if conv is used for signals, beware that no history nor future of the signal is taken into account, this is a completely dif- ferent approach as in fir_d