pywayne-dsp

pywayne-dsp is a skill for Claude Code, Codex from wangyendt/wayne-skills. It costs 73 tokens per session (2,724 once invoked), scanned A, original, MIT.

A Python toolkit for processing digital signals, such as measurements sampled over time. It includes filters, peak detection, trend removal, and methods for comparing signal curves.

In plain words
What is it for?
Use it to filter sensor signals, find peaks and valleys, remove trends, compare curves with dynamic time warping, and build signal-processing workflows in Python.
Why use it?
Raw sensor and time-series data can contain noise, gradual drift, and hard-to-find events. These operations prepare the data for analysis and help identify meaningful changes.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/wangyendt/wayne-skills/dsp
Any agent
npx skills add wangyendt/wayne-skills --skill dsp
Clone the repo
git clone --depth 1 https://github.com/wangyendt/wayne-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pywayne-dsp

README.md
[![agentmods](https://agentmods.dev/badge/skills/wangyendt/wayne-skills/dsp.svg)](https://agentmods.dev/skills/wangyendt/wayne-skills/dsp)
Your own site
<a href="https://agentmods.dev/skills/wangyendt/wayne-skills/dsp"><img src="https://agentmods.dev/badge/skills/wangyendt/wayne-skills/dsp.svg" alt="Measured on agentmods" height="20"></a>
Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,724 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00073 $0.02724
Opus 5 $0.00036 $0.01362
Sonnet 5 $0.00015 $0.00545
Haiku 4.5 $0.00007 $0.00272

Measured 6d ago against content hash ed32c7f45a54, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

pywayne-dsp scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

pywayne/dsp/SKILL.md · 322 lines

How it starts

The opening of the file, as written. The whole thing — 322 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Pywayne Dsp

数字信号处理工具集,提供滤波器、峰值检测、去趋势、曲线相似度等信号处理功能。

Quick Start

from pywayne.dsp import butter_bandpass_filter, peak_det, SignalDetrend

# Butterworth 低通滤波
filtered = butter_bandpass_filter(signal, order=3, lo=0.5, hi=40, fs=250)

# 峰值检测
peaks, valleys = peak_det(signal, delta=0.5)

# 信号去趋势
detrender = SignalDetrend(method='linear')
detrended = detrender(raw_signal)

Filtering - 滤波器

butter_bandpass_filter

巴特沃斯带通滤波器。

from pywayne.dsp import butter_bandpass_filter

# 带通滤波
filtered = butter_bandpass_filter(
    signal=raw_signal,
    order=4,
    lo=1,
    hi=50,
    fs=250,
    btype='bandpass'
)

参数说明

参数 类型 说明
signal array 输入信号
order int 滤波器阶数
lo float 下限截止频率 (Hz)
hi float 上限截止频率 (Hz)
fs float 采样频率,默认为 0(不归一化)
btype str 滤波器类型:'lowpass', 'highpass', 'bandpass', 'bandstop'
realtime bool 是否实时处理,默认 False

ButterworthFilter

基于 NumPy 的巴特沃斯滤波器类,同时支持传递函数 ba 和数值更稳定的二阶节级联 sos。 BA/SOS 执行核心均为 Direct Form II Transposed,对齐 SciPy 的 lfilter/sosfiltfiltfilt/sosfiltfilt

from pywayne.dsp import ButterworthFilter

# 方式 1:通过参数设计 BA
bf = ButterworthFilter.from_params(order=4, fs=200, btype='bandpass', cutoff=(1, 50))
y, zf = bf.lfilter(signal)

# 方式 2:通过系数构造
bf2 = ButterworthFilter.from_ba(b, a)
y, zf = bf2.lfilter(signal)

# 方式 3:SOS(高阶、窄带或接近 0/Nyquist 时推荐)
bf_sos = ButterworthFilter.from_params(
    order=8,
    fs=200,
    btype='bandpass',
    cutoff=(0.1, 10),
    output='sos',
)

# 也可直接使用 scipy.signal.butter(..., output='sos') 的系数
bf_sos2 = ButterworthFilter.from_sos(sos)

# 零相位滤波(前向-后向)
y = bf.filtfilt(signal)

# 流式处理:首段稳态初始化,后续传递 zf
state = bf_sos.zi() * chunks[0][0]
outputs = []
for chunk in chunks:
    y, state = bf_sos.lfilter(chunk, zi=state)
    outputs.append(y)

# 去趋势
detrended = ButterworthFilter.detrend(signal, method='linear')

参数设计方法

ButterworthFilter.from_params(order, fs, btype, cutoff, cache_zi=True, output='ba')
ButterworthFilter.from_ba(b, a, cache_zi=True)
ButterworthFilter.from_sos(sos, cache_zi=True)
ButterworthFilter.lfilter_zi(b, a)
ButterworthFilter.sosfilt_zi(sos)

Read the full file on GitHub · 322 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 322 lines · 73 tokens per session scan A ed32c7f45a54

Subscribe to this mod's changes

pywayne-dsp is a skill published in the GitHub repository wangyendt/wayne-skills (8 stars, last pushed 9d ago), licensed MIT. It adds 73 tokens to every session and 2,724 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

jupyter-notebook

Iterative Python via live Jupyter kernel (hamelnb).

NousResearch/hermes-agent · 18 tokens

matlab

Build, review, migrate, and safely plan MATLAB or GNU Octave numerical workflows, including arrays, tabular/time data, tests, projects, graphics, MAT files, and explicit Python interoperability.

K-Dense-AI/scientific-agent-skills · 42 tokens

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use…

K-Dense-AI/scientific-agent-skills · 73 tokens

pennylane

Hardware-agnostic quantum ML framework with automatic differentiation. Use when training quantum circuits via gradients, building hybrid quantum-classical models, or needing device portability across IBM/Google/Rigetti/IonQ. Best for variational algorithms (VQE, QAOA), quantum neural networks, and integration with…

K-Dense-AI/scientific-agent-skills · 98 tokens

biology-biopython

Bioinformatics with Biopython for sequence manipulation, file parsing, BLAST, and phylogenetics. Use when working with DNA/RNA/protein sequences or biological databases.

aiming-lab/AutoResearchClaw · 40 tokens

cuopt-numerical-optimization-api

LP, MILP, and QP (beta) with cuOpt — Python, C, and CLI. Use when the user is solving LP, MILP, or QP with any cuOpt interface.

NVIDIA/skills · 51 tokens