我对以下代码有疑问,我发现以下代码可以测量音频中包含多少噪声:
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))
而不将信号转换为频域吗?
为什么我必须将整个信号除以信号长度?
我可以想象我的问题的答案对于某些专家是显而易见的,但是直到现在我都找不到合适的答案。
非常感谢您!
答案 0 :(得分:0)
信噪比(SNR)为您提供品质因数,它告诉您最强信息信号与系统中不需要的噪声之间的距离。从某种意义上讲,它是有用信号在被杂音淹没之前的房间。
如果在时域中获取信号的幅度,则会得到许多具有不同频率的不同信号的叠加。这可能是所需信号的不同成分,但也可能是噪声。这不是您想要的。