




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要線性分組碼一種重要的差錯(cuò)控制編碼,它編碼與譯碼電路比較簡(jiǎn)單,糾錯(cuò)能力也較強(qiáng),是實(shí)際應(yīng)用中比較流行的差錯(cuò)控制編碼方法之一。本文以(7,3)線性分組碼為例,在設(shè)計(jì)中已給定生成矩陣G,針對(duì)(7,3)線性分組碼,運(yùn)用C語(yǔ)言編譯軟件,實(shí)現(xiàn)了對(duì)輸入序列的編碼、譯碼以及對(duì)輸入接收碼組的查錯(cuò)和糾錯(cuò),該軟件程序系統(tǒng)簡(jiǎn)單易懂,實(shí)用性強(qiáng),不失為一個(gè)滿足實(shí)際需求和課設(shè)要求的系統(tǒng)。關(guān)鍵詞:差錯(cuò)控制,線性分組碼,編譯碼;前言隨著社會(huì)經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的全面進(jìn)步,計(jì)算機(jī)事業(yè)的飛速發(fā)展,以計(jì)算機(jī)與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時(shí)期,隨著經(jīng)濟(jì)文化水平的顯著提高,人們對(duì)生活質(zhì)量及工作軟件的要求也越來(lái)越高。計(jì)
2、算機(jī)通信是一種以數(shù)據(jù)通信形式出現(xiàn),在計(jì)算機(jī)與計(jì)算機(jī)之間或計(jì)算機(jī)與終端設(shè)備之間進(jìn)行信息傳遞的方式。它是現(xiàn)代計(jì)算機(jī)技術(shù)與通信技術(shù)相融合的產(chǎn)物,在軍隊(duì)指揮自動(dòng)化系統(tǒng)、武器控制系統(tǒng)、信息處理系統(tǒng)、決策分析系統(tǒng)、情報(bào)檢索系統(tǒng)以及辦公自動(dòng)化系統(tǒng)等領(lǐng)域得到了廣泛應(yīng)用。計(jì)算機(jī)通信系統(tǒng)是經(jīng)典的數(shù)字通信系統(tǒng),它是計(jì)算機(jī)技術(shù)和通信技術(shù)結(jié)合的產(chǎn)物,一方面通信網(wǎng)絡(luò)為計(jì)算機(jī)之間的數(shù)據(jù)傳遞和交換提供必要的設(shè)施和手段;另一方面,數(shù)字計(jì)算機(jī)技術(shù)的發(fā)展?jié)B透到通信技術(shù)中,又提高了通信網(wǎng)絡(luò)的各種性能,二者相互滲透、互相促進(jìn)、共同發(fā)展。由于計(jì)算機(jī)、衛(wèi)星通信及高速數(shù)據(jù)網(wǎng)的飛速發(fā)展,數(shù)據(jù)的交換、處理和存儲(chǔ)技術(shù)得到了廣泛的應(yīng)用,數(shù)字信號(hào)在傳
3、輸中往往由于各種原因,使得在傳送的數(shù)據(jù)流中產(chǎn)生誤碼,從而使接收端產(chǎn)生圖象跳躍、不連續(xù)、出現(xiàn)馬賽克等現(xiàn)象,人們對(duì)數(shù)據(jù)傳輸和存儲(chǔ)系統(tǒng)的可靠性提出來(lái)了越來(lái)越高的要求,經(jīng)過(guò)長(zhǎng)時(shí)間的努力,通過(guò)編譯碼來(lái)控制差錯(cuò)、提高可靠性的方式在信道傳輸中得到了大量的使用和發(fā)展,并形成了一門新的技術(shù)叫做糾錯(cuò)編碼技術(shù),糾錯(cuò)編碼按其碼字結(jié)構(gòu)形式和對(duì)信息序列處理方式的不同分為兩大類:分組碼和卷積碼,本課程設(shè)計(jì)主要針對(duì)一個(gè)包含二進(jìn)制序列的文檔中的數(shù)據(jù)進(jìn)行(7,3)線性分組碼的編譯碼,并借助C語(yǔ)言軟件,通過(guò)編寫(xiě)源程序文件,運(yùn)行后對(duì)系統(tǒng)進(jìn)行結(jié)果分析分析。目錄第一章 設(shè)計(jì)目標(biāo)1第二章 線性分組碼的基本原理12.1 差錯(cuò)控制技術(shù)概述12
4、.2 差錯(cuò)控制原理22.3 線性分組碼32.4 線性分組碼的糾檢錯(cuò)能力3第三章 (7,3)線性分組碼的編碼43.1(7,3)線性分組碼的生成矩陣43.2(7,3)線性分組碼的監(jiān)督矩陣5第四章 (7,3)線性分組碼的譯碼64.1 校正子與錯(cuò)誤圖樣64.2線性分組碼C語(yǔ)言程序代碼74.3線性分組碼編譯碼流程框圖114.4 運(yùn)行結(jié)果分析14第五章 C語(yǔ)言軟件簡(jiǎn)介165.1 C語(yǔ)言軟件概述165.2 C語(yǔ)言軟件的特點(diǎn)165.3 C語(yǔ)言軟件的優(yōu)點(diǎn)17總結(jié)17參考文獻(xiàn)18第一章 設(shè)計(jì)目標(biāo)計(jì)算機(jī)通信是一種以數(shù)據(jù)通信形式出現(xiàn),在計(jì)算機(jī)與計(jì)算機(jī)之間或計(jì)算機(jī)與終端設(shè)備之間進(jìn)行信息傳遞的方式。它是現(xiàn)代計(jì)算機(jī)技術(shù)與通
5、信技術(shù)相融合的產(chǎn)物,在軍隊(duì)指揮自動(dòng)化系統(tǒng)、武器控制系統(tǒng)、信息處理系統(tǒng)、決策分析系統(tǒng)、情報(bào)檢索系統(tǒng)以及辦公自動(dòng)化系統(tǒng)等領(lǐng)域得到了廣泛應(yīng)用。隨著計(jì)算機(jī)、衛(wèi)星通信及高速數(shù)據(jù)網(wǎng)的飛速發(fā)展,數(shù)據(jù)的交換、處理和存儲(chǔ)技術(shù)得到了廣泛應(yīng)用,人們對(duì)數(shù)據(jù)傳輸和存儲(chǔ)系統(tǒng)的可靠性提出了越來(lái)越高的要求。因此,如何控制差錯(cuò)、提高數(shù)據(jù)傳輸和存儲(chǔ)的可靠性,成為現(xiàn)代數(shù)字通信系統(tǒng)設(shè)計(jì)工作者所面臨的重要課題,線性分組碼是差錯(cuò)控制編碼的重要一種,線性分組碼的編碼與譯碼電路比較簡(jiǎn)單,糾錯(cuò)能力也較強(qiáng),是實(shí)際應(yīng)用中比較流行的差錯(cuò)控制編碼方法之一。在本次課程設(shè)計(jì)中,要設(shè)計(jì)一個(gè)(7,3)線性分組碼的編譯碼程序,最基本的是要具備對(duì)輸入的信息碼進(jìn)行
6、編碼,讓它具有抗干擾的能力,同時(shí),還要讓它具有對(duì)接收到的整個(gè)碼組中提取信息碼組的功能,但是,在實(shí)際的通信系統(tǒng)中,由于信道傳輸特性不理想以及加性噪聲的影響,接收到的信息中不可避免地會(huì)發(fā)生錯(cuò)誤,影響通信系統(tǒng)的傳輸可靠性,因而,本設(shè)計(jì)還要讓該程序具有糾正錯(cuò)誤的能力,當(dāng)接收到的碼組中有一位碼,發(fā)生錯(cuò)誤時(shí)可以檢測(cè)到這一位錯(cuò)碼,并且可以糾正這一位錯(cuò)碼,并且讓系統(tǒng)從糾正后的碼組中提取正確的信息碼組,針對(duì)給定的矩陣,完成如下的工作:1 完成對(duì)任意信息序列的編碼2 根據(jù)生成矩陣,形成監(jiān)督矩陣3 根據(jù)得到的監(jiān)督矩陣,得到伴隨式,并根據(jù)它進(jìn)行譯4 驗(yàn)證工作的正確性第二章 線性分組碼的基本原理2.1 差錯(cuò)控制技術(shù)概述
7、數(shù)字信號(hào)在傳輸過(guò)程中,由于受到干擾的影響,碼元波形將變壞,接收端收到后可能發(fā)生錯(cuò)誤判決,由乘性干擾引起的碼間串?dāng)_,一般采用均衡的辦法糾正。加性干擾的影響一般從合理選擇調(diào)制制度解調(diào)方法以及發(fā)送功率等方面考慮,使加性干擾不足以影響達(dá)到誤碼率要求。在仍不能滿足要求時(shí),為減少錯(cuò)誤、提高通信質(zhì)量還采用檢錯(cuò)、糾錯(cuò)技術(shù),即差錯(cuò)控制措施。差錯(cuò)控制的主要方法是將數(shù)據(jù)以某種形式編碼。差錯(cuò)控制的核心為:抗干擾編碼,簡(jiǎn)稱差錯(cuò)控制編碼。差錯(cuò)控制編碼分為檢錯(cuò)碼、糾錯(cuò)碼兩大類。它在碼元間建立了某種數(shù)學(xué)約束關(guān)系,并且對(duì)特定的信道總存在某種糾錯(cuò)編碼信號(hào)以實(shí)現(xiàn)最小的能量或最小的帶寬或最小的時(shí)間代價(jià)獲得最小的數(shù)據(jù)傳輸差錯(cuò)。對(duì)于不同
8、信道,采用不同類型的差錯(cuò)控制技術(shù)。差錯(cuò)控制技術(shù)主要有:1) 檢錯(cuò)重發(fā):在發(fā)送碼元序列中加入差錯(cuò)控制碼元,接收端利用這些碼元檢測(cè)到有錯(cuò)碼時(shí),利用反向信道通知發(fā)送端,要求發(fā)送端重發(fā),知道正確接收為止。2) 前向糾錯(cuò):前向糾錯(cuò)是利用接收端在發(fā)送碼元序列中加入的差錯(cuò)控制碼元,不但能夠發(fā)現(xiàn)錯(cuò)碼,還能夠?qū)㈠e(cuò)碼恢復(fù)其正確值。3) 反饋校驗(yàn):不需要在發(fā)送序列中加入差錯(cuò)控制碼元,接收端接收到的碼元原封不動(dòng)的轉(zhuǎn)發(fā)會(huì)發(fā)送端。在發(fā)送端將他和原發(fā)送碼元逐一比較,若發(fā)現(xiàn)有不同,就認(rèn)為接收端接受的序列有錯(cuò)碼,發(fā)送端立即從發(fā)。4) 檢錯(cuò)刪除:在接收端發(fā)現(xiàn)錯(cuò)碼后,立即將其刪除,不要求重發(fā)。這種方法只適合在少數(shù)特定系統(tǒng)中,在那里
9、發(fā)送碼元有大量的多余度,刪除部分接收碼元不影響應(yīng)用。2.2 差錯(cuò)控制原理將信息碼分組,并為每個(gè)信息組附加若干監(jiān)督的編碼,稱為“分組碼”。在分組碼中,監(jiān)督碼元僅監(jiān)督本組碼中的信息碼元。分組碼一般用符號(hào)(n)、(k)表示,其中k是每組碼二進(jìn)制信息碼元的數(shù)目。n是碼組的總位數(shù),又稱為碼組的長(zhǎng)度。r=n-k為每個(gè)碼組中的監(jiān)督碼元數(shù)目,或稱監(jiān)督位數(shù)目。k位二進(jìn)制數(shù)構(gòu)成的碼組集合為種不同的碼組,若組都為有用碼組,其中任意碼組出現(xiàn)錯(cuò)誤都將變成另一碼組,則接收端無(wú)法檢測(cè)識(shí)別哪一組出錯(cuò)。若只取部分碼組為有用碼組,則在傳輸過(guò)程中如接收端接收到的碼組為非許用碼組即禁用碼組時(shí),則可知傳輸錯(cuò)誤。以3位二進(jìn)制數(shù)構(gòu)成的碼組
10、為例,它共有8種不同的可能組合,若將其全部用來(lái)表示天氣,則可以表示8種不同天氣,例如:000晴、001云、010陰、011雨、100雪、101霜、110霧、111雹。其中任一碼組在傳輸中若發(fā)生一個(gè)或多個(gè)錯(cuò)誤,則將變成另一個(gè)信息碼組。這時(shí)接收端無(wú)法發(fā)現(xiàn)錯(cuò)誤。若在上述8種碼組中秩序使用4種來(lái)傳達(dá)天氣,例如:000晴、011云、101陰、110雨。這時(shí),雖然只能傳達(dá)4種不同的天氣,但是接收端卻可能發(fā)現(xiàn)碼組中的一個(gè)錯(cuò)碼。如000錯(cuò)碼一位,則接受碼組將變成100或010或011.這三種碼組都為禁用碼組,故接收端認(rèn)為接收碼錯(cuò)誤。要想能夠糾正錯(cuò)誤,需增加冗余度。2.3 線性分組碼線性分組碼是一類奇偶校驗(yàn)碼,
11、它可以由(n,k)形式表示,編碼器將一個(gè)k比特信息分組(信息矢量)轉(zhuǎn)變?yōu)橐粋€(gè)更長(zhǎng)的由給定元素符號(hào)集組成的n比特編碼分組,當(dāng)這個(gè)符號(hào)集包含兩個(gè)元素(0和1),與二進(jìn)制相對(duì),稱為二進(jìn)制編碼。 分組碼是對(duì)每段k 位長(zhǎng)的信息組,以一定規(guī)則增加r = n - k個(gè)檢驗(yàn)元,組成長(zhǎng)為n的序列:,稱這個(gè)序列為碼字。在二進(jìn)制情況下,信息組總共有個(gè)( q 進(jìn)制為個(gè)) ,因此通過(guò)編碼器后,相應(yīng)的碼字也有個(gè),稱這個(gè)碼字集合為( n , k) 分組碼。n長(zhǎng)序列的可能排列總共有種。稱被選取的個(gè) n重為許用碼組,其余個(gè)為禁用碼組,稱R = k / n為碼率。那么對(duì)于(7,3)碼即為用7位長(zhǎng)的序列表示3位信息碼,7位長(zhǎng)序列的
12、可能排列總共有個(gè)。許用碼組有個(gè),其余個(gè)禁用碼組,碼率為R=3/7=42.86%。對(duì)于長(zhǎng)度為n的二進(jìn)制分組碼,可以表示成(n,k),通常用于前向糾錯(cuò)。在分組碼中,監(jiān)督位加到信息位之后,形成新碼,在編碼中,k個(gè)信息位,被編為n位長(zhǎng)度,(n-k)個(gè)監(jiān)督碼的作用是實(shí)現(xiàn)檢錯(cuò)和糾錯(cuò)。2.4 線性分組碼的糾檢錯(cuò)能力在分組碼中,我們把碼組C中非零分量(對(duì)二進(jìn)制來(lái)說(shuō),即1分量)的數(shù)目定義為碼組C的漢明重量。兩個(gè)碼組對(duì)應(yīng)位上數(shù)字不同的個(gè)數(shù)稱為碼組的距離,簡(jiǎn)稱碼距,也稱漢明距離。對(duì)(n,k)線性碼來(lái)說(shuō),個(gè)碼字中所有可能碼字之間的漢明距離中最小的距離稱為該碼的最小漢明距離,用dmin表示。而對(duì)于線性分組碼來(lái)說(shuō),線性分
13、組碼的最小距離等于它的最小重量。一個(gè)線性分組碼碼的最小距離dmin和碼的抗干擾能力有如下關(guān)系:1) 若要檢測(cè)m個(gè)錯(cuò)碼,要求最小距離dminm+12) 若要糾正t個(gè)錯(cuò)碼,要求最小距離dmin2t+13) 若要糾正t個(gè)錯(cuò)碼同時(shí)檢測(cè)m個(gè)(m>t)錯(cuò)碼,要求碼的最小距離dminm+t+1由上可知,一個(gè)(n,k)線性分組碼有兩個(gè)重要參數(shù)。一個(gè)是它的最小距離dmin,它反映了碼的抗干擾能力,dmin越大,碼的糾錯(cuò)或檢錯(cuò)能力越強(qiáng);另一個(gè)是碼率R=k/n,它表示信息位在碼組中所占的比重,R越大,說(shuō)明信息位占的比重越高,故碼的有效性越高。顯然,我們希望構(gòu)造一個(gè)R高且dmin大的碼,但實(shí)際上這兩者是矛盾的。
14、編碼的主要任務(wù)就是如何找到一種方法,在滿足一定R的條件下,使dmin盡可能地大。在此選擇在課堂上涉及到的(7,3)線性分組碼進(jìn)行編程,完成對(duì)任意信息序列的編碼。第三章 (7,3)線性分組碼的編碼3.1(7,3)線性分組碼的生成矩陣選用碼組的信息組為,碼字為。當(dāng)已知信息組時(shí),按以下規(guī)則得到四個(gè)校驗(yàn)元,即 (1)這組方程稱為校驗(yàn)方程。 (7,3)碼有許用碼組有個(gè),其余個(gè)禁用碼組,碼率為R=3/7=42.86%。發(fā)送方發(fā)送的是許用碼字,若接收方收到的是禁用碼字,則說(shuō)明傳輸中發(fā)生了錯(cuò)誤。為了深化對(duì)線性分組碼的理論分析,可將其與線性空間聯(lián)系起來(lái)。由于每個(gè)碼字都是一個(gè)二進(jìn)制的n重,即二進(jìn)制n維線性空間中的
15、一個(gè)矢量,因此碼字又稱為碼矢。線性分組碼的一個(gè)重要參數(shù)是碼率R=k/n,它說(shuō)明在一個(gè)碼字中信息位所占的比重,R越大,說(shuō)明信息位所占比重越大,碼的傳輸信息的有效性越高。由于(n,k)線性分組,線性分組碼的個(gè)碼字組成了n維線性空間的一個(gè)k維子空間。因此這個(gè)碼字完全可由k個(gè)線性無(wú)關(guān)的矢量所組成。設(shè)此k個(gè)矢量為,有生成矩陣形式為: (2)(n,k)碼字中的任一碼字均可由這組基底的線性組合生成,即: Ci=CnCn-1Cn-2Cn-k·G (3)上式中CnCn-1Cn-2Cn-k是k個(gè)信息元組成的信息組。表3-1 按上式編出的(7,3)碼信息組碼字00000000000010010011010
16、010011001101101011001001100101101111111011010101111111001對(duì)于表3-1給出的(7,3)線性分組碼,可將其寫(xiě)成矩陣形式:(4)其中,(7,3)線性分組碼的生成矩陣為(5)3.2(7,3)線性分組碼的監(jiān)督矩陣(7,3)線性分組碼的四個(gè)校驗(yàn)元由式(1)所示的線性方程組決定的,把(1)式移相有:(6)上式的矩陣形式為:(7)這里的四行七列矩陣稱為(7,3)線性分組碼的一致監(jiān)督矩陣(一致校驗(yàn)矩陣),用H表示,即:(8)第四章 (7,3)線性分組碼的譯碼譯碼器的功能按系統(tǒng)設(shè)計(jì)要求分為檢錯(cuò)譯碼和糾錯(cuò)譯碼兩種,對(duì)于糾錯(cuò)譯碼,其工作又分為譯碼成功和譯碼失敗
17、兩種狀態(tài)。譯碼成功是只譯碼器能夠在達(dá)到譯碼碼字差錯(cuò)概率最小條件下輸出一個(gè)確切的碼字。譯碼失敗是指譯碼器不能輸出一個(gè)確切的碼字,通常此時(shí)的譯碼器輸出y與檢錯(cuò)譯碼輸出相同。4.1 校正子與錯(cuò)誤圖樣假設(shè)接收端收到的碼字為R,那么它和原來(lái)發(fā)送端發(fā)送的碼字C之間就有可能存在著誤差。即在碼組C=C6C5C4C3C2C1C0中的任意一位就有可能出錯(cuò)。這樣我們?cè)诮邮斩私邮盏揭粋€(gè)碼組是就有可能判斷錯(cuò)發(fā)送端原來(lái)應(yīng)該要表達(dá)的意思。為了描述數(shù)據(jù)在傳輸信道中出現(xiàn)錯(cuò)誤的情況,引入了錯(cuò)誤圖樣E,在錯(cuò)誤圖樣中,0代表對(duì)應(yīng)位沒(méi)有傳錯(cuò),1代表傳輸錯(cuò)誤。實(shí)際上錯(cuò)誤圖樣E就是收序列與發(fā)送序列的差。所以在譯碼中用接收到的碼字R模二加錯(cuò)
18、誤圖樣E就可以得到發(fā)送端的正確碼字C。因此譯碼的過(guò)程就是要找到錯(cuò)誤圖樣E。定義:校正子 S=CHT=(R+E)HT=RHT+EHT=EHT (9)因?yàn)镃是編得的正確碼字,根據(jù)前面所敘述,它和監(jiān)督矩陣的轉(zhuǎn)置相乘為0。顯然,S僅與錯(cuò)誤圖樣有關(guān),它們之間是一一對(duì)應(yīng)的關(guān)系。找到了校正子S,也就可以找到E。而與發(fā)送的碼字無(wú)關(guān)。若E=0,則S=0;因此根據(jù)S是否為0可進(jìn)行碼字的檢錯(cuò)。如果接收碼字R中只有一位碼元發(fā)生錯(cuò)誤,又設(shè)錯(cuò)誤在第i位。即,其他的均為0。在后面的譯碼程序中,建立了一個(gè)校正子S與錯(cuò)誤圖樣E對(duì)應(yīng)的表。也就是收到一個(gè)R序列,就可以通過(guò)計(jì)算得到一個(gè)校正子,而每一個(gè)校正子都對(duì)應(yīng)著一個(gè)錯(cuò)誤圖樣E,再
19、通過(guò)R模爾加上E,就可以得到正確的碼字C。因?yàn)樵诓煌腻e(cuò)誤序列R中,同一位碼元錯(cuò)誤時(shí)對(duì)應(yīng)的E是一樣的,所以可以利用0000000這個(gè)正確的碼字讓它每位依次錯(cuò)誤,來(lái)求得它的八個(gè)校正子。而這時(shí)的矩陣R就是錯(cuò)誤圖樣E。這樣就算得了8個(gè)校正子S。而這時(shí)的錯(cuò)誤序列R,就是錯(cuò)誤圖樣E,所以有: E與S都已經(jīng)得到,這時(shí)就可以建立一個(gè)表來(lái)將它們一一對(duì)應(yīng)起來(lái)了。H矩陣與(n,k)碼的任何一個(gè)許用碼字進(jìn)行相乘的結(jié)果必等于0。若不屬于許用碼字,或有傳輸差錯(cuò),且差錯(cuò)位數(shù)在(n,k)碼糾錯(cuò)能力內(nèi),則運(yùn)算結(jié)果將為非0值,此時(shí),可以糾錯(cuò)或檢錯(cuò)重發(fā),校正子和錯(cuò)碼位置的關(guān)系如下:表4-1校正子和錯(cuò)碼的位置關(guān)系S1S2S3錯(cuò)碼位
20、置S1S2S3錯(cuò)碼位置001a0101a4010a1110a5100a2111a6011a3000無(wú)錯(cuò)碼4.2線性分組碼C語(yǔ)言程序代碼#include "stdio.h"#include "conio.h"#include "stdlib.h"main()int i,j,k,u,m,n,r,B=0,p,t;int Input100,h10=0,g10=0;int a1010,b1010,s1010,R1010;int G37=1,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,1,1,1,0,1;int H47=1,0,1
21、,1,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1;int M74=1,1,1,0,0,1,1,1,1,1,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1;/生成矩陣Gprintf("給定的生成矩陣G:n");for(i=0;i<3;i+)for(j=0;j<7;j+)printf("%3d",Gij);printf("n");/監(jiān)督矩陣Hprintf("由此可得監(jiān)督矩陣H:n");for(i=0;i<4;i+)for(j=
22、0;j<7;j+)printf("%3d",Hij);printf("n");/監(jiān)督矩陣的轉(zhuǎn)置矩陣Mprintf("監(jiān)督矩陣的轉(zhuǎn)置矩陣M:n");for(i=0;i<7;i+)for(j=0;j<4;j+)printf("%3d",Mij);printf("n");/編碼部分printf("請(qǐng)輸入信息碼,以數(shù)字2作為結(jié)束!n");for(i=0;i+)scanf("%d",&Inputi);if(Inputi=2)break;u=
23、i;p=u%3;switch (p)case 0:u=u/3;printf("共輸入%d位,補(bǔ)0位!n",u*3);break;case 1:Inputi=0;Inputi+1=0;u=i+2;u=u/3;printf("共輸入%d位,補(bǔ)兩位!n",u*3-2);break;default:Inputi=0;u=i+1;u=u/3;printf("共輸入%d位,補(bǔ)一位!n",u*3-1);break;i=0;for(m=0;m<u;m+)for(n=0;n<3;n+,i+)amn=Inputi;for(m=0;m<u
24、;m+)for(n=0;n<3;n+)printf("%3d",amn);printf("n");printf("編碼矩陣:n");for(m=0;m<u;m+)for(r=0;r<7;r+)for(n=0;n<3;n+)B+=(amn*Gnr);if(B=2)B=0;if(B=3)B=1;bmr=B;B=0;for(m=0;m<u;m+)for(r=0;r<7;r+)printf("%3d",bmr);printf("n");/譯碼部分for(m=0;m&l
25、t;u;m+)for(i=0;i<4;i+)for(r=0;r<7;r+)B+=(bmr*Mri);if (B%2=0)B=0;else B=1;smi=B;B=0;printf("伴隨式為:n");for(m=0;m<u;m+)for(i=0;i<4;i+)printf("%3d",smi);printf("n");printf("伴隨式為0,因此沒(méi)有誤碼!nn");printf("還原信息碼:n");for(m=0;m<u;m+)for(r=0;r<3;r
26、+)printf("%3d",bmr);printf("n");printf("n");t=getch();printf("*驗(yàn)證部分!*n");t=1;while(t!=2)p=1;while(p)printf("請(qǐng)輸入碼組,每組位數(shù)為7的倍數(shù),以2作為結(jié)束!n");for(i=0;i+)scanf("%d",&Inputi);if(Inputi=2)break;if(i%7=0)p=0;else p=1;printf("輸入不是7的倍數(shù)!請(qǐng)重新輸入!n&
27、quot;); u=i/7; i=0; for(m=0;m<u;m+)for(n=0;n<7;n+,i+)Rmn=Inputi;printf("您的輸入為:n");for(m=0;m<u;m+)for(n=0;n<7;n+)printf("%3d",Rmn);printf("n");for(m=0;m<u;m+)for(i=0;i<4;i+)for(r=0;r<7;r+)B+=(Rmr*Mri);if (B%2=1)B=1;else B=0;smi=B;B=0;printf("伴隨式
28、為:n");for(m=0;m<u;m+)for(i=0;i<4;i+)printf("%3d",smi);printf("n");r=0; p=0; B=0; j=0; k=0;for(m=0;m<u;m+)B=(sm0*1000)+(sm1*100)+(sm2*10)+(sm3); if(B=0)printf("第%d行正確!n",(m+1);else if(B=1110)r=0;printf("第%d行,第%d個(gè)有誤!n",(m+1),(r+1);else if(B=111)r=1
29、;printf("第%d行,第%d個(gè)誤!n",(m+1),(r+1);else if(B=1101)r=2;printf("第%d行,第%d個(gè)誤!n",(m+1),(r+1);else if(B=1000)r=3;printf("第%d行,第%d個(gè)誤!n",(m+1),(r+1);else if(B=100)r=4;printf("第%d行,第%d個(gè)誤!n",(m+1),(r+1);else if(B=10)r=5;printf("第%d行,第%d個(gè)有誤!n",(m+1),(r+1);else
30、if(B=1)r=6;printf("第%d行,第%d個(gè)有誤!n",(m+1),(r+1);else printf("第%d行出錯(cuò)碼數(shù)等于或大于2個(gè)!n",(m+1);p=1;if(B!=0&&p!=1)printf("修改后的編碼n");Rmr+=1;if(Rmr=2)Rmr=0;for(k=0;k<7;k+)printf("%3d",Rmk);printf("n");printf("還原正確的信息碼為:n");for(k=0;k<3;k+)pr
31、intf("%3d",Rmk);printf("n");B=0;printf("輸入數(shù)字2結(jié)束驗(yàn)證! 按其他鍵繼續(xù)驗(yàn)證!n");scanf("%d",&t);printf("n");4.3線性分組碼編譯碼流程框圖Y 開(kāi)始輸出G、H、T;輸入信息碼 p=0?補(bǔ)1位信息碼amn =Inputi編碼矩陣bmr= amn*Gnr校正子smi= bmr*Mrism=0?傳輸無(wú)誤,還原信息碼bmrY N N 輸入信息碼Inputiiu,u%3p p=1? p=2?補(bǔ)0位補(bǔ)2位N N Y 驗(yàn)證部分Y
32、i%7=0?輸入InputiRmn =Inputismi=Rmr*MriY 輸出伴隨式SmB=(sm0*1000)+(sm1*100)+(sm2*10)+(sm3)B=0?B=111?B=1110?正確第一個(gè)有誤第二個(gè)有誤Y Y YN N N 驗(yàn)證部分N B=1101?B=10?B=100?B=1000?第三個(gè)有誤第七個(gè)有誤第六個(gè)有誤第五個(gè)有誤第四個(gè)有誤B=1?出錯(cuò)大于1個(gè)t=2?修改后的編碼Rmr還原的信息碼返回YYYYYNNNNNNY4.4 運(yùn)行結(jié)果分析圖1 打開(kāi)程序顯示圖打開(kāi)程序時(shí)顯示出給定的生成矩陣G,以及由此可得的監(jiān)督矩陣H,并顯示出監(jiān)督矩陣的轉(zhuǎn)置矩陣M。圖2 自動(dòng)編碼譯碼顯示圖當(dāng)輸
33、入數(shù)組時(shí),數(shù)組與生成矩陣G相乘可得編碼矩陣。因?yàn)橛?jì)算機(jī)運(yùn)行沒(méi)有傳輸干擾問(wèn)題,因此編碼矩陣即為理想的接受矩陣。接受矩陣與矩陣M相乘即可得出伴隨式,伴隨式為零可以得出接受無(wú)誤,因此可以還原出輸入的信息碼。圖3 驗(yàn)證部分顯示圖在許用碼組中選出三組,將第一行第3個(gè)數(shù)修改為0,第三行第2個(gè)和第3個(gè)數(shù)修改為1。即輸入作為接受矩陣,用以驗(yàn)證譯碼檢錯(cuò),糾錯(cuò)能力。因?yàn)橐阎钚『C骶嚯x為3,即能檢查出兩個(gè)錯(cuò)誤以及能糾正一個(gè)錯(cuò)誤。計(jì)算出伴隨式,由第一行1 1 0 1與監(jiān)督矩陣比較可知,此行伴隨式與監(jiān)督矩陣的第3列相同,因此可知第3位有誤,從而實(shí)現(xiàn)檢查出一位錯(cuò)誤,并且同時(shí)糾正出一位錯(cuò)誤。第二行伴隨式0 0 0 0為零
34、,因此判斷出此行接收碼組無(wú)誤。第三行伴隨式1 0 1 0與監(jiān)督矩陣的所有列都不同,因此無(wú)法糾錯(cuò),程序用輸入數(shù)字2作為結(jié)束標(biāo)志。第五章 C語(yǔ)言軟件簡(jiǎn)介5.1 C語(yǔ)言軟件概述 C語(yǔ)言是Combined Language(組合語(yǔ)言)的中英混合簡(jiǎn)稱。是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫(xiě)系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫(xiě)不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開(kāi)發(fā)上,而且各類科研都需要用到C語(yǔ)言,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。5.2 C語(yǔ)言軟件的特點(diǎn) a) C是中級(jí)語(yǔ)言。它把高級(jí)語(yǔ)言的基本結(jié)
35、構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。b) C是結(jié)構(gòu)式語(yǔ)言。結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C 語(yǔ)言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語(yǔ)句控制程序流向,從而使程序完全結(jié)構(gòu)化。c) C語(yǔ)言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外C語(yǔ)言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的
36、游戲。d) C語(yǔ)言適用范圍大。適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。e) C語(yǔ)言對(duì)編寫(xiě)需要硬件進(jìn)行操作的場(chǎng)合,明顯優(yōu)于其它解釋型高級(jí)語(yǔ)言,有一些大型應(yīng)用軟件也是用C語(yǔ)言編寫(xiě)的。f) C語(yǔ)言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫(xiě)系統(tǒng)軟件,三維,二維圖形和動(dòng)畫(huà),它是數(shù)值計(jì)算的高級(jí)語(yǔ)言。5.3 C語(yǔ)言軟件的優(yōu)點(diǎn) 簡(jiǎn)潔緊湊、靈活方便,C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書(shū)寫(xiě)形式自由,主要用小寫(xiě)字母表示。它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。 C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。 a) 運(yùn)算符豐富。C語(yǔ)言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C語(yǔ)言把括號(hào)、賦值、強(qiáng)制類型裝換等都作為運(yùn)算符處理。從而使C語(yǔ)言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。b) 數(shù)據(jù)結(jié)構(gòu)豐富。C語(yǔ)言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語(yǔ)言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。c) C是結(jié)構(gòu)式語(yǔ)言。結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)習(xí)鑒定報(bào)告模板
- 論文的論點(diǎn)論據(jù)論證
- 支氣管哮喘疑難病例討論
- 議論文800字議論文高中
- 質(zhì)量人員培訓(xùn)
- 服裝督導(dǎo)工作總結(jié)與計(jì)劃
- 內(nèi)科儀器操作技術(shù)基礎(chǔ)
- 卒中的急救與護(hù)理
- 行業(yè)賦能培訓(xùn)課件
- 加強(qiáng)心理健康輔導(dǎo)幫助學(xué)生健康成
- 食品銷售公司食品安全管理制度
- 測(cè)量行業(yè)工作管理制度
- 2025年天津市河西區(qū)中考二模英語(yǔ)試題
- T/CECS 10359-2024生物安全實(shí)驗(yàn)室生命支持系統(tǒng)
- 2025年物業(yè)安全管理專家考試試題及答案
- 2025消費(fèi)趨勢(shì)及增長(zhǎng)策略洞察報(bào)告
- GB/T 34110-2025信息與文獻(xiàn)文件(檔案)管理核心概念與術(shù)語(yǔ)
- 抱負(fù)與使命主題范文引領(lǐng)-2024-2025學(xué)年高一語(yǔ)文單元寫(xiě)作深度指導(dǎo)(統(tǒng)編版必修下冊(cè))
- 中考生物復(fù)習(xí)專題訓(xùn)練:傳染病及其預(yù)防(含真題及答案)
- 湖南省長(zhǎng)沙市雨花區(qū)2023-2024學(xué)年五年級(jí)下學(xué)期語(yǔ)文期末試卷(含答案)
- 云南西雙版納事業(yè)單位考試筆試含答案2024
評(píng)論
0/150
提交評(píng)論