gauteh / sfy

🌊 A lightweight wave buoy for near-shore deployments.
MIT License
42 stars 6 forks source link

Oversample to kalman filter (about 800Hz) and store desired freq (e.g. 20Hz) #23

Closed gauteh closed 2 years ago

gauteh commented 2 years ago

Probably use a running window of e.g. 128 samples, and a FIR filtering (convolution / FFT) + decimation. CMSIS-DSP has fir_filtering built in.

@jerabaul29 : You use a different filter for your buoys, any particular reason for that choice?

jerabaul29 commented 2 years ago

I simply used a n-sigma filter to remove possible outliers (ie remove points further than 3 sigma), and then did averaging. I think that we are oversampling at such a high rate that doing some more sophisticated filtering does not change much - but may be wrong of course.

gauteh commented 2 years ago

Ok. I need to oversample for a different purpose, it will be similar to your running (?) average. Since I record and transmit time-series, and don't process the samples to a spectra I can't send data at e.g. 833 Hz. The maximum the modem can do with only using the memory of the MCU is about 100Hz. Could probably do 833Hz with a sd-card or FRAM memory. The kalman-filter needs much higher input that e.g. 25 Hz so that it can keep track of orientation, but the output I need from the kalman-filter should only be 25 Hz. But then I need to filter it to avoid aliasing. Note that the IMU has to do analog (presumably) filtering before outputting 833 Hz.

gauteh commented 2 years ago

Closed in #24 .