Main Content

Signal Feature Extractor

Extract and analyze signal features

Since R2025a

Description

Streamline signal feature extraction to use in machine learning models. Use Signal Feature Extractor to extract time-domain and frequency-domain features from a signal. You can use the extracted features to train a machine learning model or a deep-learning network.

  • Extract statistical, pulse metrics, and harmonic time-domain features

  • Extract statistical, bandwidth, and peak-based frequency-domain features

  • Use entire signals or frames

  • Use parallel computation to accelerate feature extraction

  • Rank signal features with feature-ranking algorithms for classification workflows

  • Export labeled signal sets and extracted features

Signal Feature Extractor saves data as labeledSignalSet objects, MATLAB® tables, or matrices. You can use labeledSignalSet objects to train a network, classifier, or analyze data and report statistics.

For more information, see Use Signal Feature Extractor App.

Signal Feature Extractor app

Open the Signal Feature Extractor App

  • MATLAB Toolstrip: On the Apps tab, under Signal Processing and Communications, click the app icon.

  • MATLAB command prompt: Enter signalFeatureExtractor.

Examples

expand all

Extract the RMS, crest factor, and impulse factor features from a multichannel signal.

Load the dataset labelwhalesignals that includes two recordings (whale1 and whale2) of blue whale songs of trills and moans at a sample rate Fs. For more information about the whale songs dataset, see Label Signal Attributes, Regions of Interest, and Points.

load labelwhalesignals

Define a two-channel signal x as the amplitude of the whales' songs between 2.3819 seconds and 3.2175 seconds. The sample rate Fs is 4 kHz. While whale1's song at this time interval is a trill, whale2's song is a moan at the same time.

songIdx = round(2.3819*Fs):round(3.2175*Fs);
x = [whale1(songIdx) whale2(songIdx)];
strips(x)
yticklabels(["Whale2 Moan" "Whale1 Trill"])

Figure contains an axes object. The axes object contains an object of type line.

Extract frame-based signal features in time domain and frequency domain.

  1. Open Signal Feature Extractor. On the Extract Features tab, click New and select From Workspace in the Members list.

  2. In the dialog box, select the signal x. Add time information: Select Time from the drop-down list and enter the sample rate Fs, which is measured in Hz.

  3. Click Import and Close to import the signal and then close the dialog box. The signal appears in the Members browser.

  4. To extract features per signal frame, select Frame-based in the Frame Policy section. Specify a frame size and frame rate of 64 milliseconds and 50 milliseconds, respectively.

  5. Add time-domain features: Click Time-Domain in the Feature Generation gallery. Select RMS, Crest factor, and Impulse Factor. Click Add Features.

  6. Add frequency-domain features: Click Frequency-Domain in the Feature Generation gallery. Select Mean Frequency, and Welch's PSD. Click Add Features.

  7. To extract the selected signal features, click Extract . The app shows the extracted features in the table FeatureTable1. To see the features along the frames, expand the arrow under the Name column. Each column contains a feature. The Welch's PSD vector feature is listed in several columns.

Table of extracted features for the two whales. RMS, crest factor, impulse factor, mean frequency, and Welch's PSD.

Programmatic Use

expand all

signalFeatureExtractor opens the Signal Feature Extractor app.

Extended Capabilities

expand all

Version History

Introduced in R2025a

See Also

Apps

Objects

Blocks