tongyong1234 2023-05-25 14:02 采纳率: 100%
浏览 17
已结题

音频code wm8731 I2S 采样波形

最近在搞 音频code wm8731 从模拟通道 输入单频交流信号 然后通过I2S 获取采样数据 再通过串口printf
得到如下图的波形 请教各位!为什么正弦波被拆开了 数据不连续?

img

  • 写回答

2条回答 默认 最新

  • 开发技术控 2023-05-25 14:17
    关注

    从您提供的描述和示波图来看,这个问题很有可能是由于I2S通道的采样率设置过低导致的。
    I2S是一种数字音频串行接口标准,它需要设置采样率来定义转换和传输音频数据的速率。如果采样率设置得太低,无法对模拟音频信号进行充分的采样和重构,会导致输出的数字音频波形失真严重,出现“拆分”的情况。
    解决此问题的方案是:

    1. 提高I2S通道的采样率。根据Nyquist定理,采样率至少要大于模拟输入信号的两倍频率,才能还原信号。所以您需要确保I2S的采样率足够高,比输入的单频交流信号频率高出2倍或更多。
    2. 在I2S通道之前添加低通滤波器。如果无法进一步提高采样率,可以先使用低通滤波器对输入模拟信号进行滤波,降低其最高频率分量,然后再采样。这可以一定程度上避免失真。
    3. 使用更高位宽的I2S通道。 higher bit depth 可以在一定的采样率下表达更细致的音频变化,从而减少失真情况。如果硬件支持,最好使用16位、24位或32位宽的I2S通道。
    4. 调整输入模拟信号幅度。如果输入信号幅度过大,采样时也容易出现失真和“ clipping ”现象。适当降低输入信号幅度也可以改善波形重构的效果。
      除上述方案外,您还需要确认I2S通道的其他参数,如通道数、数据格式等设置是否正确,这也会对结果产生影响。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月2日
  • 已采纳回答 5月25日
  • 创建了问题 5月25日

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了
  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成