加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-17 00:25:37 所属栏目:大数据 来源:网络整理
导读:我需要找到一个样本的频率,存储(以vb为单位)作为字节数组.样本是一个正弦波,已知的频率,所以我可以检查),但数字有点奇怪,我的数学弱点. 全范围值0-255. 99%的数字在235到245之间,但有一些异常值下降到0和1,剩下的1%中有255个. 如何规范化这个以消除异常值(
我需要找到一个样本的频率,存储(以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范围之外.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读