mcpbeat Sign in

Matlab Prepare Signal Data Agent Skill

| Use this skill when conditioning, loading, preparing, or labeling signal gaps, remove drift, deoutlier, denoise, resample/align a time base) BEFORE analysis; building a `signalDatastore` pipeline; creating a `labeledSignalSet` for Signal Labeler; deriving labels (filename, folder, in-file, ROI, time-frequency ROI); stratified train/val/test splits; framing long signals; parallel processing; and shaping datastore output for `trainnet`. Triggers include "clean up this signal", "remove drift / detrend", "fill gaps", "remove spikes / outliers", "denoise", "resample to a uniform rate", "align channels", "labels from filenames", "stratified split", "prepare for Signal Labeler", and function names like `fillgaps`, `fillmissing`, `detrend`, `filloutliers`, `smoothdata`, `resample`, `synchronize`, `signalDatastore`, `labeledSignalSet`, `filenames2labels`, `folders2labels`, `splitlabels`, `framesig`, `framelbl`, `createDatastores`.

53k tokens
context cost
the whole folder, loaded on every use
39
files
instructions only
0
copies elsewhere
how many repositories repackaged it
865
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-prepare-signal-data

The instruction itself

7 sections, as written by the author

Prepare Signal Data

> Look in Signal Processing Toolbox first. The conditioning, labeling,

> splitting, framing, and partitioning helpers here live in Signal Processing

> Toolbox — not in Stats & ML Toolbox or generic-MATLAB string utilities.

The arc: condition a raw signal (clean it) -> load a folder into a

datastore -> label -> split / frame -> hand off to trainnet. Each

stage is a workflow file; this page routes you to the right one.

When to Use

  • Cleaning a single signal before analysis: fill gaps, remove drift, deoutlier,

denoise, put it on a uniform time base, align multiple channels.

  • Loading / preparing signal data for ML training: datastores, labels from

filenames or folders, stratified splits, framing, parallel processing.

  • Structured labeling: labeledSignalSet for Signal Labeler, all label types.

When NOT to Use

  • Raw .wav audio classification with Audio Toolbox available.

audioDatastore is the canonical path (this skill's custom-ReadFcn

workflow handles .wav only when Audio Toolbox is absent —

references/wf-custom-readfcn.md).

  • Frequency-selective filter DESIGN (band isolation, notch, custom FIR/IIR)

— see the matlab-design-digital-filter skill. This skill's conditioning is

about cleaning, not designing filters.

  • Computing per-frame features (RMS, crest factor, spectral / bandwidth,

time-frequency features) from an already-conditioned signal — see the

matlab-extract-signal-features skill. This skill's framesig / framelbl

are for manual per-window labeling / supervision, not for deriving a feature

table; the signal*FeatureExtractor objects window internally and emit the

table.

Best practices

  • Deliverable is a runnable .m script the user can save, version, and

re-run — not workspace state.

  • Prefer the highest-level function that does the job. detrend /

smoothdata / fillmissing / resample read cleanly and are easy for a

non-expert to follow. Drop to a lower-level / more-configurable path

(designfilt + filtfilt, a hand-built AR model, a named primitive) only

when you need control the high-level call cannot give, or when the user asks.

Readability first; escalate to low-level for necessity, not by default.

  • The high-level call usually exposes the control you think you need. In

particular smoothdata(x, "sgolay", fl) takes the frame length fl as an

argument — it does NOT hide it — so prefer it over calling sgolayfilt

directly. Reach for sgolayfilt only for what the dispatcher genuinely

lacks (derivative output via dn, or an unusual polynomial order).

0. Common reflexes

If your first instinct is one of these, the canonical replacement is one row away.

| Reflex | Canonical | Detail |

|---|---|---|

| Hand-design a highpass/designfilt to remove a smooth drift | detrend(x, n) — escalate n = 1 -> 2 -> 3 before reaching for a filter; polynomial detrend has unity passband gain | references/fn-detrend.md |

| Invent a gap-filler (regularizeNaNs, inpaintn — not real) | fillmissing (interp) for short gaps; fillgaps (SPT, AR) for long gaps in oscillatory signals | references/wf-repair-missing.md |

| Hand-roll retime + shift + retime + concat to align channels | synchronize(A, B, ...) — one call to a shared grid | references/wf-align-channels.md |

| Custom ReadFcn for a .csv | signalDatastore default reader + SignalVariableNames | references/fn-signaldatastore.md |

| cvpartition for a datastore split | splitlabels + subset(ds, idx{k}) | references/fn-splitlabels.md |

| regexp / extractBefore / fileparts for labels from filenames | filenames2labels(sds, Extract=...) | references/fn-filenames2labels.md |

| regexp / nested fileparts for labels from subfolders | folders2labels(sds.Files) | references/fn-folders2labels.md |

| Manual framing loop with (i-1)*hop+1 | framesig(x, fl, OverlapLength=...) | references/wf-frame-and-label.md |

| Manual ROI-to-frame vote with containers.Map | framelbl(rois, ...) | references/wf-frame-and-label.md |

| for loop load(file) to read in-file label variables | signalDatastore(folder, SignalVariableNames=["x","label"]) | references/fn-signaldatastore.md |

| signalMask when you need Signal Labeler interop | labeledSignalSet with ROI labels (signalMask can't import) | references/fn-labeledsignalset.md |

| signalLabeler(lss) (pass the set as an arg) | Launch bare signalLabeler (zero args), then Import -> From Workspace or From File | references/wf-label-and-export.md |

> SPT-specialized functions exist — reach for them, don't reinvent.

> fillgaps (AR gap fill), medfilt1 / hampel (impulse handling),

> sgolayfilt / smoothdata(...,"sgolay") (feature-preserving smoothing) are

> in Signal Processing Toolbox.

1. Workflows

Each workflow file is the entry point and lists the functions it uses. Start here.

| Workflow | Use when | Reference |

|---|---|---|

| Repair missing samples | NaN gaps / dropouts to fill. | references/wf-repair-missing.md |

| Detrend, smooth, deoutlier | Drift, spikes, and/or broadband noise on one signal (smoothing/denoising lives here). | references/wf-detrend-smooth-deoutlier.md |

| Align multi-rate / offset channels | Several channels onto a shared time base. | references/wf-align-channels.md |

| Put one channel on a uniform rate | One channel -> uniform grid at a chosen rate: jittery timestamps to regularize, OR already uniform but the wrong rate to resample. | references/wf-uniform-rate.md |

| Wavelet denoising (escalation) | Non-stationary/multi-scale noise a tuned sgolayfilt can't remove; wdenoise (Wavelet TB). | references/wf-denoise.md |

| Envelope extraction | Amplitude outline (AM demod, peak hull) — not cleaning. | references/wf-envelope.md |

| Load + label + split | Folder of files -> datastore for training. | references/wf-load-and-split.md |

| Frame long signals + per-frame labels | Long signals, per-window supervision. | references/wf-frame-and-label.md |

| Label + export (all label types) | Structured labels (attribute/ROI/point/TF-ROI), export to Signal Labeler / DL. | references/wf-label-and-export.md |

| Parallel processing across a parpool | Per-signal work across workers. | references/wf-parallel-process.md |

| Custom ReadFcn (only when needed) | Format isn't .mat / .csv, or has a metadata prelude. | references/wf-custom-readfcn.md |

| Hand-off to trainnet | Datastore ready; shape for trainnet / combine. | references/wf-handoff-to-dl.md |

> Each workflow file names the fn- reference pages for the functions it uses;

> there is no separate function index — enter through the workflow that matches

> your task, or the reflex table above.

2. Ordering when a signal needs several conditioning steps

The governing principle (this is the real rule): order the steps so an

earlier operation does not corrupt the input to a later one. Spikes bias

least-squares fits and get smeared by filters/resamplers; an un-removed trend

gets averaged into the signal by a smoother; most operations choke on NaN.

Reason from that for the signal in front of you — do not follow a fixed chain

blindly.

Default heuristic (a good starting order, not a universal law):

outliers -> detrend -> smooth, with fill and align placed by the principle above.

  • outliers -> detrend -> smooth is the verified core: remove spikes before

a polynomial detrend (a spike biases the fit) and before a smoother (a

smoother spreads the spike across its window); detrend before smooth so the

smoother isn't averaging across a trend.

  • Fill NaN before any step that can't handle missing data (detrend,

filters, most smoothers).

  • Align / resample: putting a signal on a new grid (retime/synchronize)

*creates* NaN at non-overlapping times, so fill after aligning. BUT if the

signal has spikes, deoutlier *before* resampling — resample's anti-alias

filter will smear an un-removed spike. So align-vs-outliers order depends on

the signal; the principle decides, not a fixed sequence.

Not every signal needs every step — identify which apply, order them by the

principle, and each workflow file has an off-ramp if your problem is actually a

different family.

----

Copyright 2026 The MathWorks, Inc.

----

Other skills for the same job

different authors, same section of the catalogue
AgentDB Learning Plugins
by Microck
×1

Create and train AI learning plugins with AgentDB's 9 reinforcement learning algorithms. Includes Decision Transformer, Q-Learning, SARSA, Actor-Critic, and more. Use when building self-learning agents, implementing RL, or optimizing agent behavior through experience.

3k tokens
Agentdb Learning Plugins
by ComeOnOliver
×1

Create and train AI learning plugins with AgentDB's 9 reinforcement learning algorithms. Includes Decision Transformer, Q-Learning, SARSA, Actor-Critic, and more. Use when building self-learning agents, implementing RL, or optimizing agent behavior through experience.

7k tokens
Langchain Architecture
by wshobson

Design LLM applications using LangChain 1.x and LangGraph for agents, memory, and tool integration. Use when building LangChain applications, implementing AI agents, or creating complex LLM workflows.

5k tokens
Nemoclaw Maintainer Policies
by NVIDIA
vendor

Provide read-only NemoClaw maintainer policy. Use for questions about Issue Type, labels, Project fields, release labels, triage, duplicates, blocked items, and maintainer decisions. Trigger keywords - maintainer policy, workflow policy, project workflow, issue type, labels, label taxonomy, needs labels, project status, blocked issue, duplicate issue, daily release label, release train, triage policy.

25k tokens
HTTP Load Profiler
by zebbern

Run stepped HTTP load tests with ab/wrk, ramping concurrency levels to collect p50/p90/p99 latency, detect performance inflection points, and recommend optimal concurrency. Triggered by requests like 'load test this URL', 'benchmark my API', 'find the max concurrency', or mentions of p99 latency, throughput saturation, or capacity planning.

5k tokens scripts
I4h Workflow Dataset Teleop
by NVIDIA
vendor

Record episodes for an agentic env via teleoperation (keyboard, SO-ARM leader, or VR) into HDF5. Use when the user wants to teleop or record human demos.

5k tokens
Detecting Data Anomalies
by foryourhealth111-pixel

| Investigate outliers, rare events, spikes, and suspicious records in datasets. Use as an explicit anomaly-analysis helper when you want concrete anomaly-detection workflow guidance, not generic data validation or end-to-end ML ownership.

4k tokens scripts
LLM Council
by aiwithremy

Run any question, idea, or decision through a council of 5 AI advisors who independently analyze it, peer-review each other anonymously, and synthesize a final verdict. Based on Karpathy's LLM Council methodology. MANDATORY TRIGGERS: 'council this', 'run the council', 'war room this', 'pressure-test this', 'stress-test this', 'debate this'. STRONG TRIGGERS (use when combined with a real decision or tradeoff): 'should I X or Y', 'which option', 'what would you do', 'is this the right move', 'validate this', 'get multiple perspectives', 'I can't decide', 'I'm torn between'. Do NOT trigger on simple yes/no questions, factual lookups, or casual 'should I' without a meaningful tradeoff (e.g. 'should I use markdown' is not a council question). DO trigger when the user presents a genuine decision with stakes, multiple options, and context that suggests they want it pressure-tested from multiple angles.

5k tokens

How to use it

Copy the folder

Take matlab/matlab-prepare-signal-data from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.