Step-by-Step Guide: Using MATLAB for Deep Learning in Sound Analysis for Fault Detection

This step-by-step guide explores how to leverage MATLAB and deep learning to detect audible faults in machinery.

  • 518

In the world of engineering and industrial systems, early fault detection is a key step toward ensuring the reliability and safety of complex machinery. Traditional fault detection methods often fall short when dealing with the intricacies of modern engineering systems. This is where deep learning enters the picture as a powerful tool to enhance fault detection capabilities, as they are designed to learn and recognize intricate patterns within data, automatically.

In this step-by-step guide, we explore how to leverage MATLAB and deep learning to detect audible faults in machinery. This guide is aimed at engineers and data scientists looking to harness the power of deep learning in fault detection.

Step 1: Setting up the MATLAB environment

Before diving into deep learning for fault detection, ensure you have MATLAB installed, along with the Deep Learning and Audio Toolbox. If you don’t have MATLAB, you can obtain it through MathWorks’ official website. The Deep Learning Toolbox provides essential tools and functions for implementing deep learning models, while the Audio Toolbox provides powerful tools and algorithms for processing audio data.

Step 2: Data Collection

The first step in sound-based fault detection is to collect audio data. This can be achieved by deploying microphones near the machinery or equipment in question. Ensure that the data is representative of normal and faulty operation and store it in a suitable audio format, such as WAV or MP3.

After collecting the data, you must perform these essential data preprocessing tasks:

  • Data Cleaning: Audio data often contains noise and artifacts. In MATLAB, you can use the Data Cleaner App to apply noise reduction techniques and eliminate any sounds that are irrelevant.
  • Segmentation: Divide the recorded audio data into shorter, manageable segments, typically using overlapping windows.

Step 3: Data Labeling and Annotation

Fault detection is a supervised learning problem, which means that you’ll need labeled data to train your deep learning model. Label each audio segment with the corresponding class (normal or fault) using a reliable labeling tool or script. In MATLAB, you can use the Audio Labeler App to streamline the labeling process. Make sure to maintain the consistency and accuracy of labels.

Step 4: Feature Extraction and Spectrogram Generation

Sound data, in its raw form, is unsuitable for direct input into deep learning models. Features must be extracted to transform the audio data into a format that the model can work with. In sound analysis, one possible solution is to use spectrograms, which are a visual representation of the frequency spectrum of a signal as it varies over time.

In MATLAB, you can extract features and generate spectrograms using the following steps:

  • Use the Audio Toolbox to read and load audio data;
  • Apply the short-time Fourier transform (“STFT”) to convert the audio signals into spectrograms. Use the spectrogram function in MATLAB to accomplish this.

Step 5: Data Splitting and Preprocessing

With labeled data and spectrograms in hand, you’re ready to prepare the data for training and testing the deep learning model. This involves splitting the data into training and testing sets.

These data preprocessing steps are essential:

  • Normalize the spectrograms to ensure that they have a consistent scale;
  • Augment the training data if it’s limited. Data augmentation techniques, such as time warping, pitch shifting, and adding noise, can help diversify the dataset and improve model robustness.


Step 6: Building the Deep Learning Model

Now, it’s time to construct a deep learning model using the Deep Learning Toolbox in MATLAB. There are various architectures to choose from. Using two-dimensional spectrograms, one typical choice is a convolutional neural network (“CNN”).

Here’s a basic example of how to build a CNN model from scratch in MATLAB:

layers = [

imageInputLayer([numRows, numColumns, numChannels])

convolution2dLayer(3, 32, ‘Padding’, ‘same’)


maxPooling2dLayer(2, ‘Stride’, 2)

convolution2dLayer(3, 64, ‘Padding’, ‘same’)


maxPooling2dLayer(2, ‘Stride’, 2)





You can adapt the architecture to your specific needs. The layers should match the dimensions of your spectrograms and the number of classes (in this case two, normal or fault). You can design your network graphically as well, by using the Deep Network Designer App.

Step 7: Model Training and Validation

Train the deep learning model using the training dataset you prepared in Step 5. In MATLAB, you can use the “trainNetwork” function to specify training options, such as the number of training epochs, mini-batch size, and validation data. You can track the training progress and monitor accuracy and loss as well.

Step 8: Model Evaluation and Testing

After training, it’s crucial to evaluate the model’s performance. Employ the testing dataset you created in Step 5 to assess the model’s accuracy and generalization to new data.

Use MATLAB’s built-in functions for evaluation, such as initiating a classify and confusion chart for calculating common metrics such as accuracy, precision, recall, and F1-score.

Step 9: Model Deployment and Real-time Monitoring

Once the deep learning model is trained and validated, you can deploy it for real-time monitoring of machinery or equipment. This involves capturing audio data in real-time, extracting spectrograms, and passing them through the model to detect faults.

MATLAB provides tools for real-time data acquisition and processing. You’ll need to ensure that the model operates in the environment where it’s needed, providing it access to the appropriate sensors and microphones.


In this step-by-step guide, we’ve explored how to use MATLAB for deep learning-based fault detection through sound analysis. By following these steps, engineers and data scientists can harness the power of deep learning to detect faults in machinery, equipment, and systems, at the end of the day ensuring their reliability and safety.


Learn More

  • Introduction Blog: Fault Detection Using Deep Learning in MATLAB
    Gain an overview and learn the basics of optimizing the fault detection process with deep learning in MATLAB. Explore Convolutional Neural Networks (CNNs), Recurrent Neural Networks (RNNs), and advanced tips for precision and reliability.
    Read the blog
  • On-Demand Webinar: Deep Learning for Fault Detection: Part 1 – Sound Analysis
    Delve further into the realm of deep learning for fault detection with this comprehensive webinar. Gain insights into sound analysis techniques and enhance your knowledge in fault detection applications.
    Watch the webinar
  • Blog and Video: Deep Learning for Images Classification
    Expand your expertise in deep learning by exploring its application in image classification. Witness practical implementations and learn how deep learning techniques can be adapted for various scenarios.
    Watch the video
  • E-Book: “Deep Learning with MATLAB
    Take a deep dive into the world of deep learning with our comprehensive e-book. Explore advanced techniques, case studies, and hands-on examples to elevate your proficiency in applying deep learning concepts.
    Read the e-book

Recommended Events

Recommended Posts

Ai robotics working on a car

AI: Driving the Industry Towards Greater Success

Artificial intelligence (AI) is seen as a promising technology that can help leading OEMs to maintain their position as market leaders. In this post, read about how AI is changing the manufacturing sector, as well as its potential advantages and potential drawbacks.

MATLAB and Simulink for Automotive

MATLAB and Simulink for Automotive

Discover how MATLAB and Simulink drive automotive innovation. Learn how these tools expedite vehicle development and help OEMs meet evolving market demands.

Machine Learning with MATLAB

Explore how MATLAB transforms the world of machine learning. Discover 5 areas where MATLAB can help solve diverse learning problems. From interactive apps to Simulink integration, we’ve got you covered.

Excitation Signals for Identification of Dynamic Systems

Excitation Signals for Identification of Dynamic Systems

Learn about optimizing multisine signals for precise frequency-domain system identification. Discover the importance of low Crest Factor (CF) in excitation signals and explore techniques to enhance signal-to-noise ratios (SNR) for improved measurement accuracy.

MATLAB and Simulink for Artificial Intelligence

Learn about MATLAB and Simulink’s capabilities for creating AI-driven products and services, including the benefits of using these platforms, key components of the AI workflow, and the integration of AI models into real-world applications.