Is Flux a capable language for doing signal processing tasks?

Hello,

I’m trying to evaluate the Flux language to determine if it’s a viable tool for doing some basic signal processing tasks (think FFT, Convolution, Digital Filtering, etc.). However, I’m trying to avoid spending hours learning the language only to realize it can’t do what I’m hoping it can.

Let’s start with an FFT example. Here would be a basic pipeline of operations:

  1. Get an array of time series data from InfluxDB (we’ll stick to one channel for now)
  2. Reorder the elements within this array (specifically bit-reversal reordering)
  3. Scan this array repeatedly to calculate new values. Referring to the diagram below for example, the first iteration would involve an operation of x[0] = x[0] + x[4] and then later on some complex multiplications.

The main requirements would be able to iterate over an array of data repeatedly, index into different elements, and perform multiplications on those values to generate new element values.

So in general, would Flux have the ability to do some of these operations? I’m not super optimistic after my initial investigation of the language. Curious if there are more “math” heavy example of Flux.

Bump. Curious if anyone can offer insight.

Hello @tfhall,
I apologize for the delay thank you for bumping.
Are you using Cloud or OSS?
I recommend using InfluxDB v3 Cloud Serverless or waiting for OSS v3.
And taking advantage of the Python Client and pandas dataframe compatibility and using that instead of Flux.

OSS v3 should be coming later this year.
Or using v2 and relying on the client libraries again for your data transformation and analysis so that you can easily upgrade to v3 if you need later.