




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