我目前正在大学做一个项目,我正在区分使用python播放相同音高音符的不同乐器。
我使用连接到电脑的麦克风在不同乐器上录制了各种音符。
我还记录了房间的背景。
到目前为止,我有关于不同仪器的不同音符的图表,其中在y轴上我的幅度以dB为单位:20 * log10(| FFT(信号)|)
在x轴上我有DFT采样频率
一些谐波峰值足够小(或背景足够大),因为噪声是一个因素 - (不能发布图像,因为我是菜鸟!)我的问题是计算不确定性的水平考虑背景噪声时峰值的高度。
我的问题是:
那么,在考虑背景噪声时,如何计算峰值高度的不确定性水平(它们的相对谐波幅度)。
一些想法:
在对什么是谐波峰值进行分类以及什么可归因于噪声时应该使用什么dB阈值(我应该折扣低于最大背景(~28000dB)或平均值(~15000)的峰值,或者可能是这些峰值的两倍值)?
另外,考虑到背景引入的噪声,从FFT bin n中减去背景的FFT bin n中的值是否合法?
我也看过这篇文章how can the noise be removed from a recorded sound,using fft in MATLAB?,似乎对此有不同的看法。
如果相关,我可以发布我的代码片段 - 警惕过多放弃,但是如果是同学的庸俗主义。
非常感谢有助于该项目的文献链接。 (仍处于我正在绘制数据的阶段,我可以考虑每种方式来寻找每种乐器的区别属性)。
提前致谢
答案 0 :(得分:3)
你似乎在问很多问题。让我先回答你的第一个问题:
那么,如何计算高度的不确定性水平 在考虑时,峰值(它们的相对谐波幅度) 背景噪音。
你会期望声音线性地汇总(到一阶近似)。自然要做的只是做一些背景记录,然后测量背景中谐波的平均幅度和标准偏差。
举个例子,假设您正在观察3个谐波--20KHz,11KHz和33KHz。做一些只有背景的录音,你会发现平均幅度为1.3dB 2.2dB和2.3dB,标准偏差为+/- 0.1,+ / - 0.2和+/- 0.4dB。您现在有一个不确定性估计值和平均背景谐波值。
有更聪明的方法可以做到这一点,但这是一个开始。
现在,继续你的第二个问题
在分类什么是谐波时我应该使用什么dB阈值 峰值以及可归因于噪音的因素(我应该将峰值折低 比最大背景(~28000dB)或平均值(~15000)或者也许 这两个值中的两个)?
如果峰值在平均值+不确定度(一个或两个标准差,这是任意的,并且取决于惯例),你可以说它是重要的。例如,如果您发现3KHz的噪声水平为1.2dB,不确定度为+/- 0.3dB,您测量的谐波为1.3dB,不确定度(以相同方式测量)为0.1dB,那么它并不重要。 / p>
现在是第三部分:
另外,考虑到背景引入的噪音,是吗? 合法地从FFT bin n中减去背景中的值 用于我的乐器录音的FFT bin n?
是(一般而言)。如果你真的想让自己相信这一点,你可以A)用汇总波进行一些模拟并对它们进行FFT,B)做一个实验,就像在A或C中一样。)完成傅里叶变换的数学运算。 / p>
关于文学,我认为这取决于你具体做什么,如果你是一名物理学生,“玛丽博阿斯的物理科学中的数学方法”,如果你是一台计算机,玛丽博斯很好地对待傅立叶变换科学家/工程师你可能想要不同的东西。
如果您需要更多帮助,请与我联系。