audio - 使用峰到 RMS 检测的音频噪声测量
问题描述
我有一个关于以下代码的问题,我发现该代码用于测量一段音频中包含多少噪音:
Sx = fft(x .* hann(length(x), 'periodic'))
pk2rms = max(abs(Sx))/sqrt(sum(abs(Sx).^2)/length(Sx))
该代码应计算信号的峰均方根比,并应用于测量音频信号中包含的噪声。
据我了解,max(abs(Sx))
计算峰值,sqrt(sum(abs(Sx).^2)
计算 RMS。但我不明白为什么会这样。为什么我首先必须应用 FFT 来计算峰值?峰值不只是信号中包含的最高幅度吗?如果这是真的,我应该max(abs(x))
不将信号转换为频域吗?为什么我必须将整个事情除以信号的长度?
我可以想象我的问题的答案对你们中的一些专家来说是显而易见的,但直到现在我才找到正确的答案。
非常感谢您!
解决方案
信噪比 (SNR) 为您提供了一个品质因数,它告诉您最强信息信号与系统中不需要的噪声之间的距离。在某种程度上,它是有用信号在被噪音淹没之前所拥有的房间。
如果你在时域中取信号的幅度,你会得到许多不同频率的不同信号的叠加。这可能是您所需信号的不同组成部分,也可能是噪声。这不是你想要的。
推荐阅读
- c++ - 如何分配和读取单例类的公共成员的值
- javascript - 如何在javascript中foreach一个数组或对象
- reactjs - 在本机中上传图像
- c - 来自 stdlib.h 的 qsort() 未对包含邮政编码和相应城市的指定结构进行排序
- javascript - Firestore 云函数递归更新子集合/集合组
- r - 在应用程序中的 if() 之后处理 NULL
- c# - 代理模式和存储库模式有什么区别
- excel - Excel:每个大陆的总人口总和(使用 Excel 公式 - 没有 Pivot)
- r - 在列之间重新排序个人 ID
- java - 为什么在 iText5 和 iText7 之间提取文本的位置不同?