2012-05-17 14 views
3

假設我正在以數字方式接收二進制信號,其中邏輯「1」是作爲信號的存在而傳輸的,而傳輸的邏輯「0」是沒有信號。如何同步信號接收器時鐘?

邏輯「1」的持續時間與邏輯「0」的持續時間相同,但發送器時鐘可能漂移,略微區別1或0的持續時間。有最大數量的連續1或0可以傳輸。

在計算機編程代碼中,這樣做的一般算法是什麼?我如何同步接收機時鐘以適應漂移?信號的最小採樣率應該是多少?

+0

信號是數字的價值(它是0或1,而不是0.9等),但持續時間? – leonbloy

回答

2

大多數通信系統對0和1使用(向上)和(向下)。即從0到t/2信號已經啓動,並且從t/2到t信號向下爲0反之亦然1)其中t是信號的週期。使用此策略應該可以消除您的問題。

編輯:請參閱本wiki文章http://en.wikipedia.org/wiki/Self-clocking_signal

0

通常定時從遊程長度受限的NRZ編碼信號通過鎖相環(PLL),其被饋送所有的轉換的定時的方法回收。

如果您正在對信號進行採樣而不是使用過渡時間,那麼採樣率越高,PLL頻率中的抖動越小。但是在任何情況下,採樣速率都要比比特時間倒數的2倍快得多。

您也可以在signal processing site中提出這個問題。

0

您正在描述的東西似乎與RS-232非常相似。

時鐘同步的方式是首先確保兩端以相同的頻率(波特率)運行,然後爲每個設定的位數定義一個啓動和停止序列。所以,例如,你將發送一個0作爲起始位,一個1作爲停止位,然後發送一大堆位(如一個字節)。由於你的兩個時鐘幾乎是一樣的,所以你所要做的同步信號是在停止/起始位查看1到零的轉換,這將表示一個新字的開始。

通過這種方式,您可以將您的時鐘之間的錯誤重置爲零,並確保它不會累積並造成問題。關於asynchronous serial communication的維基百科頁面會更詳細地討論我剛纔所說的內容。