Processing blocks
Extracting meaningful features from your data is crucial to building small and reliable machine learning models, and in Edge Impulse this is done through processing blocks. We ship a number of processing blocks for common sensor data (such as vibration and audio):
The source code of these blocks are available in the Edge Impulse processing blocks GitHub repository.
Custom processing blocks
If you have a very specific sensor, want to apply custom filters, or are implementing the latest research in digital signal processing, follow our tutorial on Building custom processing blocks.
Feature importance
In most of our DSP blocks, you have the option to calculate the feature importance. Edge Impulse Studio will then output a Feature Importance list that will help you determine which axes generated from your DSP block are most significant to analyze when you want to train a model.
Feature importance
For feature importance to work, you must have at least two labeled classes in your training dataset

This process of generating features and determining the most important features of your data will further reduce the amount of signal analysis needed on the device with new and unseen data.
To calculate the feature importance, a RandomForestClassifier is trained on the data and the feature_importances_ are extracted from the trained classifier.
Data normalization
In some cases, you may want to normalize your data before training a model. This is especially useful when your data has different scales or units, as it can help improve the performance of your model.
Normalize features

To enable data normalization, you can use the Normalize features option in the processing blocks generate features tab. This will learn the mean and standard deviation of each output column during the feature generation step, and apply a normalization step during training and inference.
Why normalize?
Machine-learning algorithms assume every input dimension has a comparable numeric range. Large differences (e.g., temperature ∈ [–10, 40] vs. vibration RMS ∈ [0, 2 000]) make the optimiser search in a distorted space, slowing training and sometimes letting one feature dominate the loss.
Many Edge Impulse DSP blocks already emit values with bounded ranges (e.g., image pixels are auto-normalised to 0–1 ), but generic numeric or multi-sensor pipelines typically are not. With the Normalize features option we can ensure that all features are on a similar scale, which can lead to better model performance.

As shown in the example above, normalizing the data can significantly improve the model's performance, leading to higher accuracy and lower loss.
See the Scikit-learn documentation on StandardScaler docs for more information on how normalization works.
Last updated
Was this helpful?