【掌控板】7.1、查看mic的采样率

前言

查看1s可以采取多少次音量

代码

#---------------------------------------------
# func5: 测试一秒采音量数据个数
# PS   : 由于将数值转换为字符串以及显示会耗费时间,导致增加了转换及显示1s只能采到8个数值
# 但是只设置取值以及计采样次数,可以采到16643个,所以音频的采样率大致为16643hz
#---------------------------------------------
import ntptime,network
from mpython import*
from machine import Timer

# 十进制数字转换为字符
def int2char (x):
  numbers = {
    0 : '0',
    1 : '1',
    2 : '2',
    3 : '3',
    4 : '4',
    5 : '5',
    6 : '6',
    7 : '7',
    8 : '8',
    9 : '9',
    10 : 'a',
    11 : 'b',
    12 : 'c',
    13 : 'd',
    14 : 'e',
    15 : 'f',
  }
  return numbers.get(x,None)


# 十进制int转十进制字符串
def int_2_dec( value , key_num):
    a=value%key_num
    result=''
    #print("value",value)
    if (a == 0) & (value == 0 ):
      result = '0'
      return result
    #print("result",result)
    #print("a!=0",a!=0)
    #print("value > 0",value > 0)
    while True  :
        if a == 0:
          if value <= 0:
            break
        #print("enter")
        #print("a",a)
        temp=int2char(a)
        #temp=hex(a).replace('0x','')
        result=temp+result
        #print("result",result)
        value=(value-a)//key_num
        #print("value",value)
        a=value%key_num
        #print("a",a)
    return result


# 定义刷新函数,获取时间并显示
def Refresh(_):
    global temp_num #定义全局变量
    temp_value=int_2_dec(temp_num,10)
    print(temp_value)
    temp_num=0
    
    return

temp_num=0

# 定时器1
tim1 = Timer(1)

# 初始化定时器1,设置时间1s,Timer.PERIODIC周期性,回调函数Refresh
tim1.init(period=1000, mode=Timer.PERIODIC, callback=Refresh)

while 1 :
  temp_num=temp_num+1
  sound_value_int=sound.read()
  # sound_value_char=int_2_dec(sound_value_int,10)
  # print('sound',sound_value_char)
  # oled.DispChar('sound', 0, 0, 1)
  # oled.DispChar(sound_value_char, 0, 16, 1)

结果

在这里插入图片描述

小结

while循环中只计采样个数以及获取音量,这种方式测试下来大概1s可以采集16643个音量数值.
但是如果增加了数值转换为字符串以及显示,那么就会发现1s只有8次.应该是转换及显示占用了时间
所以下一章尝试利用数组方式存储采样数据,这样再看下可以采多少个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值