ruby - 如何解释音频编码的二进制数据?

标签 ruby audio signal-processing frequency-analysis frequency-domain

我编写了一个小程序,可以将二进制数据编码成声音。例如下面的二进制输入:

00101101

会产生这样的“声音”:

################..S.SS.S################

其中每个字符代表一个恒定的时间单位。 #代表880赫兹正弦波,用于确定传输的开始和结束,代表静音,代表零,S代表一个440赫兹的正弦波,代表一个。显然,中间的部分在实践中要长得多。

我的问题的本质是:我怎样才能反转这个操作?

声音文件通过简单的播放和录音传输给接收者。这意味着我不会尝试解码原始声音文件,这很容易。

显然,我必须根据频率分析记录的数据。但是怎么办?我已经阅读了一些有关傅立叶变换的内容,但我在这里很迷茫。

我不确定从哪里开始,但我知道这不是微不足道的,可能需要相当多的信号处理知识。有人能指出我正确的方向吗?

顺便说一句:我在 Ruby 中这样做(我知道,它很慢 - 这只是一个概念证明)但问题本身不是特定于编程语言的,所以非常欢迎任何答案。

最佳答案

您的问题显然是试图解调 FSK 调制信号。我建议实现针对每个频率调谐的相关库,如果速度是您关注的问题之一,它比 fft 快得多

关于ruby - 如何解释音频编码的二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455143/

相关文章:

matlab - 如何将信号归一化为零均值和单位方差?

c++ - PortAudio 回调中的求和波

javascript - 我可以将所有下划线对象绑定(bind)到 native JavaScript 原型(prototype)吗?

ruby-on-rails - float 导致计算不准确

Ruby:如何转换字符串中的温度单位?

ios - 通过多个按钮播放多个音频文件

matlab - 在音频文件上应用频率采样过滤器

ruby-on-rails - 如何使用 fastcgi 在 Bluehost 上运行 Rails 2.3.3 应用程序

audio - 使用相对路径将声音导入Flash CS5

javascript - 在 SoundManager2 中播放 AAC 无法启动