#low-pass #filter #digital #dsp #audio #signal-processing #audio-processing

无std lowpass-filter

这是一个简单的数字低通滤波器的Rust库。例如,您可以使用它从歌曲中获取低频。

11个版本

0.3.2 2021年11月15日
0.3.1 2021年11月15日
0.2.5 2021年9月14日
0.2.4 2021年3月30日
0.1.2 2021年3月12日

#118多媒体

Download history 15/week @ 2024-03-11 4/week @ 2024-03-18 29/week @ 2024-04-01 3/week @ 2024-04-08 10/week @ 2024-04-15 8/week @ 2024-04-22 13/week @ 2024-04-29 9/week @ 2024-05-13 18/week @ 2024-05-20 32/week @ 2024-05-27 45/week @ 2024-06-03 36/week @ 2024-06-10 32/week @ 2024-06-17 42/week @ 2024-06-24

每月 156 下载
用于 2 包

MIT 许可证

22KB
175 代码行

Rust: 无std 数字低通滤波器库

这是一个简单的数字低通滤波器的Rust库。例如,您可以使用它从歌曲中获取低频。

我不是数字信号处理方面的专家。非常欢迎代码贡献! :)

biquad 的区别

⚠ TL;DR:优先考虑使用crate biquad,并且仅出于教育目的使用此crate。
此crate提供了一个基本且易于理解的,一阶低通滤波器。biquad crate提供二阶滤波器,精度更高。由于我的测试,使用biquad的低通滤波器的计算成本与我的crate相同,但与我的滤波器实现相比,它提供了更优的分辨率,用于实际切断截止频率以上的信号,而保留的信号将衰减较少。请使用biquad进行生产。

如何使用

use lowpass_filter::lowpass_filter;

/// Minimal example how to use this crate/how to apply low pass filter.
fn main() {
    // read this from MP3 for example
    let mut mono_audio_data = [0.0, 1.0, -5.0, 1551.0, 141.0, 24.0];
    // mutates the input buffer
    lowpass_filter(&mut mono_audio_data, 44100.0, 120.0);
}

可视化示例

#1:短样本的原始波形

Example 1: Original Waveform of a short sample

#1:低通波形

Example 1: Lowpassed Waveform of a short sample

#2:歌曲的原始波形

Example 1: Original Waveform of a song

#2:低通波形

Example 1: Lowpassed Waveform of a song

#2:3倍低通波形

Example 1: Lowpassed Waveform of a song 3x

无运行时依赖