计算机网络物理层-编码技术实现
生活随笔
收集整理的這篇文章主要介紹了
计算机网络物理层-编码技术实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.編碼技術
| 歸零編碼(RZ) | 信號電平在一個碼元內要恢復到0狀態 |
| 非歸零編碼(NRZ) | 高1低0 |
| 反向不歸零編碼(NRZI) | 前后信號翻轉表示后面一個碼元為0,電平不變代表1 |
| 曼徹斯特編碼 | 一個碼元內,前高后低位1,前低后高為0 |
| 差分曼徹斯特編碼 | 碼元為1,該碼元的前半個碼元電平與前一個碼元的后半個碼元的電平相同,0則相反 |
| 4B/5B編碼 | 在比特流中插入額外比特打破一連串的0或1 |
二.運行效果圖
三.詳細介紹
1.為了實現每種波形的動態更新,采用多定時器來實現。一個時鐘主要負責背景及UI界面的繪制,而其他每種編碼對應一個定時器,共同調用響應函數OnTimer函數,對每個定時的執行通過nIDEvent來識別。
2.界面繪制與編碼波形繪制函數交替執行,而每種編碼波形函數同時并行執行各自的代碼塊。
3.OnTimer函數內部實現偽碼
void CInforEncodeDlg::OnTimer(UINT_PTR nIDEvent) {1.數據預處理,一批一批的進行數據處理,每次時鐘1都調用。if (nIDEvent == 1){ //時鐘nIDEvent =1主要負責界面及背景繪制,以及數據的預處理等。DataPreprocess();}2.各個時鐘的調度,6個bool類成員變量m_xxx=false;用于控制界面和編碼函數交替執行的控制,都為假時,執行界面繪制函數,為真時執行對應的編碼時鐘。switch(nIDEvent){case 1:DrawUI();break;case 2:NRZ();break;case 3:RZ();break;case 4:NRZI();break;case 5:Man();break;case 6:DiffMan();break;case 7:To4BOr5B();break;}CDialogEx::OnTimer(nIDEvent); }4.MFC函數介紹
| GetDlgItem(IDC_STATIC_BITE) | 獲取控件IDC_STATIC_BITE的句柄 |
| GetClientRect(CRec r) | 獲取客戶區,通過矩形r返回 |
| CBrush::FromHandle((HBRUSH)GetStockObject(BLACK_BRUSH)) | 創建一個畫刷 |
| FillRect | 填充矩形,可以用于繪制背景色,也可以通過內存DC繪制 |
| UpdateData(TRUE) | 將輸入值更新到綁定對象上,為FALSE時,把變量值更新到控件上顯示 |
| SelectObject | 將畫筆、畫刷等選入設備 |
| SetBkMode(TRANSPARENT) | 設置背景為透明模式,繪制文本是,文本的背景為透明模式 |
| TextOutW | 用于繪制文本 |
| MoveTo(CPoint p) | 定位到點p |
| LineTo(CPoint p) | 當前點與p點連線 |
代碼https://pan.baidu.com/s/1iL_g-ws8YgGvFWzzlHiaXw
提取碼:zect
總結
以上是生活随笔為你收集整理的计算机网络物理层-编码技术实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小凡做蛋糕(Python)
- 下一篇: Tensorflow深度学习应用(进阶篇