Features not correctly generated "Features (x ms.): nan nan nan nan..."

Hello,

I deployed a model using a piezo-element as input with an MFE-block.


Features generated by the website work correctly.
When I deployed my model (on C++ or Arduino) and input only zero’s, the application does a classification. The problem is that this classification is not correct, because the features are not correctly generated. When I turned on debugging, I got:

Features (574 ms.): nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan 

After adding some print, the following line seems to be the cause, but I can’t pinpoint exactly where.
ei_run_classifier.h line in the function run_classifier.

int ret = block.extract_fn(swa.get_signal(), &fm, block.config, EI_CLASSIFIER_FREQUENCY);

I think this function calls the “extract_mfe_features” function, but before the last return line, the output is corrent (only zero’s).

What do I need to do to fix this issue?

C++ code can be found here: https://drive.google.com/file/d/1cqVxlzjehilM2hqyk-Aa85PDx25x6ieQ/view?usp=sharing

Could you kindly provide more feedback on what you’re trying to accomplish? Generally the MFE block is used for non-voice audio so while it might work in the Web UI, there could be some potential incompatibilities when applied to your dataset.

Hi,

Can you try a higher filter number? Is there a reason you set it to 1? Generally 6-8 is considered a minimum.

However, I will look into this, as even if it’s a theoretically poor choice, we shouldn’t allow a filter number of 1 if there’s a mathematical reason we can’t realize a cpp block with a filter number of 1

2 Likes