差分曼徹斯特編碼課程設計_第1頁
差分曼徹斯特編碼課程設計_第2頁
差分曼徹斯特編碼課程設計_第3頁
差分曼徹斯特編碼課程設計_第4頁
差分曼徹斯特編碼課程設計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計報告計算機網(wǎng)絡 題 目: 差分曼徹斯特模擬編碼姓 名: 專 業(yè): 班 級: 學 號: 指導教師: 目 錄1. 課程設計目的012. 課程設計要求013. 實驗要求014. 差分曼徹斯特編碼簡介015. 設計思路026. 圖像示意027. 算法流程圖028. 實驗模塊分析039. 運行結果1010. 實驗總結 11(1)結果分析 11 (2)實驗感想 1211.附錄代碼 131、 課程設計目的: 通過課程設計,鞏固計算機網(wǎng)絡課程學習的內容,強化上機動手能力,為后續(xù)各門計算機相關課程的學習打下堅實基礎。課程設計為學生提供了一個獨立實踐的機會,將課本上的理論知識和實際應用問題進行有機結合,鍛

2、煉綜合分析、解決實際問題的能力。2、 課程設計要求:1、 對系統(tǒng)進行功能模塊分析、控制模塊分析正確;2、 系統(tǒng)設計要實用;3、 編程簡練,可用,功能全面,具有較好的健壯性;4、 說明書、流程圖要清楚。3、 實驗要求: 通過編譯語言實現(xiàn)一個輸入十六進制數(shù)輸出差分曼徹斯特編碼模擬圖像實驗。4、 差分曼徹斯特編碼簡介: 差分曼徹斯特編碼是對曼徹斯特編碼的一種改進,保留了曼徹斯特編碼作為“自含時鐘編碼”的優(yōu)點,仍將每比特中間的跳變作為同步之用,但是每比特的取值則根據(jù)其開始處是否出現(xiàn)電平的跳變來決定。其原理是:每一位中間都有一個跳變,每位開始時有跳變表示“0”,無跳變表示“1”。位中間跳變表示時鐘,位前

3、跳變表示數(shù)據(jù)。其優(yōu)點是:時鐘、數(shù)據(jù)分離,便于提取。五、設計思路: 輸入16進制數(shù)據(jù),能夠輸出差分曼卻斯特波形圖,通過數(shù)組轉變,將十六進制數(shù)據(jù)轉化成二進制數(shù)據(jù),轉化過程中,必須將一位十六進制數(shù)據(jù)轉化成四位二進制數(shù)據(jù),并判斷差分曼徹斯特編碼,輸出模擬圖像。6、 圖像示意:七、 開 始算法流程圖: 輸入一個十六進制數(shù) 將十六進制轉換四位二進制數(shù)表示判斷輸入數(shù)據(jù)進制 不是二進制數(shù),則運行結束 是二進制組成的數(shù)據(jù) 輸出差分曼徹斯特編碼波形 結 束8、 實驗模塊分析: 將一個十六進制數(shù)轉化為二進制數(shù)void test() char cMAX;int a16=0;int i=0,j;cout<<

4、"請輸入一個十六進制數(shù):"<<endl;cin>>c; while(ci)if(ci>'0'&&ci<'9') ci=ci+-48; else if(ci>='A'&&ci<='Z') ci=ci+-55; else if(ci>='a'&&ci<='z')ci=ci+-87; else cout<<"輸入錯誤,請從新輸入"<<e

5、ndl;return; i=0;while(ci) for(j=3;j>=0;j-) aj=ci%2;ci/=2; for(j=0;j<4;j+) cout<<aj<<endl; i+; cout<<endl; 判斷輸入的數(shù)據(jù)是不是由01組成的序列。若不是,則做出錯處理。bool check(char *ch)/局部變量bool flag=true;int index=1;char temp='n'if(ch0='0')cout<<"(-請輸入上述轉換的數(shù)據(jù)!-)"<<e

6、ndl;flag=false;/只有ch0!='0'時才會進入這個循環(huán)while(chindex!='0' && ch0!='0') if(chindex=' ') /如果輸入的數(shù)據(jù)中有空格則忽略index+;continue;if(chindex!='0' && chindex!='1')cout<<"源數(shù)據(jù)有誤!"<<endl<<endl;/根據(jù)用戶需要決定是否繼續(xù)編碼過程cout<<"

7、是否繼續(xù)?y/n:"cin>>temp;if(temp!='y') exit(1);flag=false;break;index+;return flag;差分曼徹斯特編碼。第一個數(shù)據(jù)若是1,則用10代替;若是0,則用01代替。其他數(shù)據(jù),后一個數(shù)據(jù)若是1,則數(shù)據(jù)起始位置不跳變;若是0,則數(shù)據(jù)起始位置產生跳變。并且,每個數(shù)據(jù)中間都會產生跳變。void Differential_Manchester_Encody(char *ch)int index=1;char temp; /用temp來記錄前一個數(shù)據(jù)后半部分是0還是1cout<<"差

8、分曼徹斯特編碼圖像為: "<<endl;if(ch0='0')cout<<"-_ "temp='1'elsecout<<"_- "temp='0'while(chindex!='0') /編碼未完成才繼續(xù)if(chindex=' ')index+;continue;if(chindex='1')if(temp='1')cout<<"_- "temp='0

9、9;elsecout<<"-_ "temp='1'elseif(temp='1')cout<<"-_ "temp='1'elsecout<<"_- "temp='0'index+;cout<<endl<<endl;主函數(shù)部分:int main() test();/char bufferMAX;/存放輸入數(shù)據(jù)的緩沖區(qū) char cMAX;/bufferMAX=cMAX;char temp='y'wh

10、ile(temp='y')cout<<"非歸零碼為: "<<endl;gets(c); /利用gets而不用cin是為了當輸入的數(shù)據(jù)中含有空格時能讀取完整的碼if(check(c) /首先檢查輸入的數(shù)據(jù)是否符合要求,01串符合要求Differential_Manchester_Encody(c);/根據(jù)用戶需要決定是否繼續(xù)編碼過程cout<<"continue or noty/n:"cin>>temp;getchar(); /這個getchar()是必須存在的,否則gets函數(shù)會讀取cin&

11、gt;>temp中的回車return 0;9、 運行結果:10、 實驗總結: 1、結果分析: (1)差分曼徹斯特碼編碼規(guī)則: 從上圖可看出差分曼徹斯特碼的編碼規(guī)則,即: i.每個單位周期內,以1/2周期的時刻處,分為高低兩個等時長電平。有兩種:上升(先高后低)或下降(先低后高)。 ii.數(shù)據(jù)流的二進制編碼中,第一個數(shù)據(jù)位是1,則編碼為下降。0則相反。  iii.數(shù)據(jù)流的二進制編碼中,其它數(shù)據(jù)位,則根據(jù)此位跟前一位的電平比較。相同則編碼為不跳變(跟上一位后半部分一樣)。不同則相反。 (2)差分曼徹斯特碼特點:在信號為開始時不改變信號極性,表示邏輯“1”;在信號為開始時改變信號極性

12、,表示邏輯“0”。當比特為1時,前T/2比特位的電平與上一個比特位的后T/2的比特位的電平相同;當比特為0時,前T/2比特位的電平與上一個比特位的后T/2比特位的電平相反。2、 實驗感想:首先,讓我對差分曼徹斯特編碼原理有了進一步的了解。差分曼徹斯特碼又叫數(shù)字雙相碼,每個時鐘中間都有一次跳變這個跳變作同步之用。其次,通過這次課程設計,我認識到了完成一項課程設計工作不但需要對知識的掌握和理解,還需要不懂就問,同學間共同努力來解決課程設計當中的種種困難,開拓創(chuàng)新能力的目的。最后,通過這次課程設計,讓我對說明書的模板有了更清晰的了解,加深了我思想中對文章模范化的概念,對我一年后的畢業(yè)論文也起了輪廓性

13、作用。這將會變成我們在大學生活中獲得的又一筆巨大的財富。附錄代碼:#include<iostream>using namespace std;#define MAX 1024bool check(char *ch)bool flag=true;int index=1;char temp='n'if(ch0='0')cout<<"(-請輸入上述轉換的數(shù)據(jù)!-)"<<endl;flag=false;while(chindex!='0' && ch0!='0') i

14、f(chindex=' ') /如果輸入的數(shù)據(jù)中有空格則忽略index+;continue;if(chindex!='0' && chindex!='1')cout<<"源數(shù)據(jù)有誤!"<<endl<<endl;cout<<"是否繼續(xù)?y/n:"cin>>temp;if(temp!='y') exit(1);flag=false;break;index+;return flag;void test() char cMA

15、X;int a16=0;int i=0,j;cout<<"請輸入一個十六進制數(shù):"<<endl;cin>>c; while(ci)if(ci>'0'&&ci<'9') ci=ci+-48; else if(ci>='A'&&ci<='Z') ci=ci+-55; else if(ci>='a'&&ci<='z')ci=ci+-87; else cout<&

16、lt;"輸入錯誤,請從新輸入"<<endl;return; i=0;while(ci) for(j=3;j>=0;j-) aj=ci%2;ci/=2; for(j=0;j<4;j+) cout<<aj<<endl; i+; cout<<endl; void Differential_Manchester_Encody(char *ch)int index=1;char temp; cout<<"差分曼徹斯特編碼圖像為: "<<endl;if(ch0='0'

17、)cout<<"-_ "temp='1'elsecout<<"_- "temp='0'while(chindex!='0') if(chindex=' ')index+;continue;if(chindex='1')if(temp='1')cout<<"_- "temp='0'elsecout<<"-_ "temp='1'elseif(temp='1')cout<<"-_ "temp='1'elsecout<<"_- "temp='0'index+;cout<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論