Python实现的多窗方法,用于估计某些局部平稳过程的Wigner谱
项目描述
LSPOpt
本模块是Python实现的多窗方法,该方法在[1]中描述,用于估计某些局部平稳过程的Wigner谱。
摘要来自[1]
本文研究了时间离散的多窗,这些窗给出了对一类局部平稳过程(LSPs)的均方误差最优Wigner谱估计。评估了LSP时间可变Wigner谱估计的准确性,并将其与其他常用方法进行了比较。最优多窗也通过Hermite函数近似,这更有效,同时研究了由此近似引入的误差。此外,多窗谱估计中包含的窗口数量往往至关重要,并对此数量限制引起的误差进行了研究。最后,相同的最佳权重集合可以存储并用于不同的窗口长度。因此,最优多窗被证明可以通过Hermite函数很好地近似,并且可以使用有限的窗口数量进行均方误差最优的频谱估计。
安装
通过pip安装
pip install lspopt
如果您想使用conda
,请参阅此存储库中的说明。
测试
使用 pytest
进行测试
pytest tests/
查看本 README 文件顶部的测试徽章,以获取测试覆盖率报表的链接。
用法
仅生成锥形窗口,使用 lspopt
方法
from lspopt import lspopt
H, w = lspopt(N=256, c_parameter=20.0)
还有一个方便的方法,可以使用与 lspopt
多锥形窗口一起使用的SciPy 频谱图方法
from lspopt import spectrogram_lspopt
f, t, Sxx = spectrogram_lspopt(x, fs, c_parameter=20.0)
然后可以使用例如 matplotlib 进行绘制。
示例
可以生成一个 Chirp 过程实现,并在此上运行频谱图方法。
import numpy as np
from scipy.signal import chirp, spectrogram
import matplotlib.pyplot as plt
from lspopt.lsp import spectrogram_lspopt
fs = 10000
N = 100000
amp = 2 * np.sqrt(2)
noise_power = 0.001 * fs / 2
time = np.arange(N) / fs
freq = np.linspace(1000, 2000, N)
x = amp * chirp(time, 1000, 2.0, 6000, method='quadratic') + \
np.random.normal(scale=np.sqrt(noise_power), size=time.shape)
f, t, Sxx = spectrogram(x, fs)
ax = plt.subplot(211)
ax.pcolormesh(t, f, Sxx)
ax.set_ylabel('Frequency [Hz]')
ax.set_xlabel('Time [sec]')
f, t, Sxx = spectrogram_lspopt(x, fs, c_parameter=20.0)
ax = plt.subplot(212)
ax.pcolormesh(t, f, Sxx)
ax.set_ylabel('Frequency [Hz]')
ax.set_xlabel('Time [sec]')
plt.tight_layout()
plt.show()
顶部:使用 SciPy 的频谱图方法。底部:使用 LSPOpt 的频谱图解决方案。
参考文献
变更日志
此文件将记录本项目所有的显著变更。
格式基于 Keep a Changelog,本项目遵循 语义化版本控制。
[1.3.0] - 2023-01-24
变更
- 修改了 CI 中的测试矩阵
移除
- 支持 Python 2.7 和 3.6
- 依赖
six
1.2.0 - 2022-06-08
添加
- 新的绘图文件
修复
- PyPI 上的源分布损坏。修改了
MANIFEST.in
以修复此问题 (#5 和 #6) - 缺失绘图文件的 URL
- 修复了使用
1e3
表示法的某些不正确的整型声明
移除
- 移除 Pipfile
1.1.1 - 2020-09-28
添加
- 添加
CHANGELOG.md
变更
- 将 CI 从 Azure Devops 更改为 Github Actions
1.1.0 - 2019-06-19
添加
- 第一个 PyPI 发布版本
[1.0.0] - 2016-08-22
添加
- 被视为功能完善、稳定的库。
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
lspopt-1.3.0.tar.gz (39.3 kB 查看哈希)
构建分布
lspopt-1.3.0-py2.py3-none-any.whl (35.1 kB 查看哈希)