#小波 #变换 #信号处理 #数学 #cwt

fastcwt

Rust语言连续小波变换(CWT)库,受fCWT启发。

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次下载

MIT/Apache

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