10个版本
0.1.9 | 2024年5月16日 |
---|---|
0.1.8 | 2023年9月22日 |
0.1.7 | 2023年7月31日 |
0.1.6 | 2023年6月24日 |
0.1.5 | 2023年4月4日 |
#159 在 科学
每月40次下载
14KB
161 行
fastcwt
Rust语言连续小波变换(CWT)库,受fCWT启发。
此crate是Arts, L.P.A.和van den Broek, E.L.(https://github.com/fastlib/fCWT)用C++编写的fCWT库的直接翻译。
我更改了一些无法翻译的函数,这似乎可以消除,或者与fftw库和rustfft crate之间的差异。(fCWT使用fftw,而fastcwt使用rustfft。)
使用方法
use fastcwt::*;
use rand::prelude::*;
let wavelet = Wavelet::create(1.0); //Create a Morlet wavelet.
let scale = Scales::create(ScaleTypes::LinFreq, 48000, 20.0, 20000.0, 1000); //Create a scale factor.
let mut transform = FastCWT::create(wavelet, true); // Create a fCWT instance.
let mut input = vec![];
for _ in 0 .. 48000
{
input.push(thread_rng().gen_range(-1.0 .. 1.0))
};
let result = transform.cwt(1000, input.as_slice(), scale); //Store the result.
变更日志
0.1.9 - 使用no_denormals避免额外延迟。清理了存储库。
0.1.8 - 删除了未使用的mkaudiolibrary。
0.1.7 - 在Scales结构中使用了boxed slice而不是vec。
0.1.6 - 将所有权转让给公司账户。
0.1.5 - 使用rayon crate并行化FFT。
0.1.4 - 在assert!()和#![forbid(unsafe_code)]宏中添加了错误信息。
0.1.3 - 移除了不安全的代码和fn find2power()。
0.1.1, 0.1.2 - 小修。
0.1.0 - 首次发布。
引用
Arts, L.P.A.,van den Broek, E.L. 快速连续小波变换(fCWT)用于实时、高质量、抗噪声的时间-频率分析。Nat Comput Sci 2,47-58(2022)。https://doi.org/10.1038/s43588-021-00183-z
依赖项
~4.5MB
~82K SLoC