【问题标题】:USB Audio, distortion in low bitsUSB 音频,低位失真
【发布时间】:2014-04-15 07:35:26
【问题描述】:

我使用 USB 音频类 1 将 PIC32 实现为 USB 声卡。我正在将锯齿信号从微控制器发送到 PC(Windows 7、64 位),作为 16 位样本:

十进制:

000
800
1600
2400
.. so on

然后我尝试使用 Audacity 和 MME 驱动程序将接收到的音频录制为 .wav 或 .raw。 我使用 MATLAB 打开并检查数据,我看到的数据如下:

000
799
1599
2400
..

失真从 -1 到 +1 位 pr 样本变化。 任何人都知道问题可能出在哪里。 Windows 音频驱动程序。?

【问题讨论】:

    标签: matlab audio usb audio-recording distortion


    【解决方案1】:

    由于您在 PC 上接收到音频信号,将其播放并使用 SW 录制,因此音频信号会从数字转换为模拟,然后再转换为数字。这些会引入量化误差和噪声,您会看到两个信号之间的细微差别。

    【讨论】:

    • 转换成模拟的了吗?我正在使用 USB 音频,这种转换发生在哪里。?那么如何在不先将其转换为模拟的情况下将其录制为数字声音呢?
    • 为避免 a/d 转换,您不应播放音频。可能需要编写程序直接从USB端口读取音频信号。
    【解决方案2】:

    我解决了我的问题..

    问题是由我用来记录数据的应用程序和我使用的方法引起的。我使用了支持旧 Windows MME 音频 API 和 DirectSound API 的 Audacity。这些显然是相对高级的 API,并且是造成失真的原因。 About the Windows Core Audio APIs

    我使用了另一个名为 Reaper 的程序,它可以选择使用 ASIO og WASAPI 进行录制。这解决了我的问题。我已经使用 MATLAB 检查了一个 2 小时的 .wav 文件中的每个样本,它完全是位完美的。

    我可能是一些量化错误,但它是由 API 引起的。 ASIO 和 WASAPI 给了我完美的声音,MME 和 DirectSound 给了我失真的信号。

    【讨论】:

      猜你喜欢
      • 2016-08-11
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 2023-01-14
      • 2020-12-15
      相关资源
      最近更新 更多