DspFilters 0.0.1

DspFilters 0.0.1

测试测过
语言语言 C++C++
许可 MIT
发布最后发布2014年12月

未命名维护。



  • Vinnie Falco

数字信号处理中有用C++类的集合

“数字信号处理的技巧得到了很好的保护,并受到高度重视,因为它们在多媒体内容中具有宝贵的应用。无穷冲击响应(“IIR”)过滤的神秘艺术长期以来一直被秘密地保守着,很少公开可用的源代码……直到现在。”

这是什么呢?

在本库中,基于Sophocles Orfanidis、Andreas Antoniou、Martin Holters 和 Udo Zolzer 等受人尊敬的专家的工作,该库利用C++模板的力量,解决了数字信号处理中的一个有用问题:实现具有各种特性的多通道任意阶IIR滤波器,例如Butterworth、Chebyshev、Elliptic 和 Optimum-L(Legendre)响应。该库在MIT许可下提供,因此与专有使用完全兼容。

类被设计为独立的、可重用的构建块。使用提供的一些或全部功能,或者通过编写自己的对象来扩展功能,这些对象可以插入到强大的框架中。仅将您需要的代码链接到您的应用程序中。以下是一个功能列表:

  • 专注于IIR滤波器,而不是枯燥的FIR滤波器
  • 完全实现了所有“RBJ Biquad”食谱滤波器公式
  • Butterworth、Chebyshev、Elliptic、Bessel、Legendre设计
  • 低通、高通、带通、带阻转换
  • 对大多数类型的低、高和带通滤波器实现
  • 平滑插值滤波器设置、极点/零点和二阶系数,以实现无缝参数更改
  • 使用极点和零点表示数字滤波器
  • 使用直接形式I、直接形式II或用户提供的类实现
  • 完全因式分解以最小化模板实例化
  • “设计”层提供了对滤波器的运行时内省
  • 用于操作样本数据缓冲区的实用模板函数
  • 无malloc或new调用,非常适合嵌入式系统
  • 无外部依赖项,只有标准C++库!

使用这些滤波器很容易

// Create a Chebyshev type I Band Stop filter of order 3
// with state for processing 2 channels of audio.
Dsp::SimpleFilter <Dsp::ChebyshevI::BandStop <3>, 2> f;
f.setup (3,    // order
         44100,// sample rate
         4000, // center frequency
         880,  // band width
         1);   // ripple dB
f.process (numSamples, arrayOfChannels);

一个配套的演示程序,它使用单独许可的Juce应用程序框架(附带)在大多数流行平台上工作,练习库的所有功能,包括以下特性

  • 动态界面通过滤波器内省功能创建
  • 具有实时应用所选滤波器的音频播放
  • 无点击或爆裂的实时拉伸和振幅调制
  • 图表显示幅度、相位响应和极点/零点位置
  • 音频应用程序的线程安全“最佳实践”

这是提供的DSP滤波器演示应用程序,它展示了库的功能,并使用Juce应用程序框架在所有流行平台上运行

如果您在互联网上徒劳地寻找实现高阶滤波器的源代码,那么请看这里!无论您是C++或数字信号处理的学生,音频插件的编写者,甚至是VST音序器编码者,“用于数字信号处理的实用C++类集合”可能对您有帮助!

网络上的DSP滤波器

DSP滤波器官方讨论论坛
http://www.kvraudio.com/forum/viewtopic.php?t=249926

DSP和音频插件讨论论坛
http://www.kvraudio.com/forum/viewforum.php?f=33

Juce官方讨论论坛
http://www.rawmaterialsoftware.com/index.php

Juce官方网站
http://www.rawmaterialsoftware.com

条款和条件

DSP滤波器库和DSP演示应用程序版权(c)2009由Vinnie Falco所有
源代码在MIT许可下提供
Juce库Raw Material Software单独许可。