Matlab USB音频,低位失真

Matlab USB音频,低位失真,matlab,audio,usb,audio-recording,distortion,Matlab,Audio,Usb,Audio Recording,Distortion,我已经实现了一个PIC32作为USB声卡,使用USB音频类1。我正在从微控制器向PCwindows 7发送一个锯齿信号,64位,作为16位样本: 十进制: 000 800 1600 2400 .. so on 然后我尝试使用Audacity和MME-driver将接收到的音频录制为.wav或.raw。 我使用MATLAB打开并检查数据,在那里我看到如下数据: 000 799 1599 2400 .. 失真范围为-1至+1位pr样本。。 有人知道问题出在哪里吗。? Windows音频驱动程序

我已经实现了一个PIC32作为USB声卡,使用USB音频类1。我正在从微控制器向PCwindows 7发送一个锯齿信号,64位,作为16位样本:

十进制:

000
800
1600
2400
.. so on
然后我尝试使用Audacity和MME-driver将接收到的音频录制为.wav或.raw。 我使用MATLAB打开并检查数据,在那里我看到如下数据:

000
799
1599
2400
..
失真范围为-1至+1位pr样本。。 有人知道问题出在哪里吗。?
Windows音频驱动程序

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

我解决了我的问题

这个问题是由我用来记录数据的应用程序和我使用的方法引起的。。我使用了Audacity,它支持旧的windows MME音频API和DirectSound API。这些显然是相对较高级别的API,是导致失真的原因。

相反,我使用了另一个程序,叫做Reaper,它可以选择使用ASIO og WASAPI进行记录。这解决了我的问题。我已经用MATLAB在一个2小时的.wav文件中检查了每个样本,它完全有点完美

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

它转换成模拟了吗。?我使用的是USB音频,这种转换在哪里发生。?那么,我怎样才能在不首先将其转换为模拟的情况下将其录制为数字声音呢?为了避免a/d转换,您不应该播放音频。可能需要编写一个程序直接从USB端口读取音频信号。