我有一个音频流中的二进制数据,我想解码它。下面是来自Audacity的一个示例截图:

似乎每毫秒就有一段新的数据。这也意味着数据以1000赫兹编码,波特率为1000。
我还可以看出,每个包都有20位(这意味着传输需要20毫秒)加上3毫秒的只是一个高信号。这意味着每隔23毫秒就会对数据包进行。。
所以问题是,我如何将它转换成二进制文件?手工完成和执行是不可能的--除非,也就是说,您愿意这样做:)
发布于 2015-06-16 07:45:43
这是一个典型的数字调制被称为开关键控(OOK)。
它很容易解码OOK:应用一个截止频率略低于1 /符号周期的低通滤波器,抽取它的输出,使每个符号持续时间只得到一个值,然后使用一个实验找到的阈值来决定0和什么是1。
您可能需要找到确切的符号持续时间和符号首先开始,如果您想要真正准确。这是一个经典的同步问题--在您的例子中,似乎发送方确保在每个符号转换时都有一个锐利的边缘,因此高通滤波您的信号,您将得到一个时钟信号,您可以使用它来调整一个重放器,然后调整信号进入解码器的采样速率(如前所述)。
这样做有一个很好的框架;GNU无线电提供了您需要的所有构建块来实现这一点,它有一个活跃的社区,有一个GUI来帮助您开发信号处理应用程序,如果您在信号处理链中不使用图形化可视化,那么最终的应用程序是可移植的,它是高度优化的,并附带了很多示例。
https://stackoverflow.com/questions/30833700
复制相似问题