1

我以前从未处理过信号/流编码或解码,至少不会超出 HTTP 等相当基本的协议,所以如果我让这件事变得比我应该做的更难,请原谅我。

我们在工作中使用的一些系统依赖于 SMPTE 时间码来运行,这是一种曼彻斯特双相标记系统,占用 1kHz 到 1kHz 和 2kHz 之间的带宽。

因为这正好在音频频谱中,并且在线路级,它可以直接插入声卡的线路输入,使用您选择的音频 API 访问(我计划在 Mac 上使用 Core Audio)。

我对解码数字比特流本身以恢复时间和参数感到相当高兴,但实际上从采样的模拟信号中恢复比特流并不那么直接,我不确定解决问题的最佳方法是什么。

我目前的计划是在检测到信号后留出一小段时间(1 秒或 24-30 帧)来测量过零水平之间的最大和最小样本数(使用移动平均滤波器来防止尖峰/丢失影响解码)和最大和最小记录电压以确定零交叉点(直流电平)。

然后我应该能够使用这些信息从输入的模拟信号中构造一个数字比特流。我是朝着正确的方向前进,还是有更好的方法?

谢谢

4

1 回答 1

2

你的声卡几乎肯定是交流耦合的。所以你不应该得到直流偏移。

在这里对声卡输入进行有趣的剖析

运行移动平均线来计算软件自动增益控制可能是一个好主意。

你的过零可能接近于零。您还可以模糊 4khz (2*2k)[又名 4khz 的低通滤波器] 的数据,然后对其进行边缘检测以获得过零。

当我遇到这样的信号处理问题时,我会在自定义应用程序中绘制捕获的数据,然后在代码中以半交互方式进行尝试。

作为一个建议,尝试捕获一些并查看如何将存储的数据提供给解析例程。尝试不同的事情,看看什么有效

于 2009-11-16T02:12:01.903 回答