定時同步和Costas環
定時同步在實際中一般比較複雜,本文,我們主要使用加入的幀頭資訊進行定時同步,由於接收和傳送是兩塊板子,所以他們對應的晶振是不同的,所以兩個晶振之間會存在細微的頻率差,這就是時偏,利用本方案加入的幀頭,對每幀資料進行取樣時鐘的重新整理,從而實現一幀之內取樣時鐘的偏差不超過一個時鐘週期。
程式碼介紹:
此部分程式碼分為如下幾個模組:
Costas環,用於鎖定載波頻率
其鎖定效果如下圖所示:
從上面的模擬結果可知,當採用BPSK的時候,其中一路變為0,另外一路即為原傳送的資料。
符號判決
通過costas環,可以解調出原始的資料,不過這個資料是匹配濾波之後的資料,所以,我們需要對其進行符號判決,獲得其符號位的數值,作為資料。
幀頭檢測模組(相關峰檢測,取樣時鐘的更新以及符號判決)
幀頭檢測,就是通過檢測幀的位置,從而獲得實際的資料幀的位置。幀頭檢測效果如下所示圖所示:
由於採用BPSK調製,可能出現相位翻轉的情況,所以在檢測相關峰的時候,同時判斷相關峰的值的符號,從而還原出原來的資料訊號。
最後,將去掉資料的幀頭,得到實際的視訊訊號。
二進位制資料轉化為RGB資料
最後需要將獲得序列訊號,還原為R,G,B資料即可。其模擬結果如下所示:
三種訊雜比下,模擬結果如下所示:
4DB:
12DB:
20DB:
相關文章
- puppet agent定時同步更新
- JS定時器和單執行緒非同步特性JS定時器執行緒非同步
- $.post 和 $.get 設定同步和非同步請求非同步
- JMeter定時器設定延遲與同步JMeter定時器
- python設定環境變數(臨時和永久)Python變數
- oracle rac中設定時間同步Oracle
- GBase RTSync實時同步之設定按組同步
- Django配置celery執行非同步任務和定時任務Django非同步
- Linux時區設定及NTP時間同步Linux
- Android非同步、延遲和定時任務的簡易用法Android非同步
- 如何在 Ubuntu 上設定時間同步Ubuntu
- JavaScript 定時器函式非同步原理JavaScript定時器函式非同步
- Ubuntu的NTP同步時鐘設定方法Ubuntu
- boost::asio設定同步連線超時
- VirtualBox 設定時間不同步
- Ubuntu 時間不準,怎麼設定NTP時間同步?Ubuntu
- Windows ntp時間同步設定(bat指令碼)WindowsBAT指令碼
- Linux的時間設定與同步(NTP)Linux
- Linux:設定時間與同步的方法Linux
- 系統時間和硬體時間同步
- Centos下部署NTP時間伺服器同步環境CentOS伺服器
- (轉)windows環境下rac節點時間同步方法Windows
- Spring boot 非同步/定時任務/郵件Spring Boot非同步
- 雲伺服器Linux系統設定時間同步設定伺服器Linux
- win10系統internet時間同步怎麼設定_win10系統internet時間同步如何設定Win10
- SpringBoot之非同步、定時、郵件任務Spring Boot非同步
- Windows區域網通過NTP設定時間同步Windows
- 透過作業定時同步兩個資料庫資料庫
- 4.2.10.2 設定和取消設定環境變數變數
- GO的定時器Timer 和定時任務cronGo定時器
- 純生JS輪播,定時器新增和清除定時器JS定時器
- Linux叢集環境下NTP伺服器時間同步Linux伺服器
- centos下部署NTP時間伺服器同步環境記錄CentOS伺服器
- Vue 設定環境變數和模式Vue變數模式
- Centos系統伺服器設定時間自動同步!CentOS伺服器
- Oracle叢集(RAC)時間同步(ntp和CTSS)Oracle
- 時態同步
- 【Python】Python 使用http時間同步設定系統時間原始碼PythonHTTP原始碼