范文為教學中作為模范的文章,也常常用來指寫作的模板。常常用于文秘寫作的參考,也可以作為演講材料編寫前的參考。范文怎么寫才能發揮它最大的作用呢?以下是我為大家搜集的優質范文,僅供參考,一起來看看吧
課程設計成果說明書篇一
crc 校驗碼的軟件實現 學 生 姓 名 :
葉 松 金 學 號 :
學 院 :
機 電 工 程 學 院 班 級 :
a05 電 信 指 導 教 師 :
趙 秋 亮、張 華 浙江海洋學院教務處 2009 年 1 月 1 日
浙江海洋學院《課程設計成果說明書》規范要求 課程設計說明書是課程設計主要成果之一,一般在 2000~3000 字。
1.說明書基本格式 版面要求:打印時正文采用 5 號宋體,a4 紙,頁邊距上、下、左、右均為 2cm,行間距采用固定值 20 磅,頁碼底部居中。文中標題采用 4 號宋體加粗。
2.說明書結構及要求(1)封面(2)課程設計成績評定表(3)任務書(指導教師下發)(4)摘要 摘要要求對內容進行簡短的陳述,一般不超過 300 字。關鍵詞應為反映主題內容的學術詞匯,一般為 3-5 個,且應在摘要中出現。
(5)目錄 要求層次清晰,給出標題及頁次。最后一項為參考文獻。
(6)正文 正文應按照目錄所確定的順序依次撰寫,要求論述清楚、簡練、通順,插圖清晰整潔。文中圖、表及公式應規范地繪制和書寫。
(7)參考文獻
浙江海洋學院 課程設計 成績評定表 2008—2009 學年 第 1 學期 學院 機電工程學院 班級 a05 電信 專業 電子信息工程 學生姓名(學 號)葉松金()課程設計名 稱 通信技術課程設計 題 目 crc 校驗碼的軟件實現 指導教師評語 指導教師簽名:
年 月 日 答辯評語及成績 答辯小組教師簽名:
年 月 日
浙江海洋學院 課程設計 任務書 2008—2009 學年 第 1 學期 學院 機電工程學院 班級 a05 電信 專業 電子信息工程 學生姓名(學號)葉松金()課程 名稱 通信技術課程設計 設計 題目 crc 校驗碼的軟件實現 完成 期限 自 2008 年 12 月 29 日至 2009 年 1 月 2 日 共 1 周 設 計 依 據 本次設計所需知識 1.通信技術基礎知識 crc 校驗碼的基本思想是利用線性編碼理論,在發送端根據要傳送的 k 位二進制碼序列,以一定的規則產生一個校驗用的監督碼(即 crc碼)r 位,并附在信息后邊,構成一個新的二進制碼序列數共(k+r)位,最后發送出去。在接收端,則根據信息碼和 crc 碼之間所遵循的規則進行檢驗,以確定傳送中是否出錯。
2.軟件基礎知識 熟練使用 c、matlab、max-plus2 等編程語言中的任意一種,能夠用軟件實現所設計的校驗碼 設 計 要 求 及 主 要 內 容 1. 設計一個傳送二進制碼序列長度為 k 位,校驗碼長度 r=16 位的 crc校驗軟件實現程序。
2.循環碼的生成多項式采用 g(x)=x16 +x 12 +x 5 +1 3.用程序實現所設計的校驗碼,所選語言可為自己熟悉的程序語言,比如 c,matlab,max-plus 2 等。
3.詳細寫出軟件實現過程并舉例仿真,如 k=24 時的任意 24 位長二進制序列的 16 位長校驗碼值。
參 考 資 料 1 《程控交換技術》 2 《通信原理》 3 課程設計成果說明書樣稿 4 其他資料自選 指導教 師簽字 日期
c crc 校驗碼的軟件實現 葉松金(浙江海洋學院 機電工程學院 浙江 舟山 316000)摘要 數據通信技術是計算機網絡發展的基礎,已經成為現代生活必不可少的一部分。通信的目的是把信息及時可靠地傳輸給對方,但通過通信信道傳輸的數據往往會有差錯產生,并且不可避免。為保證數據傳輸的正確性,需要對通信過程進行差錯控制。循環冗余校驗 crc 由于編碼簡單、誤判概率低,在通信系統中得到了廣泛的應用。本文詳細介紹了循環冗余校驗 crc 的差錯控制原理,提出了 matlab 軟件程序實現方法,并進行了相關仿真和驗證。
關鍵字:循環冗余校驗 crc 差錯控制 matlab
目 錄 前 言..............................................................................................錯誤!未定義書簽。
1. crc 分類...................................................................................錯誤!未定義書簽。
1.1.標準 crc.........................................................................錯誤!未定義書簽。
1.2.非標準 crc.......................................................................錯誤!未定義書簽。
2. crc 校驗原理..............................................................................錯誤!未定義書簽。
3. crc 校驗算法分析........................................................................錯誤!未定義書簽。
4. 循環冗余校驗 crc 的 matlab 實現及分析..............................................錯誤!未定義書簽。
5. crc 舉例驗證及仿真......................................................................錯誤!未定義書簽。
[參考文獻]........................................................................................錯誤!未定義書簽。
前 言 在數字數據通信中,由于信道上存在的各種復雜因數的影響,所傳輸的信號將受到不同程度的干擾,以至于在接收時發生錯誤。為保證數據在傳輸過程中的可靠性,必須對其進行校驗,以檢測所接收到的數據是否有誤。循環冗余校驗crc(cyclic redundancy code)就是一種被廣泛采用的差錯控制方法和數據編碼方法。它具有編碼和解碼簡單,檢錯和糾錯能力強等特點,能有效的對數據進行編碼,并可以顯著地提高系統的檢錯能力,從而能夠有效的保證數據傳輸的可靠性和正確性,因此在數據通信和計算機通信中有著廣泛的應用。crc校驗碼的計算一般可分為軟件和硬件實現兩種方法。本文討論了crc算法的matlab實現,給出了具體程序,并運用matlab這一強大的工具進行了仿真和驗證。
1 1. . c crc 分類 目前 crc 的使用分為標準和非標準兩種,非標準為用戶自定義 crc 的生成多項式,而標準是已被國際標準化組織規定的生成多項式。
1.1.標準 crc 在通信協議中常見并被廣泛使用的,主要有以下幾種(見表 1)表 1 常用的幾種 crc 名稱 生成多項式 簡記 crc-4 14? ? x x 0x13 crc-16 12 15 16? ? ? x x x 0x18005 crc-ccitt 15 12 16? ? ? x x x 0x11021 crc-32 12 4 5 7 8 10 12 16 22 23 26 32? ? ? ? ? ? ? ? ? ? ? ? x x x x x x x x x x x x 0x104c11db7 1.2.非標準 crc 非標準的 crc 一般是為了某種用途而采用的不同于標準的生成多項式,實際操作原理相同。主要是用于需要 crc 但需要低成本的應用,或者為了減輕處理機的處理負擔,又能保證數據可靠性的折中辦法。
2 2. . c crc 校驗 原理 crc 校驗利用線性編碼理論,在發送端根據要傳送的 k 位二進制碼序列,以一定的規則產生一個校驗用的監督碼(即 crc 碼)r 位,并附在信息后面,構成一個新的二進制碼序列數共(k+r)位,最后發送出去。在接收端,則根據信息碼和 crc 碼之間所遵循的規則進行檢驗,以確定傳送中是否出錯。這個規則,在差錯控制理論中稱為“生成多項式”。
在代數編碼理論中,將一個碼組表示為一個多項式,碼組中各碼元作為多項式的系數。例如:表示為0 1 2 3 4 5 6* 1 * 0 * 1 * 0 * 0 * 1 * 1 x x x x x x x ? ? ? ? ? ?,即 12 5 6? ? ? x x x。
設編碼前的原始信息多項式為 p(x),p(x)的最高次冪加 1 等于 k;生成多項式為 g(x),g(x)的最高次冪等于 r;crc 多項式為 r(x);編碼后帶循環校驗碼 crc 的信息多項式為 t(x)。
發送方編碼方法:將原始信息多項式 p(x)乘以rx(即對應的二進制碼序列左移 r 位),再與生成多項式 g(x)做模 2 除,所得余式即為循環校驗碼 crc。用公式表示為)()()(x r x p x x tr? ?。
接收方解碼方法:將 t(x)除以 g(x),若余數為 0,則說明傳輸中無錯誤發生,否則說明傳輸有誤。
舉例來說,設原始信息碼為 1010,生成多項式為 1011,即 x x x p ? ?3)(,1)(3? ? ? x x x g,計算循環校驗碼 crc 的過程用豎式法表示如下。
g(x)→*** ←p(x)*rx(右移 r 位)1011-------1000 1011-----011 ←r(x)(crc 碼)最后得到余式為 011, 注意到 g(x)最高冪次 r=3,得出 crc 為 011,t(x)= 如果傳輸無誤,)()(x gx t無余式。回頭看一下上面的豎式除法,如果被除數是,顯然在商最后一個 1 時,就能除盡。若傳輸有誤,就有余式存在。
3 3. . c crc 校驗算法分析 crc 檢驗碼的編碼方法是用待發送的二進制數據 p(x)除以生成多項式 g(x),將最后的余式作為crc 校驗碼。其實現步驟如下:
(1)設待發送的數據塊是 k 位的二進制多項式 p(x),生成多項式為 r 階的 g(x)。在數據塊的末尾添加 r 個 0,數據塊的長度增加到 k+r 位,對應的二進制多項式為)(x p x r。
(2)用生成多項式 g(x)去模 2 除)(x p x r。求得余數為 r-1 階的二進制多項式 r(x)。此二進制多項式 r(x)就是 p(x)經生成多項式 g(x)編碼的 crc 校驗碼。
(3)將校驗碼 r(x)添至 p(x)的末尾,即可得到包含 crc 校驗碼的待發送字符串。
從 crc 的編碼規則可以看出,crc 編碼實際上是將待發送的 k 位二進制多項式 p(x)轉換成了可以被 g(x)除盡的 k+r 位二進制多項式 t(x)。所以,進行譯碼時可以用接收到的數據去除 g(x),如果余數為 0,則表示傳輸過程沒有錯誤;否則,傳輸過程存在錯誤。
4 4. . 循環冗余校驗 c crc 的 的 b matlab 實現及分析 由于 matlab 語言簡潔緊湊,使用方便靈活,故選用 matlab 完成 crc 的軟件實驗。給出程序如下:
p=input("請輸入待發送數據的二進制序列")m=length(p);g=[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1];a=[p,zeros(1,16)];for i=[1:m] if a(i)==1 for j=(1:17)a(i+j-1)=xor(a(i+j-1),g(j));end end
end for k=[1:16] crc16(k)=a(m+k);end crc16 首先由用戶輸入待發送數據的二進制序列賦給兩個數組 p。由于 matlab 本身的特點,在數據輸入時都是以數組的形式呈現。另外,由于采用 crc 校驗時,生成多項式的首位和最后一位必須為 1,在這里我們采用 crc-ccitt,即 15 12 16? ? ? x x x。由程序檢測出待發送數據和生成多項式的位數,賦給 m,由于采用 crc-ccitt,這里 n=17,接著將待發送數據的末尾添加 n-1 個 0,并傳遞給數組 a。將數組a 與生成多項式做模 2 除運算。模 2 除做法與算術除法類似,但每一位除(減)的結果不影響其它位,即不向上一位借位。所以實際上就是異或。然后再移位做下一位的模 2 減。首先將數組 a 的第一位與數組 g 的第一位做異或運算,并將結果重新賦給 a,判斷 a 的首位是否為 1,繼續循環做下一位的異或運算,直到余數的位數小于除數。將最后得到的數組 a 的前 m 位的 0 去掉,就得到所需的循環冗余校驗碼 crc。將 crc 添加到待發送數據末尾就可到包含 crc 校驗碼的待發送字符串。
5 5. . c crc 舉例驗證及仿真 輸入 24 位長二進制序列,采用生成多項式 1)(5 12 16? ? ? ? x x x x g,即生成多項式序列為 00001,運行程序得到 crc 為 0010。
與理論得到的 crc 值一致,編程成功。
圖 1 程序仿真運行結果
[ 參考文獻] [1] 張翠霞,劉齊宏,唐常杰.基于 gep 的非線性系統辨識算法[j].微計算機信息.2006,12-1:234-236.[2] 陳懷琛,吳大正, 及在電子信息課程中的應用[m].電子工業出版社,2006.3.[3] 王新梅.糾錯碼與差錯控制.人民郵電出版社,1989.[4] 宋煥章.計算機糾錯編碼.國防科技大學出版社,1990.[5] 樊昌信,吳成柯.通信原理[m].國防工業出版社,2006.6.[6] 葉敏.程控數字交換與交換網[m].北京郵電大學出版社,2003.
采礦學課程設計說明書
螺旋槳設計說明書課程設計
簡單模型機設計說明書(課程設計)
網上書城數據庫設計說明書課程設計
《電力拖動與控制系統》課程設計說明書