




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目錄摘要iabstractii引言11緒論21.1差錯(cuò)控制編解碼21.2fpga技術(shù)簡介32bch編譯碼42.1有限域42.2bch編碼原理52.3bch譯碼原理63bch(57,44,6)編碼器的設(shè)計(jì)與實(shí)現(xiàn)93.2vhdl實(shí)現(xiàn)及仿真結(jié)果104bch(57,44,6)譯碼器的設(shè)計(jì)與實(shí)現(xiàn)144.1bch(57,44,6)譯碼器設(shè)計(jì)144.1.1bch(57,44,6)譯碼器的原理144.1.2bch(57,44,6)譯碼器伴隨式計(jì)算144.1.3bch(57,44,6)譯碼器電路組成154.2vhdl實(shí)現(xiàn)及仿真結(jié)果16結(jié)論21致謝22參考文獻(xiàn)23摘要在現(xiàn)代數(shù)字通信中,常常受到信道噪聲干擾而造成誤
2、碼,尤其在無線通信中,空中的突發(fā)或者隨機(jī)干擾噪聲會(huì)造成接收錯(cuò)誤。信道作為通信系統(tǒng)的重要組成部分,其特性對(duì)通信系統(tǒng)的性能有很大影響。為了改善數(shù)字通信系統(tǒng)的傳輸質(zhì)量,在信號(hào)進(jìn)入信道傳輸之前要進(jìn)行信道編碼。采用差錯(cuò)控制的方法可以改善傳輸性能。為了提高傳輸?shù)恼_率, 往往采用一些校驗(yàn)方法, 進(jìn)行檢錯(cuò)和糾錯(cuò)。 通信中校驗(yàn)的方法很多, 其中bch編碼有其獨(dú)特的優(yōu)點(diǎn): 不僅可以檢查和糾正突發(fā)性錯(cuò)誤, 還能檢查和糾正隨機(jī)差錯(cuò), 因此在通信系統(tǒng)中得到廣泛應(yīng)用。本論文采用循環(huán)碼中的bch碼進(jìn)行編解碼,設(shè)計(jì)出基于fpga的bch編碼器和譯碼器。利用vhdl語言進(jìn)行bch碼編譯碼器的編寫,在quartus 仿真平臺(tái)上
3、對(duì)編譯碼器進(jìn)行仿真。完成了各模塊的調(diào)試,驗(yàn)證了編碼器、譯碼器的合理性和準(zhǔn)確性。本文對(duì)bch碼的原理和bch編碼器/譯碼器的實(shí)現(xiàn)進(jìn)行了研究。把將信道編解碼bch技術(shù)應(yīng)用到編碼和譯碼的過程中。關(guān)鍵字:bch;fpga;vhdl;編碼器;譯碼器abstractin modern digital communications, often by the noise caused by channel errors, especially in wireless communications, air burst or random noise may cause interference to rec
4、eive errors. channel as an important component of communication systems, the characteristics of the communication system performance greatly. to improve the transmission quality of digital communication system, the signal transmitted into the channel before the channel coding. error control method u
5、sed to improve transmission performance. in order to improve the accuracy of information transfer, often using some calibration methods for error detection and correction. communication parity in many ways, including bch codes has its unique advantages: not only can check and correct the burst error
6、s, but also checking and correcting random errors, so the communication systems are widely used this paper by using cyclic code for decoding the bch code, the design gives appropriate encoder and decoder. use vhdl language bch code woven decoder, quartus tools in written on simulation of woven decod
7、er. completed each module is commissioning, verify the encoder and decoder rationality and accuracy. in this paper the principle of bch code and bch encoder/decoder realization is studied. put will channel decoding bch technology is applied to coding and decoding processkeywords: bch; fpga; vhdl; en
8、coder; decoder22基于fpga的bch碼編/譯碼器的設(shè)計(jì)與實(shí)現(xiàn)引言由于信息在實(shí)際信道中傳輸時(shí),信道特性的不理想、加性噪聲和人為干擾等因素的影響,都會(huì)使系統(tǒng)接收到的信息不可避免地出現(xiàn)差錯(cuò)。為了提高通信的可靠性,我們可以通過信道編碼技術(shù)對(duì)信道差錯(cuò)進(jìn)行控制。糾錯(cuò)編碼的實(shí)現(xiàn)方法是在信息位的尾部加上一些校驗(yàn)碼元這些碼元與信息碼元通過一些線性關(guān)系或者其他某種關(guān)系相關(guān)聯(lián)。通過校驗(yàn)碼元與信息碼元關(guān)系的變化來判斷輸出接收碼元是否出錯(cuò)。循環(huán)碼是線性分組碼中最主要、最有用的一類,目前對(duì)它的研究和應(yīng)用也最多。它是1957年由prange首先提出并進(jìn)行研究的。循環(huán)碼最引人注目的特點(diǎn)是:首先它可以用線性反饋
9、移位寄存器很容易地實(shí)現(xiàn)其編碼和伴隨式計(jì)算,其次由于循環(huán)碼有許多固有的代數(shù)結(jié)構(gòu),從而可以找到各種簡單實(shí)用的譯碼方法。由于循環(huán)碼具有很多優(yōu)良性質(zhì),所以它在理論和實(shí)踐中很重要。在循環(huán)碼中bch碼是其中的最主要的一大類。bch碼是最重要的循環(huán)碼,能糾正多個(gè)隨機(jī)錯(cuò)誤,它具有糾錯(cuò)能力強(qiáng),構(gòu)造方便,編碼簡單,譯碼也較容易實(shí)現(xiàn)等一系列優(yōu)點(diǎn)而被廣泛采用。本人的主要工作如下:熟悉通信系統(tǒng),重點(diǎn)理解差錯(cuò)控制編碼中的bch編碼技術(shù)。熟悉quartus 軟件,通過bch(57,44,6)編碼器和譯碼器的設(shè)計(jì)來實(shí)現(xiàn)對(duì)bch編譯碼器的理解和研究。最終通過硬件描述語言vhdl來實(shí)現(xiàn)bch編碼器和譯碼器的軟件設(shè)計(jì),并在quar
10、tus 上進(jìn)行運(yùn)行調(diào)試。本論文主要章節(jié)介紹如下:緒論,簡單介紹了差錯(cuò)控制編碼和fpga技術(shù)。bch碼,對(duì)bch碼的原理,介紹其編碼器與譯碼器的原理。bch(57,44,6)編碼器的設(shè)計(jì)與實(shí)現(xiàn)。bch(57,44,6)譯碼器的設(shè)計(jì)與實(shí)現(xiàn)??偨Y(jié)。1緒論1.1差錯(cuò)控制編解碼數(shù)字信號(hào)在傳輸過程中,由于受到干擾的影響,碼元波形變壞。接收端收到后可能發(fā)生錯(cuò)誤判決。從差錯(cuò)控制角度看,按照加性干擾引起的錯(cuò)碼分布規(guī)律的不同,信道可以分為三類,即隨機(jī)信道(random channel)、突發(fā)信道(burst channel)和混合信道(mixed channel)。在隨機(jī)信道中,錯(cuò)碼的出現(xiàn)是隨機(jī)的,而且錯(cuò)碼之間是
11、統(tǒng)計(jì)獨(dú)立的。例如,由正態(tài)分布 白噪聲引起的錯(cuò)碼就具有這種性質(zhì)。在突發(fā)信道中,錯(cuò)碼是成串集中出現(xiàn)的,即在一些短促的時(shí)間段內(nèi)會(huì)出現(xiàn)大量錯(cuò)碼,而在這些短促的時(shí)間段之間存在較長的無錯(cuò)碼區(qū)間。這種成串出現(xiàn)的錯(cuò)碼稱為突發(fā)錯(cuò)碼。產(chǎn)生突發(fā)錯(cuò)碼的主要原因之一是脈沖干擾,例如電火花產(chǎn)生的干擾。信道中的衰落現(xiàn)象也是產(chǎn)生突發(fā)錯(cuò)碼的另一個(gè)主要原因。我們把既存在隨機(jī)錯(cuò)碼又存在突發(fā)錯(cuò)碼,且每一種都不能忽略不計(jì)的信道稱為混合信道。對(duì)于不同類型的信道,應(yīng)該采用不同的差錯(cuò)控制技術(shù)。差錯(cuò)控制技術(shù)主要有以下四種。(1)檢錯(cuò)(error detection)重發(fā)(retransmission):在發(fā)送碼元序列中加入差錯(cuò)控制碼元,接收端
12、用這些碼元檢測到有錯(cuò)碼時(shí),利用反向信道通知發(fā)送端,要求發(fā)送端重發(fā),直到正確接收為止。(2)前向糾錯(cuò):前向糾錯(cuò)一般簡稱fec(forward error correction)。這時(shí)接收端用發(fā)送端在發(fā)送碼元序列中加入的差錯(cuò)控制元碼,不但能夠發(fā)現(xiàn)錯(cuò)碼,還能將錯(cuò)碼恢復(fù)其正確取值。 (3)反饋(feedback)校驗(yàn)(checkout):這時(shí)不需要在發(fā)送序列中加入差錯(cuò)控制碼元。接收端將接收到的碼元原封不動(dòng)地轉(zhuǎn)發(fā)回發(fā)送端。在發(fā)送端將它和原發(fā)送碼元逐一比較。若發(fā)現(xiàn)有不同,就認(rèn)為接收端接收到的序列中有錯(cuò)碼,發(fā)送端則立即重發(fā)。(4)檢錯(cuò)刪除(deletion):它和檢錯(cuò)重發(fā)的區(qū)別在于,在接收端在發(fā)現(xiàn)錯(cuò)碼后,立
13、即將其刪除,不要求重發(fā)。1.2fpga技術(shù)簡介fpga是英文field programmable gate array的縮寫,即現(xiàn)場可編程門陣列,它是在pal、gal、epld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。fpga采用了邏輯單元陣列l(wèi)ca(logic cell array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊clb(configurable logic block)、輸出輸入模塊iob(input output block)和內(nèi)部連線(interconne
14、ct)三個(gè)部分。fpga的基本特點(diǎn)主要有:1)采用fpga設(shè)計(jì)asic電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。 2)fpga可做其它全定制或半定制asic電路的中試樣片。3)fpga內(nèi)部有豐富的觸發(fā)器和io引腳。4)fpga是asic電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件一。5)fpga采用高速chmos工藝,功耗低,可以與cmos、ttl電平兼容。目前fpga的品種很多,有xilinx的xc系列、ti公司的tpc系列、alter公司的fiex系列等。fpga是由存放在片內(nèi)ram中的程序來設(shè)置其工作狀態(tài)的,因此,工作室需要對(duì)片內(nèi)的ram進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用
15、不同的編程方式。加電時(shí),fpga芯片將eprom中數(shù)據(jù)讀入片內(nèi)編程ram中,配置完成后,fpga進(jìn)入工作狀態(tài)。掉電后,fpga恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,fpga能夠反復(fù)使用。fpga的編程無須專用的fpga編程器,只須用通用的eprom、prom編程器即可。當(dāng)需要修改fpga功能時(shí),只需換一片eprom即可。這樣,同一片fpga,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,fpga的使用非常靈活。fpga有多種配置模式:并行主模式為一片fpga加一片eprom的方式;主從模式可以支持一片prom編程多片fpga;串行模式可以采用串行prom編程fpga;外設(shè)模式可以將fpga作為微
16、處理器的外設(shè),由微處理器對(duì)其編程。2bch編譯碼2.1有限域(1)群(group)對(duì)一個(gè)非空元素集合g及定義在g上的一種運(yùn)算“*”,若滿足以下四個(gè)條件: 封閉性: a*b=cg 結(jié)合律: a*b*c=a*b*c 存在唯一的單位元e :a*e=e*a=a g中的每個(gè)元素存在唯一的逆元:a*a-1=e則稱這樣的代數(shù)系統(tǒng)為群,記為g, *。群中元素的個(gè)數(shù)稱為群的階。如滿足a*b=b*a,群稱作交換群。(2)域(field)設(shè)f是一組元素的集合,在其上定義了加法“+”和乘法“*兩種運(yùn)算。如果滿足下列條件,則集合f與這兩種運(yùn)算一起稱為域:在加法下f是一個(gè)交換群。f在非零元素的乘法下構(gòu)成一個(gè)交換群。乘法對(duì)
17、加法滿足分配率:a*b+c=a*b+a*c也就是說,域是一組元素的集合,在這個(gè)集合中進(jìn)行加、減、乘、除后其結(jié)果仍在這個(gè)集合中。(3)伽羅華域(galois field)含有限元素的域稱作有限域(finite field)。域中元素的個(gè)數(shù)稱為域的階。q個(gè)元素的有限域又稱為伽羅華域,記gf(q)??梢詫f(q)延伸為一個(gè)含有qm個(gè)元素的域,這個(gè)域稱作gf(q)的擴(kuò)展域,表示為gf(q),m是非零的正整數(shù)。擴(kuò)展域gf(2m)中的符號(hào)用于構(gòu)造rs碼。gf(2m)中的2m個(gè)元素可以被看作由a的冪次和0構(gòu)成的集合a0,a1,a2,a2m-1中的元素。其中agf(2m),為本原多項(xiàng)式p(x)的根,稱為域g
18、f(2m)的本原元,滿足a2m-1=1=a。域中任何冪次大于等于m的元素都可以由冪次小于m的元素的線性組合表示。以px=1+x+x3的gf(23)域?yàn)槔?,域中元素的集合為a0,a1,a2,a3,a4,a5,a6,a7=1, a為px的根,即1+a+a3=0,那么有: a3=1+a a4=a*a3=a*1+a=a+a2 a5=a2*a3=a2*1+a=a2+a3=1+a+a2 a6=a*a5=a1+a+a2=1+a2+a3=1+a22.2bch編碼原理bch碼是由hocquenghem、bose和chaudhuri在1959年各自獨(dú)立發(fā)現(xiàn)的二元線性循環(huán)碼,人們用用他們?nèi)齻€(gè)人名字的字頭bch命名b
19、ch碼。bch碼具有循環(huán)結(jié)構(gòu),是一類能夠檢測和糾正多個(gè)錯(cuò)誤的循環(huán)碼,可看成漢明碼的推廣。有限域是描述bch碼的有效工具,可以從兩種角度對(duì)本原bch碼進(jìn)行定義。1.從本原bch碼生成的角度來定義:令a是有限域 gf(2m)中的本原元,若多項(xiàng)式g(x)是以a1,a2,a3,a2t為根的gf(2)上的最低次多項(xiàng)式,則由它生成的碼長為2m-1,糾正t個(gè)錯(cuò)誤的碼稱為本原bch碼。2.從本原bch碼的性能角度來定義對(duì)任何正整數(shù)m3,t2m-1,若存在循環(huán)碼,其: 碼長: n=2m-1 校驗(yàn)位數(shù)目: n-kmt 最小距離: dmin2t+1能糾正碼字n=2m-1個(gè)碼元中的t個(gè)或更少個(gè)錯(cuò)誤的任意組合,稱之為能
20、糾正t個(gè)錯(cuò)誤的二元本原bch碼。bch碼是循環(huán)碼的一類,因此,它具有分組碼、循環(huán)碼的一切性質(zhì)。但它明確界定了碼長,校驗(yàn)位數(shù)目,碼的最小距離之間的關(guān)系??梢钥闯鏊男阅茌^好,在同樣的編碼效率下,糾錯(cuò)能力均較強(qiáng),故可在無線通信系統(tǒng)中獲得廣泛應(yīng)用。根據(jù)bch碼的定義,若a是gf(2m)中的本原元,又碼長為2m-1,能糾正t個(gè)錯(cuò)誤的二元bch碼的生成多項(xiàng)式g(x)是gf(2)上的次數(shù)最低的多項(xiàng)式,它以a1,a2,a3,a2t為根,即對(duì)于1i2t,有g(shù)ai=0。根據(jù)gf(2m)域的性質(zhì),這些根的共軛元也是gx=0的根。令j(x)是aj的最小多項(xiàng)式,則必有g(shù)x=lcm1x2x3x, 2t(x) 式中l(wèi)cm
21、表示最小公倍數(shù)。對(duì)于偶數(shù)的j,可以寫成j=i*2s(其中i為奇數(shù),i2t,s1),此時(shí),因?yàn)閍j=ai2s=(ai)as是ai的共軛元,所以aj和ai有相同的最小多項(xiàng)式j(luò)x=ix,從而可知bch碼的生成多項(xiàng)式g(x)可寫成gx=lcm1x3x5x, 2t-1(x) 因?yàn)槊總€(gè)最小多項(xiàng)式的次數(shù)為m,所以g(x)次數(shù)至多為mt,即碼元的校驗(yàn)位數(shù)目為n-k,至多等于mt。由于a為本原元(它生成gf(2m)中所有非零元素),也由于是由a和a的共軛元的最小多項(xiàng)式生成bch碼的生成多項(xiàng)式,故稱上述方法生成的bch碼為本原bch碼。2.3bch譯碼原理我們知道,bch碼是一種特殊的循環(huán)碼,所以,循環(huán)碼和線性分
22、組碼的譯碼方法對(duì)于bch碼是完全適用的。但bch碼在譯碼上也有特殊性,因?yàn)閎ch碼有它的特殊結(jié)構(gòu),即生成多項(xiàng)式的根與校驗(yàn)矩陣h有很好的聯(lián)系。設(shè)bch碼的碼字多項(xiàng)式為:vx=vn-1xn-1+vn-2xn-2+v2x2+v1x1+v0若aigf2m(1i2t)是生成多項(xiàng)式g(x)的根,由于生成多項(xiàng)式g(x)能除盡碼字多項(xiàng)式v(x),則ai必然也是v(x)的根,故有:vn-1ai(n-1)+vn-2ai(n-2)+v2xi2+v1xi+v0=0 1i2t (3-1)寫成矩陣形式為: 由式(3-1)和校驗(yàn)矩陣h的定義可得到:vht=0 (3-3)其中v=( v0 v1 v2 vn-1)是碼字矢量,而
23、ht是校驗(yàn)矩陣h的轉(zhuǎn)置矩陣。若aj是ai的共軛元,則當(dāng)且僅當(dāng)v(ai)=0時(shí),也有v(aj)=0。即若v=( v0 v1 v2 vn-1)與校驗(yàn)矩陣h的第i行的內(nèi)積為零,則它與h的第j行的內(nèi)積也為零。因此,可以省去矩陣h的第i行的內(nèi)積為零,則它與h的第j行的內(nèi)積也為零。因此,可以省去矩陣h的第j行。對(duì)于bch碼,可省去偶數(shù)項(xiàng),校驗(yàn)矩陣h可寫成如下形式:例如,對(duì)于(15,7)bch碼的生成多項(xiàng)式gx=x8+x7+x6+x4+1 ,其根為a,a2,a3,a4,但只有a,a3是獨(dú)立的,所以校驗(yàn)矩陣h為在對(duì)bch碼進(jìn)行譯碼時(shí),如果發(fā)生t個(gè)錯(cuò)誤,那么一般要找出這t個(gè)錯(cuò)誤的位置,同時(shí)求出這些錯(cuò)誤的值(即錯(cuò)
24、誤大小)。在二進(jìn)制中,不是“1”錯(cuò)成“0”,就是“0”錯(cuò)成 “1”,所以,錯(cuò)誤值總是等于1.因此,只要求出錯(cuò)誤位置就夠了。可以從伴隨方程來得到錯(cuò)誤位置多項(xiàng)式。如,對(duì)于上述(15,7)bch碼,若錯(cuò)誤除在第i,j位,則伴隨式為s=eht其中s有兩個(gè)分量,即s1=ai+ajs3=a3i+a3j組合上面兩式可得s1a2i+s12ai+s13+s3=0s1a2j+s12aj+s13+s3=0所以ai和aj都是 s1x2+s12x+s13+s3=0 (3-4)的根。式(3-4)被稱為錯(cuò)誤多項(xiàng)式。通過試探法可以解出根ai和aj。3bch(57,44,6)編碼器的設(shè)計(jì)與實(shí)現(xiàn)3.1bch(57,44,6)編碼
25、器設(shè)計(jì)bch碼的結(jié)構(gòu)完全建立在有限域的基礎(chǔ)上,可以通過近世代數(shù)的方法來精確描述。bch(57,44,6)是一個(gè)系統(tǒng)循環(huán)碼,可以通過如下步驟實(shí)現(xiàn):用xn-k乘以消息多項(xiàng)式m(x);用生成多項(xiàng)式g(x)除xn-km(x)得到余式b(x)(校驗(yàn)位多項(xiàng)式);構(gòu)成碼字多項(xiàng)式 cx=xn-kmx+b(x)。實(shí)現(xiàn)bch(57,44,6)編碼的關(guān)鍵是要找出改碼的生成多項(xiàng)式g(x)。給定了碼長和糾錯(cuò)能力可以通過如下方法來構(gòu)造此碼的生成多項(xiàng)式g(x):由于bch(57,44,6)代碼是以二元擴(kuò)域gf(26)到二元域gf2的變換為基礎(chǔ)的,故首先找到一個(gè)6次本原多項(xiàng)式px=x6+x+1,產(chǎn)生一個(gè)gf(26)擴(kuò)域;然后
26、在gf(26)上找到一個(gè)本原元,利用本原多項(xiàng)式p(x)的根 計(jì)算2t個(gè)連續(xù)冪次根a,a2,a2t=a4所對(duì)應(yīng)的gf(2)域上的最小多項(xiàng)式m1x=x+1,m2x=x6+x+1,m2tx=x6+x4+x2+x+1,這里t為bch代碼能糾正差錯(cuò)的個(gè)數(shù),bch(57,44,6)碼可以糾正兩個(gè)錯(cuò)誤,即t=2.從而:gx=lcmm1x,m2x,m2tx =x13+x12+x11+x10+x9+x8+x6+x3+x+1通過上式的生成多項(xiàng)式g(x),就可以構(gòu)成bch(57,44,6)編碼器。通過g(x)可以獲得該bch系統(tǒng)碼編碼電路圖如下圖所示:圖3-1 bch(57,44,6)編碼電路圖上圖中當(dāng)門1閉合,門
27、2開時(shí),編碼器接收信息的輸入,并且直接將信息作為編碼信息輸出。44次移位后信息位全部送入如上電路,完成出發(fā)作用,此時(shí)移位寄存器內(nèi)保留了余式的系數(shù),在二進(jìn)制情況下就是校驗(yàn)元。此時(shí),門1關(guān),門2開,在經(jīng)過13次移位后,把移位器中的校驗(yàn)碼元全部輸出,與原先44位信息元組成了一個(gè)長為57位的碼字。從而完成bch編碼器的輸出。3.2vhdl實(shí)現(xiàn)及仿真結(jié)果下面舉例說明(57,44,6)bch編碼器的編碼過程,假定輸入消息序列為:data_in=(11101101110010111010100110000111011001010100),因?yàn)椋?7,44,6)bch碼是系統(tǒng)碼,故控制電路在輸入數(shù)據(jù)din的前
28、44拍時(shí)發(fā)控制信號(hào)給輸出電路使編碼器輸出碼元 data_out 等于din;44拍結(jié)束時(shí),除法電路的內(nèi)容就是余式,在接下來的13拍,輸出電路在控制電路的控制下依次輸出余數(shù)1100111010011,至此57拍對(duì)一個(gè)輸入數(shù)據(jù)的編碼完成。(57,44,6)bch編碼器的完整編碼輸出序列為:data_out=111011011100101110101001100001110110010101001100111010011其vhdl部分代碼如下:process(clk)beginif(clkevent and clk=1) then if(count_state=56) then count_stat
29、e=1; register_state=divide; else count_state=count_state+1; if(count_state=44) then register_state register_shift(0) = data_in xor register_shift(12); register_shift(1) = data_in xor register_shift(12) xor register_shift(0); register_shift(2) = register_shift(1); register_shift(3) = data_in xor regi
30、ster_shift(12) xor register_shift(2); register_shift(4) = register_shift(3); register_shift(5) = register_shift(4); register_shift(6) = data_in xor register_shift(12) xor register_shift(5); register_shift(7) = register_shift(6); register_shift(8) = data_in xor register_shift(12) xor register_shift(7
31、); register_shift(9) = data_in xor register_shift(12) xor register_shift(8); register_shift(10)= data_in xor register_shift(12) xor register_shift(9); register_shift(11)= data_in xor register_shift(12) xor register_shift(10); register_shift(12)= data_in xor register_shift(12) xor register_shift(11);
32、 data_out register_shift(1)= register_shift(0); register_shift(2)= register_shift(1); register_shift(3)= register_shift(2); register_shift(4)= register_shift(3); register_shift(5)= register_shift(4); register_shift(6)= register_shift(5); register_shift(7)= register_shift(6); register_shift(8)= regis
33、ter_shift(7); register_shift(9)= register_shift(8); register_shift(10)= register_shift(9); register_shift(11)= register_shift(10); register_shift(12)= register_shift(11); data_out end case;end if;end process;(57,44,6)bch碼編碼器時(shí)序仿真結(jié)果如下圖3-2所示:圖3-2 (57,44,6)bch碼編碼器時(shí)序仿真結(jié)果4bch(57,44,6)譯碼器的設(shè)計(jì)與實(shí)現(xiàn)4.1bch(57,44
34、,6)譯碼器設(shè)計(jì)4.1.1bch(57,44,6)譯碼器的原理假設(shè)將編碼器發(fā)送的碼字記為多項(xiàng)式c(x),二元信道中的錯(cuò)誤圖樣記為多項(xiàng)式e(x),把接收到的碼元記為多項(xiàng)式y(tǒng)(x),則有y(x)=c(x)+e(x)。如果信道沒有發(fā)生錯(cuò)誤,則y(x)能被生成多項(xiàng)式g(x)整除。如果g(x)不能被生成多項(xiàng)式g(x)整除,則可認(rèn)定y(x)存在錯(cuò)誤。從而y(x)除以g(x)所得的余式攜帶了信道中錯(cuò)誤圖樣的信息。我們定義yx=yxmodg(x)為接收到y(tǒng)(x)后大伴隨式,由0=cxmodg(x),所以sx=exmodg(x) 即s(x)只和錯(cuò)誤圖樣有關(guān)。bch循環(huán)碼的譯碼可以以下3個(gè)步驟:將接收碼字多項(xiàng)式y(tǒng)
35、(x)除以生成多項(xiàng)式g(x),得到伴隨多項(xiàng)式s(x);由s(x)確定錯(cuò)誤圖樣e(x);將y(x)與e(x)進(jìn)行模2加,糾正錯(cuò)誤?;阱e(cuò)誤圖樣識(shí)別的譯碼器稱為梅吉特(miggitt)譯碼器,其原理如下圖所示:伴隨式計(jì)算電路 輸入錯(cuò)誤圖樣識(shí)別器 1 2 . . . n-kk級(jí)緩存器 糾錯(cuò)后的輸出圖3-3 miggitt譯碼器的原理4.1.2bch(57,44,6)譯碼器伴隨式計(jì)算meggitt譯碼器利用了bch碼的循環(huán)性質(zhì),使得該譯碼器對(duì)于僅有少數(shù)差錯(cuò)需要校驗(yàn)的代碼是非常有效的。由于只校驗(yàn)最高位位置的差錯(cuò),然后計(jì)算循環(huán)移位,所以實(shí)際上所有被破壞的位都要通過msb位置,并且得到校正。(57,44,6
36、)bch碼具有校正兩個(gè)差錯(cuò)的能力,如果僅有msb位置的差錯(cuò)需要校正,那么由于伴隨式和錯(cuò)誤圖樣之間的映射單元必須能識(shí)別出所有單個(gè)和兩個(gè)錯(cuò)誤,故需存儲(chǔ)總數(shù)為1+(56/1)=57個(gè)不同的錯(cuò)誤圖樣,合理設(shè)計(jì)電路,采用vhdl硬件設(shè)計(jì)語言進(jìn)行描述,通過quartus軟件仿真可以計(jì)算這57個(gè)伴隨式。表1中簡要列出了可能的差錯(cuò)圖樣及相應(yīng)地伴隨式。表3-1:可能的差錯(cuò)圖樣及伴隨式表no.錯(cuò)誤圖樣e伴隨式s1100000000000000000000000000000000000000000000000000000000 11001001101012110000000000000000000000000000
37、000000000000000000000000000010100000101031010000000000000000000000000000000000000000000000000000000111100001111410010000000000000000000000000000000000000000000000000000010010001010005100010000000000000000000000000000000000000000000000000000000110001111061000010000000000000000000000000000000000000000
38、000000000000101110000101710000010000000000000000000000000000000000000000000000000010000011011018100000010000000000000000000000000000000000000000000000000111011001100155100000000000000000000000000000000000000000000000000000100110010011000156100000000000000000000000000000000000000000000000000000010110
39、01001101115710000000000000000000000000000000000000000000000000000000111001001101004.1.3bch(57,44,6)譯碼器電路組成譯碼電路通常比編碼電路復(fù)雜得多。一個(gè)好的譯碼方法不僅應(yīng)使糾錯(cuò)能力達(dá)到理論極限,而且應(yīng)能高速度、低成本地實(shí)現(xiàn)。選用cpld器件設(shè)計(jì)譯碼器電路即可達(dá)到這一要求。 根據(jù)(57,44,6)bch碼的meggitt譯碼器原理,采用自頂向下的模塊化設(shè)計(jì)方法,用vhdl硬件描述語言設(shè)計(jì)的(57,44,6)bch碼譯碼器電路框圖如下圖所示。整個(gè)電路包括除法電路、錯(cuò)誤圖樣識(shí)別電路、57級(jí)緩存電路和輸出電
40、路四部分。輸出電路57級(jí)緩存電路錯(cuò)誤圖樣識(shí)別電路除法電路輸入數(shù)據(jù) 輸出數(shù)據(jù)圖 3-4(57,44,6)bch碼譯碼器電路框圖該meggitt譯碼器具有兩個(gè)級(jí)。第一階段(57拍),通過除法電路計(jì)算伴隨式s(x);第二階段(57拍)通過查詢差錯(cuò)圖樣伴隨式表,進(jìn)行實(shí)際的差錯(cuò)校正。4.2vhdl實(shí)現(xiàn)及仿真結(jié)果其vhdl部分代碼如下:begin d(0)=din xor qq(12) xor memout; d(1)=qq(0) xor qq(12) xor din; d(2)=qq(1); d(3)=qq(2) xor qq(12) xor din; d(4)=qq(3); d(5)=qq(4) xo
41、r din; d(6)=qq(5) xor qq(12) xor din; d(7)=qq(6) xor din; d(8)=qq(7) xor qq(12); d(9)=qq(8) xor qq(12); d(10)=qq(9) xor qq(12) xor din; d(11)=qq(10) xor qq(12); d(12)=qq(11) xor qq(12); u0:dff port map(d(0),clk,clrn,prn,qq(0); u1:dff port map(d(1),clk,clrn,prn,qq(1); u2:dff port map(d(2),clk,clrn,pr
42、n,qq(2); u3:dff port map(d(3),clk,clrn,prn,qq(3); u4:dff port map(d(4),clk,clrn,prn,qq(4); u5:dff port map(d(5),clk,clrn,prn,qq(5); u6:dff port map(d(6),clk,clrn,prn,qq(6); u7:dff port map(d(7),clk,clrn,prn,qq(7); u8:dff port map(d(8),clk,clrn,prn,qq(8); u9:dff port map(d(9),clk,clrn,prn,qq(9); u10:dff port map(d(10),clk,clrn,prn,qq(10); u11:dff port map(d(11),clk,clrn,prn,qq(11); u12:dff port map(d(12),clk,clrn,prn,qq(12); q=qq; dout memout memout=0; end case; end process p1;圖3-5中的(a)所示,假設(shè)譯碼器輸入序列為:din=111011011100101110101001100001110110010101001100111010011(圖3-1中編碼器輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ù)據(jù)收集管理辦法
- 職業(yè)年金帳戶管理辦法
- 西寧金融賬戶管理辦法
- 肩周炎中醫(yī)講座課件圖片
- 制絲工藝培訓(xùn)課件
- 福建初三二模數(shù)學(xué)試卷
- 肝病說課課件
- 福建初高中數(shù)學(xué)試卷
- 高三段考數(shù)學(xué)試卷
- 2025-2030全球及中國牙科保險(xiǎn)服務(wù)行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 數(shù)獨(dú)教案-完整版
- 2024江蘇連云港市金融控股集團(tuán)有限公司招聘考試筆試題庫答案
- 污水處理廠的智能化運(yùn)行管理
- 《卵巢巧克力囊腫》課件
- 勞務(wù)分包工程施工組織設(shè)計(jì)
- 一年級(jí)新生家長入學(xué)培訓(xùn)
- 后廚管理制度與章程內(nèi)容
- 【人教版化學(xué)】選擇性必修2 知識(shí)點(diǎn)默寫小紙條(空白默寫版)
- 情景與情境的區(qū)別與聯(lián)系
- 2023年新能源自卸車項(xiàng)目融資計(jì)劃書
評(píng)論
0/150
提交評(píng)論