从 PCM 16 位波中过滤噪声的最佳算法是什么?

发布于 2024-10-12 09:12:57 字数 60 浏览 3 评论 0原文

我已经从 PCM 波生成了 FFT。过滤噪音的最佳方法是什么?

感谢您的时间和回复, dk

I have produced the FFT from the PCM wave. What is the best way to filter out noise?

Thanks for your time and responses,
dk

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷︶言冷语的世界 2024-10-19 09:12:57

这是一个非常广泛且非常技术性的问题。消除嘶嘶声的一种快速而肮脏的方法是消除高频(低通滤波器)。

A very broad and very technical question. A quick and dirty way to get rid of hiss would be to get rid of the high frequencies (low-pass filter).

不知所踪 2024-10-19 09:12:57

如果噪声是嘶嘶声并且您不需要线性相位并且机器使用 C 编程,则可以使用快速而肮脏的低通滤波器...

signed short lowpass(signed short input)
{
   static signed short last_sample=0;
   signed short retvalue=(input + (last_sample * 7)) >> 3;
   last_sample=retvalue;
   return retvalue;
}

如果噪声是电网/电源嗡嗡声,您可以延迟音频以每秒 44,100 个样本的速度(对于 60 赫兹功率)增加 735 个样本,并返回delayed_sample-input;

If the noise is hissy and you don't need linear-phase and the machine uses C programming, a quick-and-dirty low pass filter can be this...

signed short lowpass(signed short input)
{
   static signed short last_sample=0;
   signed short retvalue=(input + (last_sample * 7)) >> 3;
   last_sample=retvalue;
   return retvalue;
}

If the noise is power grid/mains hum you can delay the audio by 735 samples at 44,100 samples per second (for 60 hertz power) and return delayed_sample-input;

_蜘蛛 2024-10-19 09:12:57

噪声主要是信号的静态频谱分量。希望您能将语音或音乐作为所需信号。您需要从原始光谱中减去噪声光谱。

典型的噪声抑制需要VAD(语音活动检测)模块。希望你的 FFT 是加窗和重叠的,如果没有,请这样做。一种更简单的噪声抑制方法是使用最少的统计数据,如 Rainer Martin 所描述的
该算法跟踪每个频带中的频谱最小值,而不区分语音活动和语音暂停。通过最小化每个时间步长中的条件均方估计误差准则,我们导出了用于对带噪语音信号的功率谱密度进行递归平滑的最佳平滑参数。详细信息请参见http://www.ind.rwth-aachen.de/ fileadmin/publications/martin01c.pdf
“基于最佳平滑和最小统计量的噪声功率谱密度估计”

同时您可以使用音频编辑器 Audacity http ://audacity.sourceforge.net/about/ 测试是否可以消除此噪音。它在“效果”菜单下具有噪声抑制功能

Noise is mostly stationary spectral components of the signal. Hoping you have speech or music as the wanted signal. You need to subtract the noise spectra from the original spectra.

Typical noise suppression needs a VAD (voice activity detection) module. Hope your FFT is windowed and overlapped, if not please do so. One simpler method of noise suppression is using minimum statistics, as described by Rainer Martin
Where the algorithm tracks spectral minima in each frequency band without any distinction between speech activity and speech pause. By minimizing a conditional mean square estimation error criterion in each time step we derive the optimal smoothing parameter for recursive smoothing of the power spectral density of the noisy speech signal. Details are in http://www.ind.rwth-aachen.de/fileadmin/publications/martin01c.pdf
“Noise Power Spectral Density Estimation Based on Optimal Smoothing and Minimum Statistics”

At the same time you could use audio editor, Audacity http://audacity.sourceforge.net/about/ to test if this noise could be removed. It has a noise suppression feature under Effects menu

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文