中断抖动会导致使用mcu的dac导致音频中的抖动吗?

时间:2017-10-10 08:36:38

标签: audio microcontroller pcm dac jitter

我不确定这是否是正确的地方。

我有一个大学的任务,我们需要通过PWM和DAC播放预编译的wav作为整数数组。现在,我想要更多的挑战,所以我走开了,使用有问题的微控制器在usb上创建了一个音频dac:STM32F051。它基本上使用wasapi环回记录器监听我的声卡输出,将分辨率从16位更改为12位(因为stm32上的dac只有12位分辨率)并使用usart使用10x采样率作为波特率发送它(在我的情况960000)。全部用C#完成。

在微控制器上,我只是使用usart中断并将接收到的数据推送到dac。

它运行良好,比PWM好得多,并且采样频率为48kHz。

但......在这里它来了......当有一些(大部分)高音调的交响乐旋律时,它开始发出声音"摇摇晃晃的#34;。

这是一个可以听到它的视频:https://youtu.be/xD3uTP9etuA?t=88

我在互联网上读到了一些关于DIY dac和某个地方的人(不记得在哪里)提到MCU一般都有中断抖动。所以可能基本的问题是:中断抖动实际上导致这种情况吗?如果是这样,有没有办法限制发生的抖动?

或者这是完全不同的东西吗?

我正在考虑尝试压缩pcm数据通过串行发送(如前所述,12位分辨率,但是以2个8位的包形式发送,形成16位,因此采样率是波特率的两倍,所以我的计划是尝试将12位移位到MSB并将下一个12位值的4位添加到当前的16位变量中,因此只需要12次传输而不是每8个样本16次。可以使用更有效的方法压缩数据进行传输。) ,将样品放入缓冲液中,然后使用另一个以48kHz触发的定时器将样品发送到dac。这个概念会起作用吗?或者我只是浪费时间?

对于代码,这是项目:https://github.com/EldinZenderink/SoundOverSerial

先谢谢所有可能的答案!

0 个答案:

没有答案