Data in my project has been obtained directly with Edge Impulse with the Arduino Nano 33 BLE Sense. During data acquisition, the platform asks for the sample rate, where the only options are 50Hz or 100Hz.
The board features an LSM9DS1, and table 68 of the datasheet, among others, lists the available sample rates for the accelerometer sensor. The closest one is 119Hz.
My question is, how does Edge Impulse actually sample at 100Hz?
I need this to implement my own feature provider inside my project(I’m not using the Arduino libraries and I’m using custom blocks so this is not generated).
Of course, I can work with 119Hz(~120Hz) and upsample and downsample the features to achieve the desired sample rate, which shouldn’t be too complicated with the help of the processing sdk.
Still, I might be missing something or this is already implemented somewhere.
For future readers:
You can implement this with the help of functions from the SDK like ei::spectral::processing::butterworth_lowpass_filter
or arm_fir_interpolate_f32
from the CMSIS DSP library