我目前正在尝试从“受污染”的音频文件中消除一些噪音。根据给出的信息,我知道噪声被隔离到一个特定的频带——即从 ~1400 Hz 到 ~1800 Hz。
最直接的方法显然是实现一个阻带滤波器——我已经成功地做到了。但是,我想探索替代选项,即带通滤波器也可以消除所需信号。
这是我到目前为止所做的:
在 MATLAB 中,我探索了信号的某些方面,例如它的功率谱、自相关等:
很明显,噪声集中在我上面提到的频带中,并且看起来噪声是高斯的。
我最初的想法是应用频谱减法方法,例如 Ephraim-Malah 算法,但这种方法做出的假设之一是基础噪声是高斯白噪声。在我拥有的文件中,噪声仅限于特定频段,而不是整个信号。我担心的是,如果我要应用该算法,我会无意中对信号的潜在良好部分引入轻微失真。
目前,我正在考虑将信号分成两部分:使用阻带滤波器来提取不受影响的频率,并使用带通滤波器来捕获噪声区域,将算法应用于后一个频段,然后重新组合信号。
这是一种合适的方法,还是我可以使用更简单和/或更好的方法?
笔记:
因为我知道噪音是什么,所以我可能会使用 Weiner 滤波器。