Tag: 信号处理

寻找C#音频分析库

我正在开发一个软件项目,我们的团队需要记录火车喇叭声。 我们购买了录音机; 它保存为.wav文件。 我们现在需要从文件中提取数据,如频率和幅度,以创建频谱分析和分贝水平图。 这类东西有没有C#库?

NAudio用于播放正弦波的算法,其频率可以实时平滑地改变

到目前为止,我已经实现了在这篇博客文章中找到的算法,但成效有限。 我的程序的概念是初始化正弦波,然后根据鼠标在屏幕上的位置改变频率 – 向上移动鼠标,正弦波变高,反之亦然(基本上是使用鼠标的一种类型仪器)。 到目前为止我所实现的问题是,当正弦波的频率更新时,会发出一声咔哒声,而不是提供平滑的频率扫描,使其听起来像是有离散的频率级别。 我一直在NAudio论坛和这里搜索高低,但似乎没有其他人尝试使用NAudio做这种事情,或者其他任何声音模块 – 所有执行的类似程序类似地使用像Kinect这样的设备使用虚拟midi布线和现有的软件模块,但我想在不依赖外部软件包的情况下实现相同的概念。 我已经在NAudio论坛上发布了有关此问题的代码部分,正如您所看到的,我正在通过MarkHeath的建议来尝试找到解决问题的方法。

正弦值性能的计算与查找表?

假设您必须计算域在0.01到360.01之间的正弦(余弦或正切 – 无论如何)。 (使用C#) 什么会更高效? 使用Math.Sin 使用具有预先计算值的查找数组 我会反驳说,鉴于域名,选项2会快得多。 在域精度(0.0000n)的什么时刻,计算的性能超过了查找。

C#中的低通和高通滤波器

我需要用c#编写的低通和高通滤波器。 我有这个过滤过程的双数组。 我想如果我尝试将matlab Butterworth和Chebyshev算法转换为c#,那就更容易了。 但我在互联网上找不到butter.m和Chebyshev算法的代码,我不想在我的计算机上设置matlab和信号处理工具箱。 你能提供这些代码吗? 谢谢..

用于识别间距的.NET库

我想写一个简单的程序(最好是在C#中),我用麦克风唱一个音高,程序识别音高对应的音符。 非常感谢您的及时回复。 我澄清一下: 我想要一个(最好是.NET)库来识别我唱的音符。 我想要这样一个图书馆: 我唱歌时识别音符(半音音符)。 告诉我,我离最近的音符有多远。 我打算用这样的库一次唱一个音符。

使用卷积在连续的声音流中查找参考音频样本

在我之前关于在更大的音频样本中找到参考音频样本的问题中,有人建议我应该使用卷积。 使用DSPUtil ,我能够做到这一点。 我玩了一下,尝试了不同的音频样本组合,看看结果是什么。 为了可视化数据,我只是将原始音频作为数字转储到Excel并使用这些数字创建了一个图表。 一个高峰是可见的,但我真的不知道这对我有什么帮助。 我有这些问题: 我不知道,如何从峰值位置推断原始音频样本中匹配的起始位置。 我不知道,我应该如何应用连续的音频流,所以一旦参考音频采样发生,我就能做出反应。 我不明白,为什么图片2和图片4(见下文)差别如此之大,尽管两者都代表了与自身卷积的音频样本…… 任何帮助都非常感谢。 以下图片是使用Excel进行分析的结果: 一个较长的音频样本,附近有参考音频(哔哔声): http : //img801.imageshack.us/img801/976/values1.png 哔哔声与自己融为一体: http : //img96.imageshack.us/img96/6720/values2i.png 没有哔哔声的较长音频样本与哔哔声融为一体: http : //img845.imageshack.us/img845/1091/values3.png 第3点的较长音频样本与其自身融合: http : //img38.imageshack.us/img38/1272/values4.png 更新和解决方案: 感谢Han的广泛帮助,我实现了我的目标。 在我没有FFT的情况下完成了自己的慢速实现之后,我发现alglib提供了快速实现。 我的问题有一个基本假设:其中一个音频样本完全包含在另一个中。 因此,以下代码返回两个音频样本中较大者中的样本中的偏移量以及该偏移量处的归一化互相关值。 1表示完全相关,0表示根本不相关,-1表示完全负相关: private void CalcCrossCorrelation(IEnumerable data1, IEnumerable data2, out int offset, out double maximumNormalizedCrossCorrelation) { var data1Array = data1.ToArray(); var data2Array = data2.ToArray(); […]