在覆盆子pi上从ADC芯片读取原始音频值

2024-04-23 21:11:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我把MCP3008 ADC芯片连接到驻极体麦克风和pi上。我用python中的bit-bang读取输入,得到一个0-1024的整数。在

我按照这个教程做了位碰撞:https://learn.adafruit.com/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi/connecting-the-cobbler-to-a-mcp3008

我的问题是如何取这个整数并将它转换成有意义的东西?我可以用python把这些字节写到一个文件中,得到Audacity可以播放的原始音频数据吗?现在当我写这些值时,它们只是显示为整数而不是二进制。我对python还很陌生,我找到了转换原始数据的链接,但是我在首先生成原始数据时遇到了麻烦:Python open raw audio data file

我甚至不知道这些值代表什么,它们是PCM数据,我必须做数学与时间有关?在


Tags: the数据https原始数据pibit教程整数
1条回答
网友
1楼 · 发布于 2024-04-23 21:11:17

你要做的是采样一个时变的模拟信号。所以,是的,你得到的值是PCM-但有一个巨大的警告(见下文)。如果您将它们作为WAV文件编写(可能使用this来帮助您),您将能够在Audacity中打开它们。您可以将值转换为无符号的8位(通过截断和)或通过移位和减法将值转换为16位有符号。在

警告是,PCM是用信号对采样时钟进行调制。在你的例子中,时钟信号是你的频率,你的位元爆炸ADC。 实际上,很难在软件中安排这种规则,特别是当从高级语言(如Python)对设备进行位冲击时。你需要在两倍于信号带宽(奈奎斯特定律)下采样——实际上,是8kHz的电话语音质量。在

一个不规则的样品时钟也会导致重要的人工制品-你会听到失真。在

相关问题 更多 >