假设我正在以数字方式接收二进制信号,其中逻辑“1”作为信号的存在而发送,而发送的逻辑“0”是没有信号。
逻辑“1”的持续时间与逻辑“0”相同,但发送器时钟可以漂移,稍微不同于1或0持续时间。可传输的最大连续数为1或0。
在计算机编程代码中,通用算法是什么?如何同步接收器时钟以适应漂移?什么应该是信号的最小采样率?
答案 0 :(得分:2)
大多数通信系统使用(向上)和(向下)用于0和1.即从0到t / 2信号向上,从t / 2到t信号向下为0(反之亦然) 1)其中t是信号的周期。使用此策略可以消除您的问题。
编辑:请参阅此Wiki文章http://en.wikipedia.org/wiki/Self-clocking_signal
答案 1 :(得分:0)
通常,通过锁相环(PLL)从行程长度受限的NRZ编码信号中恢复时序,锁相环(PLL)正在馈送所有转换的时序。
如果您正在对信号进行采样而不是使用转换时间,那么采样率越高,PLL频率中的抖动就越小。但无论如何,采样率必须明显快于位时间倒数的2倍。
您可能也想在signal processing site中提出这个问题。
答案 2 :(得分:0)
您正在描述与RS-232非常相似的内容。
时钟同步的方式是首先确保两端以相同的频率(波特率)运行,然后为每个设定的位数定义一个启动和停止序列。因此,例如,您将发送0作为起始位,将1作为停止位,然后发送一大堆位(例如,一个字节)。由于您的两个时钟几乎相同,所以您需要做的就是同步信号,在停止/启动位中查找1到0的转换,这将指示新单词的开始。
这样你就可以将每个时钟之间的错误重置为零,确保它不会累积并导致问题。 asynchronous serial communication上的维基百科页面讨论了我刚才所说的内容。