Skip to main content

提取数字信号的时间包络

项目描述

DOI

信封

用于提取信号包络的 Python 模块。

更多信息在Github

交互式可视化在这里

功能

该模块实现了 3 个功能:

read_wav("path/to/mono/signal.wav") ,

返回一个元组(W, fps),其中 W 是一个 numpy 数组,fps是一个整数,其值为文件的帧速率。

save_wav(信号,路径=“test.wav”,fps = 44100)

将 NumPy 数组保存为 .wav 文件。

get_frontiers(W, mode=0) ,

当模式=0 时:

返回 NumPy 数组的元组(pos_ids, neg_ids),其中 NumPy 数组的正边界和负边界的索引表示离散波W

当模式 = 1 时:

X_envelope返回带有 wave 包络索引的 NumPy 数组W。请注意,为了获得这些点的包络值,np.abs(W[X_envelope])建议使用。

如果从兼容的设置(当前为 Windows 64 位)调用此函数,它会通过专门的本机代码更快地计算包络和边界。还提供了纯 Python 的后备版本,在这种情况下会打印一条警告,指示正在使用较慢的模式。在这两种情况下,用法是相同的,结果也是如此。

用法

安装模块:pip install signal-envelope

一个最小的例子是:

import signal_envelope as se

W, _ = se.read_wav("path/to/signal.wav")
X_pos_frontier, X_neg_frontier = se.get_frontiers(W, 0)
print(X_pos_frontier, W[X_pos_frontier])

X_envelope = se.get_frontiers(W, 1)
print(X_envelope, np.abs(W[X_envelope]))

在项目的Github存储库中可以找到许多测试 wav 文件。

资源

此存储库的代码可在Github上找到。

用过的图书馆

Libsndfile Boost 英特尔数学核心库

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

signal-envelope-1.3.tar.gz (15.7 kB 查看哈希

已上传 source

内置分布

signal_envelope-1.3-py3-none-any.whl (14.9 kB 查看哈希

已上传 py3