【问题标题】:Decoding Manchester biphase-mark in software (representing a SMPTE timecode audio stream)在软件中解码曼彻斯特双相标记(表示 SMPTE 时间码音频流)
【发布时间】:2010-12-16 21:50:10
【问题描述】:

我以前从来没有处理过信号/流编码或解码,至少没有超出 HTTP 等相当基本的协议,所以请原谅我让这比我应该做的更难。

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

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

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

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

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

谢谢

【问题讨论】:

    标签: video audio stream decode


    【解决方案1】:

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

    interesting dissection of sound card inputs here

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

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

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

    作为建议,请尝试捕获一些数据,看看如何将存储的数据提供给解析例程。尝试不同的方法,看看有什么效果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多