vb.net – 声音样本的数学分析(作为数组)

前端之家收集整理的这篇文章主要介绍了vb.net – 声音样本的数学分析(作为数组)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要找到一个样本的频率,存储(以vb为单位)作为字节数组.样本是一个正弦波,已知的频率,所以我可以检查),但数字有点奇怪,我的数学弱点.
全范围值0-255. 99%的数字在235到245之间,但有一些异常值下降到0和1,剩下的1%中有255个.
如何规范化这个以消除异常值(计算235-245间隔,因为它可能随不同的样本而改变),然后如何计算过零点来获得频率?
道歉,如果这个描述是垃圾
FFT可能是最好的答案,但如果您真的想通过您的方法执行此操作,请尝试:

为了规范化,首先要做一个直方图来计算每个值从0到255的出现次数.然后从每个末尾抛出X%的值,如下所示:

for (i=lower=0;i< N*(X/100); lower++)
  i+=count[lower];
//repeat in other direction for upper

现在正常化

A[i] = 255*(A[i]-lower)/(upper-lower)-128

将结果丢在-128..127范围之外.

现在你可以计算过零点.为了确保你没有被噪音愚弄,你可能想要跟踪最后几点的斜率,只有当平均坡度正确进行时才计算交叉点.

原文链接:https://www.f2er.com/vb/255223.html

猜你在找的VB相关文章