signal-processing - 基于 FFT python的音频信号背景噪声去除

  显示原文与译文双语对照的内容

我当前在大学做一个项目,我在这里区别不同的仪器,使用 python 来播放音乐。

我在电脑上用麦克风记录了不同乐器上的各种记录。

我还记录了房间的背景。

到目前为止,我已经在不同的仪器上打印了不同的笔记,在y 轴上,我有 20 *log10(|FFT(signal)|)

在x 轴上,我有DFT采样频率

一些谐波峰小于( 或者背景足够大)的噪声是一个 factor- ( 无法发布图片,因为我是 noob ),我的问题是计算背景噪声时峰高的不确定度。

我的疑问是:

当背景噪声计算时,如何计算峰值( 它们相对谐波振幅) 高度的不确定度。

一些想法:

分类什么是数据库阈值,分类是谐波峰,还是由噪声( 是否应折扣低于最大 backgound ( ~28000dB ) ) 或者平均( ~15000 ) 或者它的中两个值组成。

同时,对背景中引入的噪声进行了合理的减小后背景的FFT值。

另外我还看到了这个 ,如何从一个记录的声音中删除噪声,使用MATLAB中的fft? ,在那里似乎有非常不同的观点。

如果这是相关的,我可以发布我的code-警告,尽管在同学plagarism中注意过多。

对将帮助项目的文学链接非常有用。 ( 仍然在我绘制数据的阶段,每种方式都可以考虑为每个仪器寻找属性) 。

先谢谢了

时间: 原作者:

你似乎在问很多问题。 让我先回答你的第一个问题:

当背景噪声计算时,如何计算峰值( 它们相对谐波振幅) 高度的不确定度。

你将期望声音为summate线性( 到一阶近似) 。 然后做一些记录,只做背景,然后测量背景中谐波的平均幅度和标准偏差。

例如假设你正在查看 3谐波- 20 KHz 11KHz 和 33 KHz 。 在background记录 background you find find和 4db/-0.0 和+/标准偏差,发现平均振幅为 1.3分贝 2.2 dB和 2.3 dB 。 你现在有一个不确定度估计和一个平均背景谐波来减去。

有更聪明的方法来做到这一点,但它是一个开始。

现在,让我们来讨论你的第二个问题

分类什么是数据库阈值,分类是谐波峰,还是由噪声( 是否应折扣低于最大 backgound ( ~28000dB ) ) 或者平均( ~15000 ) 或者它的中两个值组成。

如果峰在平均+ 不确定度( 一个或者两个标准偏差,这是任意的,依赖于约定) 中,你可以说它是有意义的。 当 3KHz 分贝不确定度为2 分贝时,测量谐波为0 分贝,并不存在误差,即为2 分贝。

第三部分:

同时,对背景中引入的噪声进行了合理的减小后背景的FFT值。

如果你真想说服自己,你可以用波做一些模拟,或者做一个 FFT,做一个实验,用傅立叶变换来做实验,然后用傅立叶变换来做。

如果你是一个物理学生"物理科学中的数学方法",那么如果你是一个计算机科学家,你可以能想要什么。

如果你需要帮助,请告诉我。

原作者:
...