← 返回 Skills 市场
wangyendt

Pywayne Dsp

作者 wangyendt · GitHub ↗ · v0.1.0
cross-platform ✓ 安全检测通过
620
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install dsp-2
功能描述
Digital signal processing toolkit for filtering, peak detection, detrending, and curve similarity. Use when working with sensor data, signal preprocessing, f...
使用说明 (SKILL.md)

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 实现的巴特沃斯滤波器类,支持完整的 IIR 滤波功能。

from pywayne.dsp import ButterworthFilter

# 方式 1:通过参数设计
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)

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

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

参数设计方法

ButterworthFilter.from_params(order, fs, btype, cutoff, cache_zi=True)
ButterworthFilter.from_ba(b, a, cache_zi=True)

参数说明

参数 类型 说明
order int 滤波器阶数
fs float 采样频率 (Hz)
btype str 'lowpass', 'highpass', 'bandpass', 'bandstop'
cutoff float/Tuple 截止频率 (Hz),带通为 (low, high) 元组
cache_zi bool 是否预计算稳态初始条件

实例方法

方法 说明
zi(self) 返回稳态初始条件数组
lfilter(self, x, zi=None) 零相位滤波,返回 (y, zf)
filtfilt(self, x, padtype='odd') 零相位滤波,可指定填充方式

Peak Detection - 峰值检测

peak_det

峰值检测函数,基于 MATLAB peakdet 转换。

from pywayne.dsp import peak_det

max_peaks, min_peaks = peak_det(signal, delta=0.5)

参数说明

参数 类型 说明
v array 输入信号
delta float 检测阈值,控制检测灵敏度
x array 可选的 x 轴数据,若未提供则使用下标

返回值(maxima_indices, minima_indices) - 峰值和谷值的索引位置

find_extremum_in_sliding_window

在滑动窗口中查找极值。

from pywayne.dsp import find_extremum_in_sliding_window

extrema = find_extremum_in_sliding_window(data, k=50)

参数说明

参数 类型 说明
data list 输入数据列表
k int 滑动窗口大小

返回值[minima, maxima] - 含局部极值的列表

FindSlidingWindowExtremum

滑动窗口极值查找器类,用于实时数据流。

from pywayne.dsp import FindSlidingWindowExtremum

detector = FindSlidingWindowExtremum(win=100, find_max=True)

# 应用新值
for sample in stream:
    current_peak = detector.apply(sample)
    # 处理 current_peak

方法

方法 说明
__init__(win, find_max) 初始化,指定窗口大小和查找类型(最大值或最小值)
apply(val) 更新窗口数据,返回当前极值

Detrending - 信号去趋势

SignalDetrend

信号去趋势处理器,支持多种去趋势算法。

from pywayne.dsp import SignalDetrend

# 去除线性趋势
detrender = SignalDetrend(method='linear')
detrended = detrender(signal)

# 去除均值趋势
detrender = SignalDetrend(method='mean')
detrended = detrender(signal)

# LOESS 去趋势
detrender = SignalDetrend(method='loess', span=0.3)
detrended = detrender(signal)

方法

方法 说明
method str
__call__(x) 应用去趋势算法处理输入信号

去趋势方法

方法 说明
none 不处理,返回原信号
mean 去除均值
linear 去除线性趋势
poly 去除多项式趋势
loess 局部加权回归平滑
wavelet 小波变换去趋势
emd EMD 去趋势
ceemdan CEEMDAN 去趋势
median 中值滤波去趋势

Curve Similarity - 曲线相似度

CurveSimilarity

曲线相似度计算,支持动态时间规整(DTW)。

from pywayne.dsp import CurveSimilarity

cs = CurveSimilarity()
distance = cs.dtw(curve1, curve2, mode='global')

方法

方法 说明
dtw(x, y, mode='global', *params) 计算两条曲线的 DTW 距离
mode str

Other Tools - 其他工具

OneEuroFilter

一欧罗滤波器,用于平滑信号并减少延迟。

from pywayne.dsp import OneEuroFilter

# 初始化
euro_filter = OneEuroFilter(te=0.02, mincutoff=1.0, beta=0.007, dcutoff=1.0)

# 应用滤波
smooth_value = euro_filter.apply(new_measurement, te=0.02)

参数说明

参数 类型 说明
te float 采样时间(秒),自动推断默认值
mincutoff float 最小截止频率
beta float 调整速率参数
dcutoff float 导数截止频率

WelfordStd

使用 Welford 算法进行在线标准差计算。

from pywayne.dsp import WelfordStd

std_calculator = WelfordStd(win=50)

for sample in data_stream:
    current_std = std_calculator.apply(sample)
    # 使用 current_std 进行判断

方法

方法 说明
__init__(win) 初始化,指定窗口大小
apply(val) 更新标准差计算,返回当前窗口标准差

应用场景

场景 使用函数
心电图信号分析 butter_bandpass_filter, peak_det
传感器数据平滑 OneEuroFilter, ButterworthFilter
数据预处理 SignalDetrend
曲线相似度比较 CurveSimilarity.dtw
质量监控 WelfordStd
安全使用建议
This SKILL.md is a documentation/integration guide for a Python package named pywayne.dsp and is internally consistent and low-risk: it neither requests credentials nor installs code. Two practical notes before enabling it: (1) provenance is unknown — there is no homepage or source link, so verify the package or its author if you plan to rely on an actual implementation; (2) because it is instruction-only, an agent following these examples would need the pywayne package available in the runtime Python environment — if it is not installed the imports will fail (and some platforms might attempt to auto-install packages). If you need a packaged implementation, prefer a skill that cites a well-known PyPI/GitHub release or provides an install spec.
功能分析
Type: OpenClaw Skill Name: dsp-2 Version: 0.1.0 The skill bundle contains standard metadata in `_meta.json` and a `SKILL.md` file that describes a digital signal processing toolkit. The `SKILL.md` provides documentation and usage examples for various DSP functions (filtering, peak detection, detrending, curve similarity). There is no evidence of prompt injection attempts, malicious code, data exfiltration, or any other harmful behavior in the provided files. The content is entirely aligned with the stated purpose of a DSP library.
能力评估
Purpose & Capability
Name and description claim DSP utilities and the SKILL.md contains only DSP function docs and examples (filters, detrend, DTW, etc.). Nothing requested (no env, no binaries) conflicts with that purpose.
Instruction Scope
SKILL.md contains API examples and descriptions only. It does not instruct the agent to read arbitrary files, access unrelated environment variables, call external endpoints, or perform system-level operations.
Install Mechanism
No install specification and no code files — lowest-risk instruction-only skill. No downloads, package installs, or archive extraction are requested.
Credentials
The skill declares no required environment variables, credentials, or config paths. That is proportionate for a documentation/usage skill.
Persistence & Privilege
Defaults apply (not always:true). The skill does not request persistent system changes or elevated privileges.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install dsp-2
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /dsp-2 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
Initial release of pywayne-dsp: A digital signal processing toolkit for sensor data and time-series analysis. - Provides Butterworth and One-Euro filters for noise suppression and signal smoothing. - Includes peak and extrema detection tools (peak_det, sliding window detection). - Supports various detrending methods (mean, linear, poly, loess, wavelet, EMD, median). - Offers dynamic time warping (DTW) for curve similarity measurement. - Implements fast online standard deviation calculation (Welford algorithm). - Suitable for sensor preprocessing, ECG analysis, feature extraction, and quality monitoring.
元数据
Slug dsp-2
版本 0.1.0
许可证
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Pywayne Dsp 是什么?

Digital signal processing toolkit for filtering, peak detection, detrending, and curve similarity. Use when working with sensor data, signal preprocessing, f... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 620 次。

如何安装 Pywayne Dsp?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install dsp-2」即可一键安装,无需额外配置。

Pywayne Dsp 是免费的吗?

是的,Pywayne Dsp 完全免费(开源免费),可自由下载、安装和使用。

Pywayne Dsp 支持哪些平台?

Pywayne Dsp 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Pywayne Dsp?

由 wangyendt(@wangyendt)开发并维护,当前版本 v0.1.0。

💬 留言讨论