3 个版本
0.1.3 | 2024 年 3 月 1 日 |
---|---|
0.1.1 | 2024 年 2 月 23 日 |
0.1.0 | 2024 年 2 月 22 日 |
#386 在 数学
每月 133 次下载
39KB
498 行
fCWT Rust 库
fcwt
是一个使用 FFT 算法的纯 Rust 库,用于快速连续小波变换(CWT)计算。它提供了一个灵活且高效的方法来对信号进行 CWT,尤其是在信号处理和时频分析中非常有用。
这是 fCWT C++ 库的移植 [https://github.com/fastlib/fCWT]。已比较 fCWT 和 fcwt-rs 的输出测试向量。
特性
- 支持使用 traits 定制小波和尺度定义。
- 使用 rustfft 在纯 Rust 中进行快速计算
- 可以使用
fftw
特性标志启用 fftw3
待办事项
- 实现并行计算
- 目前仅实现了 LinFreqs 尺度
安装
将 fcwt
添加到您的 Cargo.toml
[dependencies]
fcwt = "0.1.2"
用法
use fcwt::{FastCwt, wavelet::MorletWavelet, scales::LinFreqs};
// Create a Morlet Wavelet with sigma=1.0
let wavelet = MorletWavelet::new(2.0);
// Create a frequency scale
let scales = LinFreqs::new(&wavelet, 1000, 0.1, 40.0, 300);
// Create a FastCwt instance using the specified Wavelet and Scales
let mut fcwt = FastCwt::new(w, scales, true);
// Create a chirp test signal
let mut signal = fcwt::util::chirp(1000.0, 65536, 0.1, 20.0);
// Compute the fCWT and return a CwtResult<Float>
let result = cwt.cwt(&mut signal);
依赖项
~4–9.5MB
~93K SLoC