I have a complex vector (type double) and another vector (type double), which I would like to perform 2D convolution with. Most of the examples I've seen online are not for complex vectors, so I'm not sure how to go about implementing it.
These are my vectors:
vector<complex<double> > signal; // length of 100
vector<double> filter; // length of 101
my 'signal' vector looks like this...
25 + 0.0000i, -9.04508 + 18.3273i, -3.45492 - 8.388i... and so on
my 'filter' vector looks like this...
0, 2.56698e-09, 9.13094e-09, 1.14301e-08... and so on
Ideally I'd like to output in to a complex vector, type double and to be the same length as 'signal' So my output is:
vector<complex<double> > filtered_signal;
I'm still relatively inexperienced with C++ so any high-level tips/guidance on how to perform the calculation is appreciated.