7个不稳定版本 (3个破坏性更改)

0.4.1 2023年1月2日
0.4.0 2022年12月29日
0.3.0 2022年12月9日
0.2.2 2022年7月22日
0.1.0 2022年6月29日

#452 in 数学

Download history 62/week @ 2024-03-13 31/week @ 2024-03-20 32/week @ 2024-03-27 79/week @ 2024-04-03 47/week @ 2024-04-10 44/week @ 2024-04-17 124/week @ 2024-04-24 16/week @ 2024-05-01 34/week @ 2024-05-08 52/week @ 2024-05-15 15/week @ 2024-05-22 22/week @ 2024-05-29 39/week @ 2024-06-05 54/week @ 2024-06-12 60/week @ 2024-06-19 43/week @ 2024-06-26

每月201次下载

MIT许可证

180KB
484

wavegen

github Crates.io docs Build status

wavegen是用🦀制作的波形生成器

如何使用它?

  1. wavegen添加到您的项目
[dependencies]
wavegen = "0.4"

或者,使用no_std版本(需要自定义全局分配器)

[dependencies]
wavegen = { version = "0.4", default-features = false, features = ["libm"] }
  1. 定义具有采样频率和函数组件的波形
let waveform = wf!(f64, 200., sine!(frequency: 100., amplitude: 10.), dc_bias!(20.));
  1. 将其转换为迭代器并进行采样
let some_samples: Vec<f64> = waveform.iter().take(200).collect();

有关更全面的用法示例,请参阅文档

给我一些示例!

交互式演示

https://wavegen-demo.netlify.app查看演示

绘制图表

  • 简单的正弦波

Sine plot

  • 两个叠加的相移正弦波

Superposed sines plot

  • “现实生活”示例:300Hz正弦信号与50Hz干扰噪声

300_50_hz_sines

  • 锯齿波

Sawtooth plot

  • 正弦波和锯齿波的叠加

Sine and sawtooth superposed

  • 方波

Square wave

  • 具有不同频率的正弦波、方波和锯齿波的叠加

Something funky

以上所有示例均使用examples/plot.rs中的简单程序生成。运行cargo run --example plot自行生成。

MSRV

最低支持的Rust版本是1.60

类似Crates

  • Waver,这是本Crates的灵感来源

破坏性更改

0.2

  • 宏注解方式的破坏性更改,从frequency = n更改为frequency: n

0.4

  • Waveform::get_sample_rate重命名为Waveform::sample_rate,现在返回一个借用值,符合rust API规范。
  • Waveform::get_components_len已删除。该功能可以通过新的getter Waveform::components实现。

依赖项