matlab-extract-signal-features

Extract per-frame time, frequency, and time-frequency features from 1D signals in MATLAB.

995|122|Updated Apr 3, 2026
One-click install
npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-extract-signal-features
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: matlab-extract-signal-features
Source: https://github.com/matlab/matlab-agentic-toolkit/tree/main/skills-catalog/signal-processing/matlab-extract-signal-features
Command: npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-extract-signal-features

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Choosing and correctly configuring MATLAB's three signal feature extractor objects is error-prone: feature flags differ per extractor, per-feature parameter names are not guessable, and time-frequency features are gated by the chosen transform. This Skill guides an AI agent to pick the right extractor, configure it with real parameters only, and produce a per-frame feature table ready for downstream machine learning.

Core Features & Use Cases

  • Extractor selection and configuration: Chooses among signalTimeFeatureExtractor, signalFrequencyFeatureExtractor, and signalTimeFrequencyFeatureExtractor based on a spectral-stationarity pre-check, then configures SampleRate, FrameSize, and overlap correctly.
  • Verified parameter and compatibility references: Per-extractor reference files document every valid feature flag, per-feature and per-transform parameter, and the transform-by-feature compatibility matrix, preventing hallucinated API calls.
  • GPU and batch extraction patterns: Provides a canUseGPU-guarded gpuArray path and parallel datastore extraction with UseParallel, plus post-extraction aggregation and reproducibility patterns.
  • Use Case: An engineer with vibration sensor recordings asks for a feature table to train a fault classifier. The Skill runs a stationarity check, builds a multi-domain candidate feature list, configures the extractors, and returns a per-frame table aligned across domains.

Quick Start

Ask the agent to extract time, frequency, and time-frequency features from your 1D signal into a per-frame table for classifier training.

Frequently Asked Questions about matlab-extract-signal-features

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I extract features from a signal in MATLAB?

Configure one of the three extractor objects (signalTimeFeatureExtractor, signalFrequencyFeatureExtractor, or signalTimeFrequencyFeatureExtractor) with SampleRate, FrameSize, and feature flags, then call extract(sFE, x) on your column-vector signal. Set FeatureFormat to "table" when mixing scalar and vector features.

Which MATLAB feature extractor should I use for my signal?

Use signalTimeFeatureExtractor for amplitude and impulsiveness metrics, signalFrequencyFeatureExtractor for stationary spectral features, and signalTimeFrequencyFeatureExtractor when the spectrum changes over time. A quick pspectrum spectrogram plus per-frame MeanFrequency drift ratio tells you which regime your signal is in.

Does signal feature extraction in MATLAB support GPU acceleration?

Yes, all three extractors accept gpuArray input when Parallel Computing Toolbox is installed, guarded by canUseGPU(). Note that signalTimeFrequencyFeatureExtractor only gained gpuArray support in R2024b, and the emd and vmd transforms do not support GPU input.

Why does setExtractorParameters fail with an unmatched parameter error?

Parameter names are specific to each feature and transform and are not guessable from the feature name; for example, PowerBandwidth takes RelativeAmplitude, not a power value. Check the per-extractor reference tables and copy the parameter name verbatim before calling setExtractorParameters.

What are the limitations of MATLAB signal feature extractors?

They handle single-channel 1D signals only, so multichannel matrices must be split into per-column calls. Filter design, audio-specific features like MFCC, batch dataset orchestration, and 2D or image features are out of scope.

Should I aggregate per-frame features before training a classifier?

Only aggregate when the downstream model needs one fixed-length vector per signal, such as fitcecoc or fitcsvm; collapse frames with varfun(@mean, ...) after dropping the frame time columns. Sequence models like LSTM or 1-D CNNs should consume the per-frame table directly.