2010-07-06 17 views
0

我将一个无线电信号记录到.wav中,我可以用大胆的方式打开它,看到使用某种算法编码了二进制数据。有没有人知道处理.wav中包含的信号的方法?这样我可以从中提取二进制数据?处理来自.wav的信号,并将其转化为二进制数据

我知道我需要知道编码算法才能正常工作,任何人都知道任何类似的程序?

感谢

+0

您已经有了一个包含音频样本的二进制文件。你到底想做什么?正如你所指出的,一个好的开始将是找出确切的容器和编解码器。 [Waveform Audio File Format](http://en.wikipedia.org/wiki/WAV)中的[LPCM](http://en.wikipedia.org/wiki/Linear_pulse_code_modulation)(一种[ RIFF](http://en.wikipedia.org/wiki/Resource_Interchange_File_Format))文件。 – 2010-07-06 04:30:53

+0

您应该在FFT中看到不同的组件 - 载波频率,波特率以及彼此的产品。如果你知道这种格式,你的生活会变得更容易。要解码4级FSK,请使用FIR(有限脉冲响应)数字滤波器。 FFT窗口将太粗糙而无法以波特率解码,但FIR可能能够。 如果您从扫描仪获得信号,请查看“trunktracking”以获取解调信号的一些线索,无论它是什么。 – 2010-07-06 04:31:49

+0

这很大程度上取决于数据的调制类型。有许多可能性。例如,气象卫星使用一种方法。寻呼机的另一个。 PSK31与RT​​TY不同。等等。 – Paul 2014-10-05 21:28:00

回答

1

sox将大部分的音频格式转换成其他大多数音频格式 - 包括原始的二进制。

+0

sox是我用来执行反向操作的东西;它工作完美。 – Clifford 2010-07-20 20:12:38

1

.wav格式通常很简单,wav文件通常没有压缩数据。自己解析它是非常可行的,但是更容易使用已经创建的东西。所以简短的答案是找到可以用你选择的语言阅读wav文件的东西。

下面是Python的一个例子,使用wave模块:

import wave 

w = wave.open("myfile.wav", "rb") 
binary_data = w.readframes(w.getnframes()) 
w.close() 

现在你走到哪里取决于你想要做什么。 binary_data现在是一个原始字节的Python字符串。如果你只是想砍掉它并重新包装它,那么最简单的办法就是把它放在这个表格中。如果你想操作数据,比如缩放,插入,过滤等,你可能会想将其转换为一系列数字,为此,在Python中,你需要将它转换为numpy数组。您可以使用struct模块自行完成此操作,该模块用于将字符串解释为打包的二进制数据,或者您可以使用scipy.io.wave模块读取数据,该模块将为您执行此操作。正如你所看到的,大部分这些变得很快依赖语言。

相关问题