# Stockwell
Python package for time-frequency analysis through Stockwell transform.
Based on original code from [NIMH MEG Core Facility].
[![cf-badge]][cf-link]
[![PyPI-badge]][PyPI-link]
[![license-badge]][license-link]
## Installation
### Using Anaconda
If you use [Anaconda], the latest release of Stockwell is available via
[conda-forge][cf-link].
To install, simply run:
conda install -c conda-forge stockwell
### Using pip and PyPI
The latest release of Stockwell is available on the
[Python Package Index][PyPI-link].
You can install it easily through `pip`:
pip install stockwell
### Installation from source
If no precompiled package is available for you architecture on PyPI, or if you
want to work on the source code, you will need to compile this package from
source.
To obtain the source code, download the latest release from the
[releases page][releases-link], or clone the GitHub project.
#### C compiler
Part of Stockwell is written in C, so you will need a C compiler.
On Linux (Debian or Ubuntu), install the `build-essential` package:
sudo apt install build-essential
On macOS, install the XCode Command Line Tools:
xcode-select --install
On Windows, install the [Microsoft C++ Build Tools].
#### FFTW
To compile Stockwell, you will need to have [FFTW]
installed.
If you use [Anaconda] (Linux, macOS, Windows):
conda install fftw
If you use Homebrew (macOS)
brew install fftw
If you use `apt` (Debian or Ubuntu)
sudo apt install libfftw3-dev
#### Install the Python package from source
Finally, install this Python package using pip:
pip install .
Or, alternatively, in "editable" mode:
pip install -e .
## Usage
Example usage:
```python
import numpy as np
from scipy.signal import chirp
import matplotlib.pyplot as plt
from stockwell import st
t = np.linspace(0, 10, 5001)
w = chirp(t, f0=12.5, f1=2.5, t1=10, method='linear')
fmin = 0 # Hz
fmax = 25 # Hz
df = 1./(t[-1]-t[0]) # sampling step in frequency domain (Hz)
fmin_samples = int(fmin/df)
fmax_samples = int(fmax/df)
stock = st.st(w, fmin_samples, fmax_samples)
extent = (t[0], t[-1], fmin, fmax)
fig, ax = plt.subplots(2, 1, sharex=True)
ax[0].plot(t, w)
ax[0].set(ylabel='amplitude')
ax[1].imshow(np.abs(stock), origin='lower', extent=extent)
ax[1].axis('tight')
ax[1].set(xlabel='time (s)', ylabel='frequency (Hz)')
plt.show()
```
You should get the following output:
![stockwell.png](stockwell.png)
You can also compute the inverse Stockwell transform, ex:
```python
inv_stock = st.ist(stock, fmin_samples, fmax_samples)
fig, ax = plt.subplots(2, 1, sharex=True)
ax[0].plot(t, w, label='original signal')
ax[0].plot(t, inv_stock, label='inverse Stockwell')
ax[0].set(ylabel='amplitude')
ax[0].legend(loc='upper right')
ax[1].plot(t, w - inv_stock)
ax[1].set_xlim(0, 10)
ax[1].set(xlabel='time (s)', ylabel='amplitude difference')
plt.show()
```
![inv_stockwell.png](inv_stockwell.png)
## References
Stockwell, R.G., Mansinha, L. & Lowe, R.P., 1996. Localization of the complex
spectrum: the S transform, IEEE Trans. Signal Process., 44(4), 998–1001,
doi:[10.1109/78.492555](https://doi.org/10.1109/78.492555)
[S transform on Wikipedia].
[NIMH MEG Core Facility]: https://kurage.nimh.nih.gov/meglab/Meg/Stockwell
[cf-badge]: http://img.shields.io/conda/vn/conda-forge/stockwell.svg
[cf-link]: https://anaconda.org/conda-forge/stockwell
[PyPI-badge]: http://img.shields.io/pypi/v/stockwell.svg
[PyPI-link]: https://pypi.python.org/pypi/stockwell
[license-badge]: https://img.shields.io/badge/license-CeCILL--2.1-green
[license-link]: http://www.cecill.info/licences.en.html
[releases-link]: https://github.com/claudiodsf/stockwell/releases
[Anaconda]: https://www.anaconda.com/products/individual
[Microsoft C++ Build Tools]:
https://visualstudio.microsoft.com/visual-cpp-build-tools
[FFTW]: http://www.fftw.org
[S transform on Wikipedia]: https://en.wikipedia.org/wiki/S_transform
没有合适的资源?快使用搜索试试~ 我知道了~
Python的斯托克韦尔变换_Python_C_下载.zip
共29个文件
py:8个
txt:3个
c:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 158 浏览量
2023-04-27
10:57:02
上传
评论
收藏 241KB ZIP 举报
温馨提示
Python的斯托克韦尔变换_Python_C_下载.zip
资源推荐
资源详情
资源评论
收起资源包目录
Python的斯托克韦尔变换_Python_C_下载.zip (29个子文件)
stockwell-master
setup.py 3KB
.github
workflows
release.yml 326B
github-deploy.yml 2KB
inv_stockwell.png 113KB
.gitattributes 35B
LICENSE.txt 21KB
stockwell.png 85KB
stockwell
__init__.py 207B
lib
__init__.py 0B
_version.py 18KB
tests
__init__.py 0B
test_stockwell.py 665B
c_libs
unlicense.txt 1KB
stmodule.c 5KB
sinemodule.c 2KB
st.c 9KB
st_types.h 63B
CHANGELOG.md 1022B
CONTRIBUTORS.txt 42B
pyproject.toml 739B
MANIFEST.in 185B
.gitignore 197B
setup.cfg 167B
versioneer.py 69KB
README.md 4KB
scripts
make_wheel_windows.bat 347B
wheel_repair.py 4KB
make_dist.sh 65B
make_wheel_macos.sh 347B
共 29 条
- 1
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9152
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功