GNU Radio Manual and C++ API Reference  3.7.7
The Free & Open Software Radio Ecosystem
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages

Overview

This block computes the dot product (or inner product) between two vectors, the input and taps vectors. Given a set of num_points taps, the result is the sum of products between the two vectors. The result is a single value stored in the result address and will be complex.

Dispatcher Prototype

void volk_32fc_32f_dot_prod_32fc(lv_32fc_t* result, const lv_32fc_t* input, const float * taps, unsigned int num_points)

Inputs

  • input: vector of complex samples
  • taps: floating point taps
  • num_points: number of samples in both input and taps

Outputs

  • result: pointer to a complex value to hold the dot product result.

Example

int N = 10000;
float *t = (float*)volk_malloc(N*sizeof(float), volk_get_alignment());
<populate x and t with some values>
volk_32fc_dot_prod_32fc(&y, x, t, N);