我已经在这个具体领域做了一些实际工作,我会建议(如果你有一点时间),试图只是一点点实验,然后诉诸fft’ing。 pcm流可以非常复杂和巧妙地解释(根据高质量滤波和重采样),但是对于许多目的也可以被实际处理为虚线的路径。
白噪声是线的不可预测的振动,这是永远不是相当连续的强度(均方根,绝对平均值..)声学内容是反复摆动和偶尔的惊喜(跳跃,飞跃):]
可以通过对pcm流的运行窗口执行快速计算来估计信号的非噪声状内容。
例如,噪声将强烈倾向于具有比非噪声更高的其导数的绝对积分值。我认为这是说这个的学术方式:
loop(n+1 to n.length)
{ sumd0+= abs(pcm[n]);
sumd1+= abs(pcm[n]-pcm[n-1]);
}
wNoiseRatio = ?0.8; //quite easily discovered, bit tricky to calculate.
if((sumd1/sumd0)
{ /*not like noise*/ }
此外,在〜16至〜30个白噪声样本上的运行绝对平均值将倾向于变化较小,在白噪声以上比声信号:
loop(n+24 to n.length-16)
{ runAbsAve1 += abs(pcm[n]) - abs(pcm[n-24]); }
loop(n+24+16 to n.length)
{ runAbsAve2 += abs(pcm[n]) - abs(pcm[n-24]); }
unusualDif= 5; //a factor. tighter values for longer measures.
if(abs(runAbsAve1-runAbsAve2)>(runAbsAve1+runAbsAve2)/(2*unusualDif))
{ /*not like noise*/ }
这涉及白噪声如何在足够大的跨度上趋于不零星以平均其熵。声学内容是零星的(局部的力量)和反复的(重复的力量)。
简单的测试对具有较低频率的声学内容做出反应,并且可以被高频率内容淹没。有简单的应用低通滤波器,这可以帮助(和毫无疑问的其他适应)。
此外,均方根可以除以平均绝对总和,提供另一个应该是白噪声特定的比率,虽然我不能现在是什么。该比率对于信号导数也将不同。
我认为这些是简单的公式签名的噪音。我相信还有更多..对不起不是更具体,它是模糊和不精确的建议,但是对fft的输出执行简单测试。为了更好的解释和更多的想法,或许可以检查统计和随机(?)测量的熵和随机性维基百科等。