微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

滤波器用于音频信号处理?

如何解决滤波器用于音频信号处理?

| 我想问一下,对于音频信号处理,特别是音符开始处理,什么是好的滤波器? 特别是,我需要一个过滤器,该过滤器可以使峰更尖锐,同时平滑其他峰,如下图所示: 我不确定我需要的是低/高通滤波器,因为我知道这些滤波器在频域中工作,并且我特别想在时域中工作。我只处理以.WAV 44.1Khz 16位单声道格式记录的单声道信号。 谢谢!     

解决方法

        我建议采用一种非线性方法-实际上,您想以较短的时间常数进行包络检测。
y_1 = 0;                       // init y_1 = previous value of output signal,y
loop
  y = abs(x);                  // rectify input signal
  y = k * y + (1.0 - k) * y_1; // apply single pole recursive low pass filter
  y_1 = y;                     // save output value for next iteration
end
选择
k
(NB:
0.0 < k < 1.0
)是棘手的部分,可能需要进行一些实验。如果ѭ1small太小,则您将具有较大的时间常数,这可能会导致开始检测的时间过长。如果k太大,则时间常数可能太小,并且您可能会得到误报。 (在后一种情况下,尽管您可以通过拒绝从先前的“真实”开始(例如10 ms)开始落入给定最小尖峰窗口内的开始来改善结果,例如,k = 0.1,然后也许尝试减少它,直到滞后变得不可接受为止。     ,        您可能想要尝试某种形式的AGC(自动增益控制)来标准化信号的包络幅度,而不是使用滤波器来进行所需的音频处理,其时间常数在1个拍子时间附近。 但是准确的音符开始检测可能需要更高级的信号处理和模式匹配技术。关于该主题的研究论文似乎很多。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?