版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
工學(xué)FPGA電路設(shè)計(jì)實(shí)例第1頁/共177頁8.1m序列產(chǎn)生器
在擴(kuò)展頻譜通信系統(tǒng)中,偽隨機(jī)序列起著十分關(guān)鍵的作用。在直接序列擴(kuò)頻系統(tǒng)的發(fā)射端,偽隨機(jī)序列將信息序列的頻譜擴(kuò)展,在接收端,偽隨機(jī)序列將擴(kuò)頻信號(hào)恢復(fù)為窄帶信號(hào),進(jìn)而完成信息的接收。因此,偽隨機(jī)序列產(chǎn)生器是擴(kuò)頻系統(tǒng)的核心單元。在實(shí)際的擴(kuò)頻通信系統(tǒng)中,偽隨機(jī)序列一般用二進(jìn)制序列表示,每個(gè)碼片(即構(gòu)成偽隨機(jī)序列的元素)只有“1”和“0”兩種取值,分別對(duì)應(yīng)電信號(hào)的高電平和低電平。第2頁/共177頁m序列又稱為最長(zhǎng)線性反饋移位寄存器序列,該序列具有很好的相關(guān)性能,所以在直接序列擴(kuò)頻系統(tǒng)中應(yīng)用十分廣泛。m序列的產(chǎn)生比較簡(jiǎn)單,可以利用r級(jí)移位寄存器產(chǎn)生長(zhǎng)度為2r-1的m序列。m序列產(chǎn)生器的結(jié)構(gòu)主要分為兩類,一類稱為簡(jiǎn)單型碼序列發(fā)生器(SSRG,SimpleShiftRegisterGenerator),另一類稱為模塊型碼序列發(fā)生器(MSRG,ModularShiftRegisterGenerator)。第3頁/共177頁
圖8.1給出了這兩種產(chǎn)生器的基本結(jié)構(gòu),其中(Cr,Cr-1,...,C0)和(D0,D1,...,Dr)為反饋系數(shù),也是特征多項(xiàng)式系數(shù)。這些系數(shù)的取值為“1”或“0”,“1”表示該反饋支路連通,“0”表示該反饋支路斷開。第4頁/共177頁圖8.1m序列產(chǎn)生器的兩種結(jié)構(gòu)第5頁/共177頁r級(jí)移位寄存器的反饋路徑由m序列的特征多項(xiàng)式?jīng)Q定,對(duì)于SSRG結(jié)構(gòu),m序列特征多項(xiàng)式的一般表達(dá)式為
fSSRG(x)=Grxr+Cr-1xr-1+...+C3x3+C2x2+C1x1+C0x0
(8-1)對(duì)于MSRG結(jié)構(gòu),m序列特征多項(xiàng)式的一般表達(dá)式為
fMSRG(x)=D0xr+D1xr-1+...+Dr-3x3+Dr-2x2+Dr-1x1+Drx0(8-2)第6頁/共177頁
可以看出,SSRG結(jié)構(gòu)的特征多項(xiàng)式系數(shù)
(Cr,Cr-1,...,C0)與MSRG結(jié)構(gòu)特征多項(xiàng)式系數(shù)(D0,D1,...,Dr)之間的對(duì)應(yīng)關(guān)系為
Ci=Dr-i,其中i=0,1,2,...,r
特征多項(xiàng)式系數(shù)決定了一個(gè)m序列的特征多項(xiàng)式,同時(shí)也就決定了一個(gè)m序列。表8.1給出了部分m序列的反饋系數(shù),這些反饋系數(shù)實(shí)際上就是m序列特征多項(xiàng)式系數(shù)的八進(jìn)制表示。第7頁/共177頁
例如想要產(chǎn)生一個(gè)碼長(zhǎng)為31的m序列,碼序列產(chǎn)生器的寄存器級(jí)數(shù)為5,從表8.1中查到有“45、67、75”三個(gè)反饋系數(shù),可從中選擇反饋系數(shù)“45”來構(gòu)成m序列產(chǎn)生器。反饋系數(shù)“45”是一個(gè)八進(jìn)制數(shù),轉(zhuǎn)換為二進(jìn)制數(shù)為“100101”,這就是特征多項(xiàng)式的系數(shù),對(duì)于SSRG結(jié)構(gòu),特征多項(xiàng)式系數(shù)的取值為
C5=C2=C0=1,C4=C3=C1=0
對(duì)于MSRG結(jié)構(gòu),特征多項(xiàng)式系數(shù)的取值為
D5=D3=D0=1,D4=D2=D1=0第8頁/共177頁表8.1m序列產(chǎn)生器反饋系數(shù)表寄存器級(jí)數(shù)廠m序列長(zhǎng)度m序列產(chǎn)生器反饋系數(shù)37134152353l45,67,75663103,147,1557127203,211,217,235,277,313,325,345,3678255435,453,537,543,545,551,703,74795111021,1055,1131,t157,1167,11751010232011,2033,2157,2443,2745,3471ll20474005,4445,5023,5263,6211,736312409510123,11417,12515,13505,14127,1505323261,24633,30741,32535,37505第9頁/共177頁寄存器級(jí)數(shù)rm序列長(zhǎng)度m序列產(chǎn)生器反饋系數(shù)141638342103,51761,55753,60153,71147,674011532767100003,110013,120265,133663,142305,1647051665535210013,233303,307572,311405,347433,37521317131071400011,411335,444257,527427,646775,714303182621431000201,1000241,1025711,1703601195242872000047,2020471,2227023,2331067,2570103,36103532010485754000011,4001051,4004515,600003l第10頁/共177頁
根據(jù)特征多項(xiàng)式的系數(shù)可以構(gòu)造出該m序列,圖8.2是采用SSRG結(jié)構(gòu)的m序列產(chǎn)生器電路。在這里,利用D觸發(fā)器級(jí)聯(lián)的方式完成移位寄存器的功能。在系統(tǒng)清零后,D觸發(fā)器輸出狀態(tài)均為低電平,為了避免m序列產(chǎn)生器輸出“全0”信號(hào),圖8.2在“模二加”運(yùn)算后添加了一個(gè)“非門”,這與圖8.1中SSRG典型結(jié)構(gòu)稍有不同。圖8.3是該電路的仿真波形,“CLRN”為系統(tǒng)清零端(低電平有效),“CLK”為輸入時(shí)鐘,“OUT”為m序列輸出端口。圖中還給出了“A、B、C、D”四個(gè)節(jié)點(diǎn)的波形,從這些點(diǎn)均可得到同一m序列,只是序列的初始相位不同。第11頁/共177頁圖8.2SSRG結(jié)構(gòu)的m序列產(chǎn)生器第12頁/共177頁圖8.3SSRG結(jié)構(gòu)m序列產(chǎn)生器的仿真波形第13頁/共177頁
圖8.4是采用MSRG結(jié)構(gòu)實(shí)現(xiàn)的m序列產(chǎn)生器,圖中在每個(gè)D觸發(fā)器的輸出端口上加了一個(gè)“非門”,使系統(tǒng)清零后各級(jí)D觸發(fā)器的初始狀態(tài)均為高電平,這樣做同樣可以避免輸出“全0”情況的出現(xiàn)。圖8.5是該電路的仿真波形。第14頁/共177頁圖8.4MSRG結(jié)構(gòu)的m序列產(chǎn)生器第15頁/共177頁圖8.5MSRG結(jié)構(gòu)m序列產(chǎn)生器的仿真波形第16頁/共177頁m序列雖然有很好的偽隨機(jī)性和相關(guān)特性,但是數(shù)量太少,而基于m序列產(chǎn)生的Gold碼繼承了m序列的許多優(yōu)點(diǎn),更重要的是Gold碼序列的數(shù)量較多,因此廣泛應(yīng)用于擴(kuò)頻通信系統(tǒng)中。利用m序列產(chǎn)生器可以很容易地構(gòu)造出Gold碼產(chǎn)生器,篇幅所限,這里就不詳細(xì)介紹了,感興趣的讀者可參閱有關(guān)文獻(xiàn)。第17頁/共177頁8.2
任意序列產(chǎn)生器m序列產(chǎn)生器的結(jié)構(gòu)可由特征多項(xiàng)式得到,但對(duì)于非m序列的產(chǎn)生電路的設(shè)計(jì)就比較復(fù)雜。很多有關(guān)脈沖與數(shù)字邏輯電路設(shè)計(jì)的書籍中都介紹了任意序列產(chǎn)生器的結(jié)構(gòu)設(shè)計(jì),如移存型序列產(chǎn)生器和計(jì)數(shù)器型序列產(chǎn)生器。這些方法雖然能夠以最少的硬件產(chǎn)生所需的序列,但在設(shè)計(jì)時(shí)需要寫出狀態(tài)轉(zhuǎn)移表,并通過組合邏輯運(yùn)算產(chǎn)生所需序列。如果序列很長(zhǎng)的話,整個(gè)設(shè)計(jì)過程是非常繁瑣的,而且輸出信號(hào)有可能出現(xiàn)毛刺。第18頁/共177頁
利用FPGA器件產(chǎn)生任意序列有很多種方法,上面提到的移存型和計(jì)數(shù)器型序列產(chǎn)生器的設(shè)計(jì)方法當(dāng)然是可行的,但在這里將介紹一種存儲(chǔ)型任意序列產(chǎn)生器的設(shè)計(jì)方法。在設(shè)計(jì)存儲(chǔ)型任意序列產(chǎn)生器時(shí),設(shè)計(jì)人員不需要寫狀態(tài)轉(zhuǎn)移表,也不需要進(jìn)行組合邏輯運(yùn)算,設(shè)計(jì)十分簡(jiǎn)便,而且不會(huì)出現(xiàn)邏輯冒險(xiǎn),保證了輸出序列的質(zhì)量。第19頁/共177頁
存儲(chǔ)型任意序列產(chǎn)生器就是將所需的序列事先存儲(chǔ)到序列產(chǎn)生器中,序列產(chǎn)生器在時(shí)鐘的激勵(lì)下將存儲(chǔ)的序列循環(huán)輸出。它有兩種實(shí)現(xiàn)形式,一種是利用移位寄存器實(shí)現(xiàn),另一種是基于查找表(利用FPGA內(nèi)的存儲(chǔ)器)實(shí)現(xiàn)。
“00110000011111011010100100010111”是一個(gè)長(zhǎng)度為32位的偽隨機(jī)序列,下面就分別利用移位寄存器和查找表設(shè)計(jì)該序列的產(chǎn)生器。第20頁/共177頁
圖8.6是基于寄存器的32位任意序列產(chǎn)生器電路,它將4個(gè)8位并入串出移位寄存器“cshifreg”模塊級(jí)聯(lián),構(gòu)成一個(gè)32位循環(huán)移位寄存器。32位數(shù)據(jù)放在寄存器的輸入端口上,其中“0”接“GND”,為低電平信號(hào),“1”接“VCC”,為高電平信號(hào)。當(dāng)“STLD”為低電平時(shí),時(shí)鐘脈沖將32位數(shù)據(jù)并行送入移位寄存器中,當(dāng)“STLD”保持為高電平狀態(tài)時(shí),在時(shí)鐘信號(hào)的激勵(lì)下,32位數(shù)據(jù)在移位寄存器內(nèi)循環(huán)移位,同時(shí)序列從“DATAOUT”端口輸出。圖8.7給出了仿真波形。第21頁/共177頁圖8.6基于寄存器的32位任意序列產(chǎn)生器第22頁/共177頁圖8.7基于寄存器的32位任意序列產(chǎn)生器仿真波形第23頁/共177頁
圖8.8是基于查找表的32位任意序列產(chǎn)生器,整個(gè)電路由兩部分組成:地址產(chǎn)生器和基于ROM的查找表。
“l(fā)pm_rom”的參數(shù)設(shè)置為
LPM_WIDTH=1LPM_WIDTHAD=5LPM_FILE=e:\max2work\m.mif
在“m.mif”文件中,從32位序列“00110000011111011010100100010111”的MSB到LSB依次對(duì)應(yīng)地址“00000~11111”。第24頁/共177頁
地址產(chǎn)生器由“8count”構(gòu)成,在時(shí)鐘的激勵(lì)下,“8count”的“QE~QA”端口循環(huán)產(chǎn)生信號(hào)“00000~11111”,將該信號(hào)作為地址信息在ROM中尋址,從而將32位序列從查找表中依次讀出。第25頁/共177頁圖8.8基于查找表的32位任意序列產(chǎn)生器第26頁/共177頁
圖8.9是基于查找表的32位任意序列產(chǎn)生器仿真波形?!癆[4..0]”是地址信號(hào),取值區(qū)間是“00000~11111”,它與查找表中的32位數(shù)據(jù)一一對(duì)應(yīng)。存儲(chǔ)型任意序列產(chǎn)生器與移存型和計(jì)數(shù)器型序列產(chǎn)生器相比較,設(shè)計(jì)過程十分簡(jiǎn)單,但需要消耗較多的硬件,如觸發(fā)器和存儲(chǔ)器。由于FPGA擁有大量的邏輯單元和存儲(chǔ)單元,因此FPGA器件非常適合于實(shí)現(xiàn)存儲(chǔ)型任意序列產(chǎn)生器。在存儲(chǔ)型任意序列產(chǎn)生器兩種實(shí)現(xiàn)形式中,基于移位寄存器的實(shí)現(xiàn)方法,適于產(chǎn)生碼長(zhǎng)較短的序列,而基于查找表的實(shí)現(xiàn)方法,適于產(chǎn)生碼長(zhǎng)較長(zhǎng)的序列。第27頁/共177頁圖8.9基于查找表的32位任意序列產(chǎn)生器仿真波形第28頁/共177頁
8.3
數(shù)字相關(guān)器
數(shù)字相關(guān)器在通信信號(hào)處理中實(shí)質(zhì)上是起到數(shù)字匹配濾波器的作用,它可對(duì)特定碼序列進(jìn)行相關(guān)處理,從而完成信號(hào)的解碼,恢復(fù)出傳送的信息。數(shù)字相關(guān)器與模擬相關(guān)器相比,其靈活性強(qiáng)、功耗低、易于集成,廣泛用于幀同步字檢測(cè)、擴(kuò)頻接收機(jī)、誤碼校正以及模式匹配等領(lǐng)域。數(shù)字相關(guān)器一般包括:輸入序列移位寄存器、參考序列移位寄存器、相關(guān)運(yùn)算陣列和相關(guān)求和網(wǎng)絡(luò)。圖8.10給出了數(shù)字相關(guān)器的結(jié)構(gòu)框圖。第29頁/共177頁圖8.10數(shù)字相關(guān)器結(jié)構(gòu)框圖第30頁/共177頁
在數(shù)字相關(guān)器工作時(shí),參考序列首先被送入?yún)⒖夹蛄幸莆患拇嫫髦校斎霐?shù)據(jù)流則在時(shí)鐘驅(qū)動(dòng)下被送入輸入序列移位寄存器中。相關(guān)運(yùn)算陣列對(duì)輸入序列與參考序列之間進(jìn)行相關(guān)運(yùn)算,輸入序列移位寄存器每更新一位數(shù)據(jù),相關(guān)運(yùn)算陣列就進(jìn)行一次相關(guān)運(yùn)算,然后將相關(guān)運(yùn)算結(jié)果送入相關(guān)求和網(wǎng)絡(luò),由相關(guān)求和網(wǎng)絡(luò)計(jì)算出相關(guān)值。第31頁/共177頁
一般情況下,相關(guān)求和網(wǎng)絡(luò)輸出的相關(guān)值還需要與一個(gè)檢測(cè)門限做比較,判斷是否出現(xiàn)相關(guān)峰。當(dāng)求和網(wǎng)絡(luò)計(jì)算出的相關(guān)值高于檢驗(yàn)門限時(shí),就認(rèn)為出現(xiàn)了相關(guān)峰。因此,檢測(cè)門限的高低決定了相關(guān)峰虛警檢測(cè)概率和漏警檢測(cè)概率的大小。所謂虛警是指沒有相關(guān)峰時(shí),相關(guān)器誤認(rèn)為此時(shí)有相關(guān)峰出現(xiàn),而漏警則是指當(dāng)相關(guān)峰出現(xiàn)時(shí),相關(guān)器誤認(rèn)為此時(shí)沒有相關(guān)峰。最理想的情況是相關(guān)峰檢測(cè)的虛警概率和漏警概率都較小,這樣就能得到可靠的判決結(jié)果,但是虛警概率和漏警概率不會(huì)同時(shí)減小。第32頁/共177頁
如果把檢測(cè)門限設(shè)置得較低,漏警概率降低,但虛警概率增大,反之,如果提高檢測(cè)門限,虛警概率降低,但漏警概率卻增大了。例如相關(guān)數(shù)據(jù)長(zhǎng)度為32位,如果把門限設(shè)為32,則不會(huì)發(fā)生虛警,但是如果這32位中任意一位數(shù)據(jù)在傳輸中發(fā)生差錯(cuò),即使有相關(guān)峰出現(xiàn),由于此時(shí)的相關(guān)峰值低于32,就會(huì)誤認(rèn)為此時(shí)沒有相關(guān)峰,以至于發(fā)生漏警。第33頁/共177頁
合理設(shè)置檢測(cè)門限,在相關(guān)器的虛警概率與漏警概率之間取一個(gè)折衷值是十分必要的,這樣既不會(huì)明顯降低相關(guān)器性能,又使得通信系統(tǒng)能夠容忍少量的傳輸錯(cuò)誤。在實(shí)際應(yīng)用中,數(shù)字相關(guān)器前端一般都有一個(gè)預(yù)處理電路,如完成對(duì)接收信號(hào)的數(shù)字化處理、防混疊濾波、下采樣等,進(jìn)入到數(shù)字相關(guān)器中的樣點(diǎn)值是用一定字長(zhǎng)的二進(jìn)制數(shù)表示的。本地參考序列如果包含有幅度信息的話,它的各個(gè)樣點(diǎn)也是用一定字長(zhǎng)的二進(jìn)制數(shù)來表示的。第34頁/共177頁
輸入數(shù)據(jù)序列與本地參考序列做相關(guān)運(yùn)算,實(shí)際上就是這兩個(gè)序列的對(duì)應(yīng)位做乘法運(yùn)算,然后再利用求和網(wǎng)絡(luò)得到相關(guān)值。最簡(jiǎn)單的一種情況是序列中的各個(gè)樣點(diǎn)都用一位二進(jìn)制數(shù)表示,這樣就可以用邏輯運(yùn)算(如模二加)來取代復(fù)雜的乘法運(yùn)算。第35頁/共177頁
我們知道,幀同步字用于指示幀的起始位置或結(jié)束位置,在典型的數(shù)字通信系統(tǒng)中,接收機(jī)需要在已解調(diào)的數(shù)據(jù)流中搜尋幀同步字,以確定幀的位置和幀定時(shí)信息。將數(shù)字相關(guān)器用于幀同步字檢測(cè)的方法,特別適用于突發(fā)通信協(xié)議,如TDM。數(shù)字相關(guān)器是實(shí)現(xiàn)快速同步和鎖定數(shù)據(jù)突發(fā)的關(guān)鍵。下面以一次群信號(hào)的幀同步字檢測(cè)為例,討論數(shù)字相關(guān)器的基本設(shè)計(jì)方法。第36頁/共177頁
根據(jù)CCITTG.732建議,A律30/32路(一次群)TDM-PCM傳輸標(biāo)準(zhǔn)的一個(gè)復(fù)幀包含16幀,一幀長(zhǎng)為125μs,每一幀含256位,分成32個(gè)時(shí)隙(時(shí)隙0~時(shí)隙31),每個(gè)時(shí)隙包含8位數(shù)據(jù)。幀分為奇數(shù)幀和偶數(shù)幀,偶數(shù)幀時(shí)隙0的后7位為幀定位信號(hào)(FAS,FrameAlignmentSignal)“0011011”。也就是說,相鄰的兩個(gè)幀有一個(gè)幀同步碼,相鄰兩個(gè)幀定位信號(hào)間距為512位。對(duì)一次群進(jìn)行分接,首先要實(shí)現(xiàn)幀頭的捕獲,幀頭捕獲電路采用的數(shù)字相關(guān)檢測(cè)方法,是數(shù)字相關(guān)器的一個(gè)典型作用。第37頁/共177頁表8.2一次群幀同步碼檢測(cè)電路引腳
引腳
功能DATAIN
數(shù)據(jù)輸入CLK
數(shù)據(jù)時(shí)鐘輸入CLRN
系統(tǒng)復(fù)位端口DETECTION
相關(guān)峰信號(hào)輸出SIGl
顯示相關(guān)峰極性SIG0第38頁/共177頁
圖8.11是一次群幀同步碼檢測(cè)電路,其中與“VCC”相連的線處于高電平,為“1”;與“GND”相連的線處于低電平,為“0”。表8.2給出了一次群幀同步碼檢測(cè)電路的引腳說明。該電路可以有效地檢測(cè)出一次群信號(hào)數(shù)據(jù)流中的特殊碼字“0011011”。輸入一次群數(shù)據(jù)流首先進(jìn)入7位移位寄存器中,然后與本地參考序列“0011011”的對(duì)應(yīng)位進(jìn)行“異或”邏輯運(yùn)算,然后再統(tǒng)計(jì)7位輸出結(jié)果中“1”和“0”的數(shù)目。第39頁/共177頁
需要指出的是,在二進(jìn)制數(shù)據(jù)傳輸中,高電平信號(hào)“1”與低電平信號(hào)“0”只是一個(gè)相對(duì)的概念。如果相關(guān)結(jié)果全部為“1”,表明出現(xiàn)了相關(guān)峰;如果相關(guān)結(jié)果全部為“0”,同樣也表明出現(xiàn)了相關(guān)峰,只不過是極性發(fā)生了翻轉(zhuǎn)。認(rèn)識(shí)到這一點(diǎn),對(duì)于檢測(cè)門限的設(shè)置是十分重要的。第40頁/共177頁
為了簡(jiǎn)便起見,這里將相關(guān)峰檢測(cè)門限設(shè)為7,也就是說只有在輸入數(shù)據(jù)流中出現(xiàn)“0011011”或“1100100”字段時(shí),才會(huì)判決輸出正或負(fù)的相關(guān)峰。因此在圖8.11中用一個(gè)七輸入的“與門”完成正極性相關(guān)峰的檢測(cè),用一個(gè)七輸入的“或非門”完成負(fù)極性相關(guān)峰的檢測(cè)。輸出引腳“SIG1”和“SIG0”分別表示相關(guān)峰的極性,當(dāng)出現(xiàn)正相關(guān)峰時(shí),“SIG1”為高電平;當(dāng)出現(xiàn)負(fù)相關(guān)峰時(shí),“SIG0”為高電平。一次群幀同步碼檢測(cè)電路的波形仿真結(jié)果如圖8.12所示,其中分別仿真了輸入數(shù)據(jù)流中出現(xiàn)“0011011”和“1100100”字段時(shí)檢測(cè)電路的輸出結(jié)果。第41頁/共177頁圖8.11一次群幀同步碼檢測(cè)電路第42頁/共177頁圖8.12一次群幀同步碼檢測(cè)電路仿真波形第43頁/共177頁
由于參考序列“0011011”是一個(gè)固定序列,因此在電路設(shè)計(jì)中沒有使用參考序列移位寄存器,這樣可以節(jié)省片內(nèi)資源。如果要求參考序列是可在線編程的,就需要將參考序列放入到移位寄存器中,以便實(shí)時(shí)更新。在上面的例子中,將相關(guān)峰檢測(cè)門限設(shè)置為7是一種最簡(jiǎn)單的情況,在實(shí)際應(yīng)用中如果將相關(guān)峰的檢測(cè)門限設(shè)置為其它值,就需要用計(jì)數(shù)器或其它邏輯電路來統(tǒng)計(jì)相關(guān)結(jié)果中“1”或“0”的數(shù)目,從另一個(gè)角度看,也就是要計(jì)算相關(guān)結(jié)果的漢明距離。有關(guān)漢明距離的電路計(jì)算方法,將在8.4節(jié)中做詳細(xì)介紹。第44頁/共177頁
8.4
漢明距離的電路計(jì)算
漢明距離是編碼理論中的一個(gè)重要概念,它的定義是兩個(gè)長(zhǎng)為N的二元序列S和U之間對(duì)應(yīng)位不相同的位數(shù),用d(S,U)來表示。第45頁/共177頁
在擴(kuò)頻通信和數(shù)字突發(fā)通信(如TDMA)系統(tǒng)中,接收機(jī)進(jìn)行的數(shù)字相關(guān)檢測(cè)或獨(dú)特碼(UW)檢測(cè),實(shí)際上就是計(jì)算本地一組確定序列與接收到的未知序列之間漢明距離的過程。將漢明距離與事先確定的門限相比較,就可以得到檢測(cè)結(jié)果,檢測(cè)器結(jié)構(gòu)如圖8.13所示。設(shè)檢測(cè)的序列長(zhǎng)度為N,本地碼型確定的序列為
U=(U1,U2,…,UN)第46頁/共177頁
圖8.13檢測(cè)器結(jié)構(gòu)圖第47頁/共177頁
接收機(jī)將接收到的數(shù)據(jù)連續(xù)不斷地送入N位串行移位寄存器中,任一瞬間移位寄存器的內(nèi)容為
S=(S1,S2,…,SN)
S與U的對(duì)應(yīng)位進(jìn)行模二加,當(dāng)S與U的對(duì)應(yīng)位相同時(shí)結(jié)果為“0”,不同時(shí)結(jié)果為“1”,最后得到
D=(D1,D2,…,DN)其中
Di=SiUi
(i=1,2,···,
N)
(8-3)第48頁/共177頁
序列D中“1”的數(shù)目就是S與U之間的漢明距離,可表示為(8-4)
二元序列D是序列S與U的比較結(jié)果,要得到漢明距離的數(shù)值,必須從序列D中計(jì)算出“1”的個(gè)數(shù),其電路的實(shí)現(xiàn)方法有多種,下面一一進(jìn)行分析。第49頁/共177頁
8.4.1
計(jì)數(shù)法在某一時(shí)刻,我們得到了一個(gè)二元序列D=(D1,D2,…,DN),它存在的時(shí)間基本上為一個(gè)時(shí)鐘周期,在下一個(gè)時(shí)鐘到來時(shí),由于序列S發(fā)生了變化,從而將序列D更新。為了計(jì)算出每一個(gè)時(shí)鐘周期內(nèi)序列D中“1”的數(shù)目,首先將序列D并行送入一個(gè)“并入串出”的N位移位寄存器中,然后用一個(gè)高速時(shí)鐘將數(shù)據(jù)送出,同時(shí)利用計(jì)數(shù)器來統(tǒng)計(jì)“1”的數(shù)目,最后用清洗脈沖將計(jì)數(shù)器清零,為下一周期的計(jì)數(shù)做好準(zhǔn)備,參見圖8.14。第50頁/共177頁
假設(shè)接收到的數(shù)據(jù)速率為R0,每位時(shí)間寬度為T0,則有
(8-5)由此可以確定計(jì)數(shù)時(shí)鐘的最低速率為
(8-6)周期為(8-7)第51頁/共177頁
計(jì)數(shù)法的實(shí)現(xiàn)電路比較簡(jiǎn)單,但是當(dāng)數(shù)據(jù)速率R0較高或N值較大時(shí),計(jì)數(shù)時(shí)鐘的速率R會(huì)很大,導(dǎo)致電路難以實(shí)現(xiàn)。因此,這種方法適合于低速數(shù)據(jù),碼序列不宜很長(zhǎng),而且需要有高速率的時(shí)鐘和高速器件。第52頁/共177頁圖8.14計(jì)數(shù)法原理圖第53頁/共177頁8.4.2
邏輯函數(shù)法將序列D作為邏輯函數(shù)的輸入變量,漢明距離作為輸出變量,則輸出變量的個(gè)數(shù)I為:
I=INT(log
2N)+1
(8-8)這里,N為序列D的長(zhǎng)度,INT(X)表示取X的整數(shù)部分。根據(jù)輸入變量值寫出對(duì)應(yīng)的輸出變量值,得到其真值表,從而建立邏輯函數(shù)表達(dá)式。第54頁/共177頁
但它不是最簡(jiǎn)的,通常采用公式法或卡諾圖法對(duì)其進(jìn)行簡(jiǎn)化,得到最簡(jiǎn)的邏輯計(jì)算電路。在N值較大的情況下可采用系統(tǒng)簡(jiǎn)化法(又稱Q-M法),這種方法適用于化簡(jiǎn)任意多變量的函數(shù),并且具有較嚴(yán)格的算法,可以將此函數(shù)的簡(jiǎn)化問題編程,借助于計(jì)算機(jī)進(jìn)行化簡(jiǎn)。第55頁/共177頁
邏輯函數(shù)法的計(jì)算電路使用了大量的與或非門,其計(jì)算速度決定于信號(hào)通過邏輯門的延遲時(shí)間及布線距離的長(zhǎng)短,一般說來,可以達(dá)到較高的計(jì)算速度。但是隨著N的增大,計(jì)算電路將越來越復(fù)雜,并且N值不同,實(shí)際電路結(jié)構(gòu)也不相同,必須重新設(shè)計(jì)。同時(shí),在電路設(shè)計(jì)中,必須消除邏輯冒險(xiǎn)。第56頁/共177頁
8.4.3
查找表法所謂查找表法,就是將存儲(chǔ)器做成一個(gè)查找表,把序列D作為地址信號(hào),從表中查找出其對(duì)應(yīng)的漢明距離。圖8.15說明了這種方法。序列D的長(zhǎng)度為N,存儲(chǔ)單元的數(shù)據(jù)寬度為P,則
P=INT(log
2N)+1
(8-9)從而要求存儲(chǔ)器的容量M為
M=2N×P
(8-10)第57頁/共177頁圖8.15查找表法第58頁/共177頁
可見,隨著序列長(zhǎng)度N的增加,存儲(chǔ)器容量成幾何級(jí)數(shù)增長(zhǎng),當(dāng)N>30時(shí),存儲(chǔ)量將超過5Gb,實(shí)際電路難以實(shí)現(xiàn)。所以,在碼序列較短的情況下,使用查找表法比較方便。此方法的計(jì)算速度與存儲(chǔ)器的尋址時(shí)間有關(guān),選用高速器件,可以達(dá)到較高的計(jì)算速度。第59頁/共177頁
8.4.4
求和網(wǎng)絡(luò)法求和網(wǎng)絡(luò)法的原理圖見圖8.16所示,它的工作原理很簡(jiǎn)單,即將序列D中的各項(xiàng)逐個(gè)加在一起,最終累加結(jié)果便是漢明距離。求和網(wǎng)絡(luò)法在網(wǎng)絡(luò)結(jié)構(gòu)上可分為并行求和網(wǎng)絡(luò)和串行求和網(wǎng)絡(luò)兩種,這兩種結(jié)構(gòu)所需加法器的數(shù)目J是一樣的,均為
J=N-1
(8-11)第60頁/共177頁
在一般情況下,為了保證計(jì)算結(jié)果的可靠性,需要將序列D用N位寄存器鎖存。在求和網(wǎng)絡(luò)中,信號(hào)每經(jīng)過一次加法運(yùn)算,就引入一定的延遲。但是,串行求和網(wǎng)絡(luò)與并行求和網(wǎng)絡(luò)的信號(hào)總延遲τ是不同的,顯然
τ串行>τ并行
(8-12)因?yàn)樾盘?hào)總的延遲時(shí)間不能超過數(shù)據(jù)碼元周期T0,即有
T0>τ串行>τ并行
(8-13)所以并行求和網(wǎng)絡(luò)的工作速度要高于串行求和網(wǎng)絡(luò)。第61頁/共177頁圖8.16求和網(wǎng)絡(luò)法原理圖第62頁/共177頁
8.4.5組合應(yīng)用
以上介紹了四種計(jì)算漢明距離的方法,它們各有優(yōu)缺點(diǎn),在具體應(yīng)用中,如果將幾種方法組合使用,計(jì)算電路會(huì)更加合理、高效。圖8.17給出了計(jì)數(shù)-求和網(wǎng)絡(luò)法的原理框圖,在這里,我們重點(diǎn)討論圖8.18所示的查找表-求和網(wǎng)絡(luò)法。第63頁/共177頁圖8.17計(jì)數(shù)-求和網(wǎng)絡(luò)法原理圖第64頁/共177頁圖8.18查找表-求和網(wǎng)絡(luò)法原理圖第65頁/共177頁
在查找表-求和網(wǎng)絡(luò)法中,需要解決的問題是:怎樣才能使存儲(chǔ)器總?cè)萘颗c求和網(wǎng)絡(luò)中加法器的數(shù)目達(dá)到最佳。如圖8.18所示,可將查找表分解成若干個(gè)子查找表,分別由存儲(chǔ)器1~K構(gòu)成。首先將長(zhǎng)度為N的序列D等間距地分成K段,為了便于分析并不失一般性,令
N=2m,K=2n
且m≥n≥0,m,n均為整數(shù),第66頁/共177頁
那么存儲(chǔ)器的地址線寬度為2m-n,每個(gè)存儲(chǔ)單元的數(shù)據(jù)寬度為(m-n+1),則存儲(chǔ)器1~K的容量均為
M=2m-n×(m-n+1)
(8-14)進(jìn)而可以計(jì)算出存儲(chǔ)器的總?cè)萘繛?/p>
M總=K×M=2m-n×(m-n+1)
(8-15)顯然,與(8-10)式相比,將一個(gè)大的查找表分割成若干個(gè)子查找表,可以減少存儲(chǔ)器的容量。同樣,由(8-11)式可知,求和網(wǎng)絡(luò)中加法器的總數(shù)目為
J總=K-1=2n-1
(8-16)第67頁/共177頁圖8.19m-J總-log
2M總關(guān)系曲線第68頁/共177頁
在上述討論中,我們?cè)睿鸑=2m,K=2n,且m≥n≥0,m,n均為整數(shù)},當(dāng){2m≥N≥2m-1,2n≥K≥2n-1,且m≥n≥1,m,n均為整數(shù)}時(shí),經(jīng)同樣分析(從略)可知,(8-11)、(8-16)式給出了此時(shí)存儲(chǔ)器容量和加法器數(shù)目的上限。第69頁/共177頁
由(8-15)和(8-16)式可知,當(dāng)n=m時(shí),
M總=2n,J總=2m-1,原方法等效為求和網(wǎng)絡(luò)法;當(dāng)n=0時(shí),M總=2N×(m+1),J總=0,原方法等效為查找表法。我們將(8-15)和(8-16)式結(jié)合起來,繪成m-J總-log
2M總關(guān)系曲線,如圖8.19所示。值得注意的是,在序列長(zhǎng)度確定的條件下(即m確定),M總與J總的大小是可以相互轉(zhuǎn)換的,這個(gè)特點(diǎn)對(duì)于采用可編程邏輯器件計(jì)算漢明距離尤為重要。第70頁/共177頁
因?yàn)榭删幊踢壿嬈骷拇鎯?chǔ)單元和邏輯單元屬于兩種不同的芯片資源,它們是有限的。加法器一般可由邏輯單元構(gòu)成。在較復(fù)雜的專用集成電路設(shè)計(jì)中,其它功能模塊可能已經(jīng)占用了較多的存儲(chǔ)單元,或者占用了較多的邏輯單元,而漢明距離的計(jì)算電路則可根據(jù)有效的芯片資源,恰當(dāng)?shù)剡x擇M總與J總值,使整個(gè)系統(tǒng)的資源利用率達(dá)到最佳。下面我們給出查找表-求和網(wǎng)絡(luò)法的一個(gè)應(yīng)用實(shí)例。第71頁/共177頁圖8.2032位序列漢明距離計(jì)算電路原理圖第72頁/共177頁
在某通信系統(tǒng)的檢測(cè)單元中,需要實(shí)時(shí)計(jì)算出長(zhǎng)度為32位的接收序列與本地序列之間的漢明距離,同時(shí)要求實(shí)際電路能夠充分利用Altera公司EPF10K10芯片內(nèi)的存儲(chǔ)單元,盡量節(jié)省邏輯單元以容納其它的功能模塊。EPF10K10芯片的存儲(chǔ)單元由三個(gè)EAB塊組成,每個(gè)EAB塊的存儲(chǔ)容量為2048位,可以配置成512×4的查找表,其中地址線寬度為9,數(shù)據(jù)線寬度為4。第73頁/共177頁
設(shè)序列D=(D1,D2,…,D32),分別將(D6,D7,…,D14),(D15,D16,…,D23),(D24,D25,…,D32)作為查找表的地址線,由此可以計(jì)算出序列(D6,D7,…,D32)的漢明距離。序列(D1,D2,…,D5)的漢明距離可以采用邏輯函數(shù)法獲得。圖8.20給出了32位序列漢明距離電路計(jì)算原理圖。
由(8-8)式可知,邏輯計(jì)算電路有三個(gè)二進(jìn)制輸出變量,由最高有效位到最低有效位依次設(shè)為A、B、C,其邏輯表達(dá)式為第74頁/共177頁第75頁/共177頁
圖8.21是32位漢明距離計(jì)算的電路圖,其中用三個(gè)“l(fā)pm_rom”模塊構(gòu)建查找表,用“c5in3out”模塊完成邏輯電路計(jì)算功能,最后用三個(gè)加法器將各項(xiàng)相加,就得到最終計(jì)算結(jié)果。整個(gè)計(jì)算電路使用了芯片100%的存儲(chǔ)單元和5%的邏輯單元,其中,邏輯計(jì)算電路占2%,加法器占3%。如果完全采用邏輯函數(shù)法,則需要占用芯片15%的邏輯單元,因此圖8.21所示的漢明距離計(jì)算電路為該通信系統(tǒng)的檢測(cè)單元節(jié)省了10%的邏輯單元。第76頁/共177頁圖8.2132位序列漢明距離計(jì)算電路圖
第77頁/共177頁
圖8.22給出了部分電路仿真波形,其中序列D從端口“DATAIN[31..0]”輸入,用十六進(jìn)制數(shù)表示,計(jì)算結(jié)果從“OUT[3..0]”輸出,用十進(jìn)制數(shù)表示。第78頁/共177頁圖8.2232位序列漢明距離計(jì)算電路仿真波形第79頁/共177頁8.5交織編碼器
8.5.1交織編碼的原理
數(shù)字通信系統(tǒng)進(jìn)行數(shù)據(jù)傳輸時(shí),不可避免地會(huì)在接收端產(chǎn)生差錯(cuò)。在這種情況下,如果單純通過改進(jìn)信道的性能來降低誤碼率,在某些情況下是不切實(shí)際或不經(jīng)濟(jì)的。因此,數(shù)字通信系統(tǒng)通常采用前向糾錯(cuò)編碼的方法來糾正在傳輸過程中產(chǎn)生的誤碼。第80頁/共177頁
目前常用的糾錯(cuò)碼包括分組碼和卷積碼,它們都是按一定規(guī)律在原始信息序列中有意加上一些不含信息的多余比特,其作用是監(jiān)督所有碼組經(jīng)過信道傳輸后是否有差錯(cuò),以便在接收端根據(jù)碼組中規(guī)定的監(jiān)督關(guān)系對(duì)出現(xiàn)差錯(cuò)的碼組進(jìn)行糾錯(cuò)。第81頁/共177頁
每一種糾錯(cuò)碼都只具備有限的糾錯(cuò)能力。當(dāng)連續(xù)誤碼個(gè)數(shù)超過它的糾錯(cuò)能力之后,接收端的糾錯(cuò)譯碼便不能有效地降低信道誤碼率,甚至還會(huì)造成某種程度的惡化。為了克服信道中出現(xiàn)突發(fā)性差錯(cuò),需要使用交織編碼技術(shù),其作用就是將連續(xù)誤碼分散成非連續(xù)誤碼,增大糾錯(cuò)碼的約束長(zhǎng)度。數(shù)字通信系統(tǒng)采用糾錯(cuò)碼和交織編碼,就具有了既能糾正隨機(jī)差錯(cuò),又能克服突發(fā)性差錯(cuò)的功能,大大提高了通信質(zhì)量。此外,交織編碼器在Turbo碼設(shè)計(jì)中也起著十分重要的作用。第82頁/共177頁
圖8.23是糾錯(cuò)編碼與交織編碼電路連接關(guān)系圖。交織編碼根據(jù)交織圖案形式的不同,可分為線性交織、卷積交織和偽隨機(jī)交織。其中線性交織編碼是一種比較常見的形式,在這里,我們主要向大家講述線性交織編碼器的FPGA設(shè)計(jì)。第83頁/共177頁圖8.23糾錯(cuò)編碼與交織編碼的連接關(guān)系第84頁/共177頁
圖8.24n×m交織矩陣第85頁/共177頁
所謂線性交織編碼器,是指把糾錯(cuò)編碼器輸出信號(hào)均勻分成m個(gè)碼組,每個(gè)碼組由n段數(shù)據(jù)構(gòu)成,這樣就構(gòu)成一個(gè)n×m的矩陣。我們把這個(gè)矩陣稱為交織矩陣,如圖8.24所示。數(shù)據(jù)以a11,a12,...,a1n,a21,a22,...,a2n,...,aij,...,am1,am2,...,amn(i=1,2,...,m;
j=1,2,...,n)的順序進(jìn)入交織矩陣,再以a11,a21,...,am1,a12,a22,...,am2,...,aij,...,a1n,a2n,...,amn的順序從交織矩陣中送出,這樣就完成了對(duì)數(shù)據(jù)的交織編碼。第86頁/共177頁
當(dāng)然還可以按照其它順序從交織矩陣中讀取數(shù)據(jù),不管采用哪種形式,其最終目的都是把輸入數(shù)據(jù)的次序打亂。如果aij只包含一個(gè)數(shù)據(jù)比特,稱為按位交織;如果aij包含多個(gè)數(shù)據(jù)比特,則稱為按字交織。接收端的交織譯碼同交織編碼過程相類似,也是通過圖8.24的交織矩陣來完成,它們的結(jié)構(gòu)是一樣的。在這里,我們只討論交織編碼器,當(dāng)然它也可以用來做交織譯碼。第87頁/共177頁
根據(jù)Altera公司FLEX系列器件的內(nèi)部結(jié)構(gòu)特點(diǎn),可以采用兩種方法設(shè)計(jì)交織編碼器。一種方法是利用FLEX器件的邏輯單元,用移位寄存器完成交織;另一種方法是利用EAB資源,用存儲(chǔ)器實(shí)現(xiàn)交織編碼。下面分別進(jìn)行討論。第88頁/共177頁
8.5.2
利用移位寄存器實(shí)現(xiàn)交織編碼圖8.25所示為利用移位寄存器實(shí)現(xiàn)4×4交織編碼器(m=n=4)工作原理方框圖,輸入移位寄存器和輸出移位寄存器的容量均為16比特,該交織器每次完成16比特?cái)?shù)據(jù)的交織編碼。圖8.26為4×4交織編碼器的交織矩陣。設(shè)“0~15”為輸入16比特?cái)?shù)據(jù)的編號(hào),輸入數(shù)據(jù)在時(shí)鐘的作用下,按照“0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15”的順序進(jìn)入“輸入移位寄存器”,在時(shí)序控制單元的控制下,經(jīng)過交織網(wǎng)絡(luò),進(jìn)入“輸出移位寄存器”,然后以“0、4、8、12、1、5、9、13、2、6、10、14、3、7、11、15”的順序輸出,從而完成交織編碼。第89頁/共177頁圖8.25基于移位寄存器的交織編碼器工作原理方框圖第90頁/共177頁表8.3基于移位寄存器的交織編碼器引腳
引腳
功能DATAIN數(shù)據(jù)輸入CLK數(shù)據(jù)時(shí)鐘輸入CLRN系統(tǒng)復(fù)位端口DATAOUT交織編碼數(shù)據(jù)輸出CLKOUT交織編碼數(shù)據(jù)時(shí)鐘輸出第91頁/共177頁圖8.264×4交織矩陣第92頁/共177頁圖8.27利用移位寄存器實(shí)現(xiàn)的交織編碼器第93頁/共177頁圖8.27利用移位寄存器實(shí)現(xiàn)的交織編碼器第94頁/共177頁
圖8.27是利用移位寄存器所實(shí)現(xiàn)的交織編碼器電路圖,表8.3給出了交織編碼器的引腳關(guān)系?!拜斎胍莆患拇嫫鳌庇蓛蓚€(gè)“74164”級(jí)聯(lián)實(shí)現(xiàn),“輸出移位寄存器”由兩個(gè)“cshifreg”級(jí)聯(lián)實(shí)現(xiàn)。表8.4為輸入數(shù)據(jù)和輸出數(shù)據(jù)編號(hào)的對(duì)應(yīng)關(guān)系,利用對(duì)應(yīng)關(guān)系將相應(yīng)編號(hào)的端口相連接,就構(gòu)成了“交織網(wǎng)絡(luò)”。時(shí)序控制單元是一個(gè)模16同步計(jì)數(shù)器,當(dāng)“輸入移位寄存器”讀入16比特?cái)?shù)據(jù)后,時(shí)序控制單元產(chǎn)生一個(gè)脈沖信號(hào),將這些數(shù)據(jù)通過“交織網(wǎng)絡(luò)”送入“輸出移位寄存器”,此時(shí)該移位寄存器內(nèi)的數(shù)據(jù)已經(jīng)按照交織編碼后的順序排列。在時(shí)鐘的驅(qū)動(dòng)下,將“輸出移位寄存器”內(nèi)數(shù)據(jù)順序送出,即為交織編碼后的數(shù)據(jù)。第95頁/共177頁
圖8.28是該交織編碼器的仿真波形,節(jié)點(diǎn)“Q”處的脈沖信號(hào)每16個(gè)時(shí)鐘周期出現(xiàn)一次,“輸入移位寄存器”中的數(shù)據(jù)在脈沖信號(hào)控制下被送入“輸出移位寄存器”,同時(shí)在交織網(wǎng)絡(luò)中完成交織編碼。時(shí)鐘“CLKOUT”是輸入時(shí)鐘“CLK”的反相時(shí)鐘,其上升沿對(duì)應(yīng)著數(shù)據(jù)信號(hào)的中間位置,這樣可以保證數(shù)據(jù)的可靠讀取?!癉ATAIN”是數(shù)據(jù)輸入端,系統(tǒng)清零后輸入的前16個(gè)數(shù)據(jù)比特為“1101010001001110”,經(jīng)交織后,“DATAOUT”輸出的數(shù)據(jù)比特為“1001111100011000”。第96頁/共177頁表8.4輸入數(shù)據(jù)和輸出數(shù)據(jù)編號(hào)的對(duì)應(yīng)關(guān)系第97頁/共177頁圖8.28交織編碼器仿真波形(一)第98頁/共177頁8.5.3利用存儲(chǔ)器實(shí)現(xiàn)交織編碼
FPGA器件中的EAB可以實(shí)現(xiàn)復(fù)雜的邏輯功能,當(dāng)用作存儲(chǔ)器時(shí),其存儲(chǔ)數(shù)據(jù)的寬度和深度可由設(shè)計(jì)人員任意指定,甚至還可以把若干個(gè)EAB連接起來組成容量更大的存儲(chǔ)單元。因此利用存儲(chǔ)器可以方便地構(gòu)造出交織深度很大的交織編碼器。第99頁/共177頁圖8.29基于存儲(chǔ)器的交織編碼器工作原理方框圖第100頁/共177頁
圖8.29是利用雙端口RAM實(shí)現(xiàn)的交織編碼器工作原理方框圖,由圖可看出,交織編碼器設(shè)計(jì)的關(guān)鍵在于“讀/寫地址”的產(chǎn)生。一般說來,有兩種設(shè)計(jì)“讀/寫地址”的方法:一種方法是“順序?qū)懭?、亂序讀出”,即輸入數(shù)據(jù)以順序地址寫入存儲(chǔ)器,然后再以交織地址從存儲(chǔ)器中讀出;另一種方法是“亂序?qū)懭?、順序讀出”,即輸入數(shù)據(jù)以交織地址寫入存儲(chǔ)器,然后再以順序地址從存儲(chǔ)器中讀出。這兩種方法是等效的,在下面的例子中,我們采用“順序?qū)懭?,亂序讀出”的方法。第101頁/共177頁
將雙端口RAM存儲(chǔ)空間劃分為兩部分,在交織器工作時(shí),這兩部分存儲(chǔ)空間交替進(jìn)行讀/寫操作。圖8.30是4×4交織編碼器的電路圖,雙端口RAM由“l(fā)pm_ram_dp”宏模塊構(gòu)成,該模塊的邏輯參數(shù)見表8.5和表8.6所示。第102頁/共177頁圖8.30利用雙端口RAM實(shí)現(xiàn)的交織編碼器第103頁/共177頁圖8.30利用雙端口RAM實(shí)現(xiàn)的交織編碼器第104頁/共177頁表8.5“l(fā)pm_ram_dp”宏模塊的基本邏輯參數(shù)(一)第105頁/共177頁表8.6“l(fā)pm_ram_dp”宏模塊的基本邏輯參數(shù)(二)第106頁/共177頁
圖8.30中“l(fā)pm_ram_dp”宏模塊的參數(shù)設(shè)置為
LPM_WIDTH=1LPM_WIDTHAD=5
輸入輸出數(shù)據(jù)線的寬度為“1”,讀/寫地址線的寬度為“5”,5位“寫地址”為“WRADDRESS[4..0]”,5位“讀地址”為“RDADDRESS[4..0]”,總尋址空間為“32”比特。
第107頁/共177頁
“寫地址”的低4位“WRADDRESS[3..0]”由計(jì)數(shù)器“4count”的輸出端口“QA~QD”產(chǎn)生?!白x地址線”的產(chǎn)生比較復(fù)雜,需要通過狀態(tài)轉(zhuǎn)移圖得到。我們已經(jīng)知道,交織器編碼數(shù)據(jù)按照“0、4、8、12、1、5、9、13、2、6、10、14、3、7、11、15”的順序輸出,其地址(低4位地址)狀態(tài)轉(zhuǎn)移圖為第108頁/共177頁表8.7“讀地址”與時(shí)鐘對(duì)應(yīng)關(guān)系
讀地址
與時(shí)鐘對(duì)應(yīng)關(guān)系RDADDRESS4
時(shí)鐘的32分頻RDADDRESS3
時(shí)鐘的4分頻RDADDRESS2
時(shí)鐘的2分頻RDADDRESS工
時(shí)鐘的16分頻RDADDRESS0
時(shí)鐘的8分頻第109頁/共177頁
由狀態(tài)轉(zhuǎn)移圖可以得到“讀地址”的低4位“RDADDRESS[3..0]”與數(shù)據(jù)時(shí)鐘之間有表8.7所述的對(duì)應(yīng)關(guān)系。因此,可以很容易地用分頻器得到“讀地址”。
“讀/寫地址”的最高位“RDADDRESS4/WRADDRESS4”是反相關(guān)系,使存儲(chǔ)器在“00000~01111”和“10000~11111”兩段地址空間內(nèi)交替“讀/寫”操作。這兩段空間交替“讀/寫”一次對(duì)應(yīng)32個(gè)數(shù)據(jù)時(shí)鐘周期,所以“RDADDRESS4/WRADDRESS4”可由數(shù)據(jù)時(shí)鐘的32分頻得到。第110頁/共177頁
圖8.30用5個(gè)D觸發(fā)器構(gòu)成了一個(gè)32分頻器,從各級(jí)D觸發(fā)器輸出端可得到5位“讀地址”以及“寫地址”的最高位“WRADDRESS4”。表8.8給出了基于RAM結(jié)構(gòu)的交織編碼器的引腳關(guān)系,為了便于測(cè)試,將“讀/寫地址”和“模16計(jì)數(shù)信號(hào)”也用輸出管腳引出?!癈LKOUT”是時(shí)鐘“CLK”的反相信號(hào)。“讀/寫”地址轉(zhuǎn)換的時(shí)候會(huì)出現(xiàn)許多“毛刺”信號(hào),用“CLKOUT”作為存儲(chǔ)器“讀/寫”時(shí)鐘可以避免“毛刺”的影響,保證數(shù)據(jù)的可靠讀取。第111頁/共177頁
“讀地址線”的產(chǎn)生比較復(fù)雜,需要通過狀態(tài)轉(zhuǎn)移圖得到。我們已經(jīng)知道,交織器編碼數(shù)據(jù)按照“0、4、8、12、1、5、9、13、2、6、10、14、3、7、11、15”的順序輸出,其地址(低4位地址)狀態(tài)轉(zhuǎn)移圖為由狀態(tài)轉(zhuǎn)移圖可以得到“讀地址”的低4位“RDADDRESS[3..0]”與數(shù)據(jù)時(shí)鐘之間有表8.7所述的對(duì)應(yīng)關(guān)系。因此,可以很容易地用分頻器得到“讀地址”。第112頁/共177頁
表8.8基于RAM的交織編碼器引腳
引腳
功能DATA工N
數(shù)據(jù)輸入ClK數(shù)據(jù)時(shí)鐘輸入CLRN系統(tǒng)復(fù)位端口DATAOUT
交織編碼數(shù)據(jù)輸出CLKOUT
交織編碼數(shù)據(jù)時(shí)鐘輸出Q模16計(jì)數(shù)信號(hào)WRADDRESS[4.。0]
寫地址RDADDRESS[4..0]
讀地址第113頁/共177頁
圖8.31是交織編碼器的仿真波形。從圖中的局部放大圖可以看到“讀/寫”地址的對(duì)應(yīng)關(guān)系與交織矩陣完全一致。圖中還標(biāo)出了輸入的前16個(gè)數(shù)據(jù)比特為“1100111000100101”,經(jīng)交織后,“DATAOUT”輸出的數(shù)據(jù)比特為“1100110101100001”。從圖8.28和圖8.31的仿真波形中還可看到,交織編碼器在數(shù)據(jù)輸出前存在一段延時(shí),延時(shí)的大小與交織矩陣有關(guān),交織矩陣越大,延時(shí)越大。延時(shí)會(huì)對(duì)通信帶來不利的影響,但可以通過對(duì)交織器的精心設(shè)計(jì)來降低延時(shí),它的實(shí)現(xiàn)方法我們?cè)谶@里就不詳細(xì)討論了。第114頁/共177頁圖8.31交織編碼器仿真波形(二)第115頁/共177頁
通過本節(jié)的講述可知,我們既可以利用FLEX系列芯片的邏輯單元,用寄存器陣列實(shí)現(xiàn)交織編碼,又可以利用它的EAB資源,用存儲(chǔ)器實(shí)現(xiàn)交織編碼。相比較而言,第一種方法控制電路簡(jiǎn)單而易于實(shí)現(xiàn),第二種方法的地址電路比較復(fù)雜,但能構(gòu)造出約束長(zhǎng)度很長(zhǎng)的交織矩陣。需要指出的是,m和n是設(shè)計(jì)交織編碼的重要參數(shù),必須根據(jù)信道中突發(fā)誤碼的長(zhǎng)度、出現(xiàn)的頻率以及糾錯(cuò)碼的約束長(zhǎng)度、糾錯(cuò)能力適當(dāng)選擇。第116頁/共177頁
假設(shè)選用的糾錯(cuò)碼具有糾正t個(gè)隨機(jī)差錯(cuò)的能力,則在發(fā)生突發(fā)差錯(cuò)的情況下,允許突發(fā)性差錯(cuò)的最大長(zhǎng)度b=mt。顯然,在n不小于糾錯(cuò)碼譯碼長(zhǎng)度的條件下,增大m可以提高系統(tǒng)克服突發(fā)差錯(cuò)的能力。所以,m、n選得越大,信道編碼的約束長(zhǎng)度越大,從而對(duì)付信道中長(zhǎng)突發(fā)差錯(cuò)的能力也就越強(qiáng)。第117頁/共177頁
如果采用按位交織,要實(shí)現(xiàn)連續(xù)數(shù)據(jù)流的交織,交織編碼器需要有2×m×n比特的存儲(chǔ)空間。相應(yīng)地在發(fā)、收端對(duì)信號(hào)進(jìn)行交織編、譯碼處理時(shí),分別會(huì)引入m×n個(gè)碼元的延時(shí),這一點(diǎn)可以從仿真波形中清楚地看到。從另一個(gè)角度講,m、n選得越大,就需要越大的存儲(chǔ)空間,同時(shí)會(huì)引入更長(zhǎng)的延時(shí),所以應(yīng)根據(jù)數(shù)字通信系統(tǒng)的實(shí)際情況選擇合適的m和n值。第118頁/共177頁8.6直接數(shù)字頻率合成
1971年,美國(guó)學(xué)者J.Tierncy、C.M.Rader和B.Gold提出了以全數(shù)字技術(shù)、從相位概念出發(fā)直接合成所需波形的一種新的頻率合成原理。隨著技術(shù)和器件水平的提高,一種新的頻率合成技術(shù)——直接數(shù)字頻率合成(DDS,DirectDigitalSynthesis)得到了飛速的發(fā)展。DDS技術(shù)是一種把一系列數(shù)字形式的信號(hào)通過DAC轉(zhuǎn)換成模擬形式的信號(hào)的合成技術(shù),目前使用最廣泛的一種DDS方式是利用高速存儲(chǔ)器作查找表,然后通過高速DAC輸出已經(jīng)用數(shù)字形式存入的正弦波。第119頁/共177頁DDS的主要優(yōu)點(diǎn)是:相位連續(xù)、頻率分辨率高、頻率轉(zhuǎn)換速度快以及良好的可復(fù)制性能,它以有別于其它頻率合成方法的優(yōu)越性能和特點(diǎn)成為現(xiàn)代頻率合成技術(shù)中的姣姣者。DDS廣泛用于接收機(jī)本振、信號(hào)發(fā)生器、儀器、通信系統(tǒng)、雷達(dá)系統(tǒng)等,尤其適合于跳頻無線通信系統(tǒng)。第120頁/共177頁
圖8.32是DDS的基本原理框圖,頻率控制字M和相位控制字分別控制DDS輸出正(余)弦波的頻率和相位。DDS系統(tǒng)的核心是相位累加器,它由一個(gè)累加器和一個(gè)N位相位寄存器組成。每來一個(gè)時(shí)鐘脈沖,相位寄存器以步長(zhǎng)M增加。相位寄存器的輸出與相位控制字相加,其結(jié)果作為正(余)弦查找表的地址。第121頁/共177頁
圖8.32中正(余)弦查找表由ROM構(gòu)成,內(nèi)部存有一個(gè)完整周期正弦波的數(shù)字幅度信息,每個(gè)查找表的地址對(duì)應(yīng)正弦波中0°~360°范圍的一個(gè)相位點(diǎn)。查找表把輸入的地址信息映射成正(余)弦波幅度信號(hào),同時(shí)輸出到數(shù)模轉(zhuǎn)換器(DAC)的輸入端,DAC輸出的模擬信號(hào)經(jīng)過低通濾波器(LPF),可得到一個(gè)頻譜純凈的正(余)弦波。第122頁/共177頁圖8.32DDS基本原理框圖第123頁/共177頁圖8.33DDS核心單元的FPGA電路設(shè)計(jì)圖第124頁/共177頁
相位寄存器每經(jīng)過2N/M個(gè)fc時(shí)鐘周期后回到初始狀態(tài),相應(yīng)地正(余)弦查找表經(jīng)過一個(gè)循環(huán)回到初始位置,DDS輸出一個(gè)正(余)弦波。輸出的正(余)弦波周期為Tout=(2N/M)Tc,頻率為fout=(M/2N)fc。DDS的最小分辨率為Δfmin=fc/2N,當(dāng)M=2N-1時(shí),DDS最高的基波合成頻率為foutmax=fc/2。第125頁/共177頁
圖8.32中虛方框內(nèi)的部分是DDS的核心單元,它可以采用FPGA器件來實(shí)現(xiàn),圖8.33給出了DDS核心單元的FPGA電路設(shè)計(jì)圖,其中字長(zhǎng)N=10。為了便于大家理解,圖8.33中各個(gè)功能單元的名稱已在圖中標(biāo)明,其中在輸出引腳“out_c[7..0]”和“out_s[7..0]”前分別放置了一個(gè)8位D觸發(fā)器。正(余)弦查找表分別由兩個(gè)ROM宏模塊“l(fā)pm_rom”構(gòu)成,有關(guān)查找表的設(shè)計(jì)方法,請(qǐng)讀者參閱6.3.3節(jié)的內(nèi)容。第126頁/共177頁
圖8.34是DDS電路的MAX+PLUSⅡ波形仿真結(jié)果。實(shí)際上,從MAX+PLUSⅡ波形仿真結(jié)果中我們很難直觀地看出DDS輸出正(余)弦波的情況。為了便于調(diào)試設(shè)計(jì)電路,我們可以利用計(jì)算機(jī)高級(jí)語言將MAX+PLUSⅡ波形仿真結(jié)果轉(zhuǎn)換為波形曲線,這就需要借助于MAX+PLUSⅡ的表格文件(.tbl文件)。第127頁/共177頁圖8.34DDS電路的波形仿真結(jié)果第128頁/共177頁MAX+PLUSⅡ的設(shè)計(jì)軟件中的.tbl文件是純文本文件,它包含了.scf文件或.wdf文件中的所有信息。.tbl文件的生成很簡(jiǎn)單,在MAX+PLUSⅡ波形仿真結(jié)束后,打開.scf文件,然后從“File”菜單中選擇“CreateTableFiles”選項(xiàng),就可產(chǎn)生.tbl文件。.tbl文件的基本格式如表8.9所示,文件的結(jié)構(gòu)可分為四大部分,其中第三和第四部分對(duì)我們來說是最關(guān)鍵的,我們可以從中獲取仿真波形數(shù)據(jù),并利用計(jì)算機(jī)高級(jí)語言處理這些數(shù)據(jù),將其轉(zhuǎn)換為直觀的波形曲線。需要讀者注意的是,每做一次MAX+PLUSⅡ波形仿真,都要重新生成一次.tbl文件,以更新.tbl文件內(nèi)的數(shù)據(jù)。第129頁/共177頁表8.9.tbl文件基本格式第130頁/共177頁
圖8.35給出了DDS電路波形仿真結(jié)果所對(duì)應(yīng)的.tbl文件的第三和第四部分內(nèi)容。.tbl文件的第三部分按照.scf文件(參見圖8.34)中顯示的輸入輸出引腳的排列順序,從左至右依次列出輸入引腳和輸出引腳。.tbl文件的第四部分給出了仿真數(shù)據(jù),這些數(shù)據(jù)按時(shí)間順序排列,并與相應(yīng)的輸入/輸出引腳處于同一列,輸入引腳數(shù)據(jù)與輸出引腳數(shù)據(jù)之間用“=”隔開。仔細(xì)觀察圖8.35,我們可以發(fā)現(xiàn)當(dāng)“CLK”取值為“0”時(shí),此時(shí)的輸出數(shù)據(jù)是我們希望得到的,所以可編程將這些數(shù)據(jù)抽取出來并將其轉(zhuǎn)換為十進(jìn)制,就可獲得直觀的仿真波形。第131頁/共177頁圖8.35.tbl文件的部分內(nèi)容第132頁/共177頁圖8.35.tbl文件的部分內(nèi)容第133頁/共177頁
下面給出了一段用Matlab語言編寫的程序,它首先讀取“dds.tbl”文件,將輸入引腳“CLK=0”時(shí)的輸出數(shù)據(jù)抽取出來并轉(zhuǎn)換為十進(jìn)制數(shù),然后繪出DDS電路的仿真波形曲線,該曲線如圖8.36所示。第134頁/共177頁圖8.36Matlab繪出的DDS電路仿真波形第135頁/共177頁數(shù)據(jù)抽取和數(shù)值轉(zhuǎn)換程序(Matlab語言)clearall;fid=fopen(′e:\max2work\dds.tbl′,′r′);data=fscanf(fid,′%s′);fclose(fid);b=find(data==′=′);number=length(b);j=0;fori=1:numberifdata(b(i)-1)==′0′第136頁/共177頁j=j+1;c_c(j,1)=data(b(i)+1);c_c(j,2)=data(b(i)+2);c_s(j,1)=data(b(i)+3);c_s(j,2)=data(b(i)+4);endendd_c=hex2dec(c_c);%hex--->dec,d_c是out_c引腳上的數(shù)據(jù)d_s=hex2dec(c_s);%hex--->dec,d_s是out_s引腳上的數(shù)據(jù)第137頁/共177頁figure(1);subplot(2,1,1);plot(d_c);%DDS輸出的余弦波subplot(2,1,2);plot(d_s);%DDS輸出的正弦波第138頁/共177頁8.7誤碼率在線測(cè)試
8.7.1誤碼檢測(cè)電路的設(shè)計(jì)
某數(shù)字通信系統(tǒng)需要誤碼率在線測(cè)試單元,要求能夠?qū)崟r(shí)顯示接收數(shù)據(jù)的誤碼率,并提供備份設(shè)備的切換標(biāo)準(zhǔn)。圖8.37是設(shè)計(jì)的誤碼率在線測(cè)試電路的總體框圖。第139頁/共177頁
圖8.37中的陰影部分是誤碼檢測(cè)電路,它是整個(gè)誤碼率在線測(cè)試電路中的核心單元。該通信系統(tǒng)具有獨(dú)特的幀結(jié)構(gòu),每一幀長(zhǎng)為2ms,速率為19.2Mb/s,其中同步頭為連續(xù)7個(gè)128位的偽隨機(jī)碼。誤碼檢測(cè)電路的目的就是要檢測(cè)出同步頭的誤碼個(gè)數(shù),將結(jié)果送往CPU進(jìn)行算法處理,得到實(shí)時(shí)誤碼率。第140頁/共177頁圖8.37誤碼率在線測(cè)試電路總體框圖第141頁/共177頁圖8.38誤碼檢測(cè)電路原理方框圖第142頁/共177頁
誤碼檢測(cè)電路實(shí)現(xiàn)的難度在于數(shù)據(jù)速率高,幀結(jié)構(gòu)特殊。如果采用常規(guī)電路設(shè)計(jì)方法,需要幾十塊集成電路,并且在19.2Mb/s的速率上實(shí)現(xiàn)困難很大,各個(gè)器件之間的延遲很難掌握和處理,電路的調(diào)試難度就可想而知。因此,我們選擇FPGA器件來實(shí)現(xiàn)誤碼檢測(cè)電路,其原理方框圖如圖8.38所示。第143頁/共177頁
電路原理說明如下:解調(diào)后的19.2Mb/s的基帶數(shù)據(jù)流(data)和時(shí)鐘(clk)輸入到同步電路和128位移位寄存器(16個(gè)74164)中,首先同步電路開始搜索同步頭,以128位偽隨機(jī)碼的前16位作為同步頭初捕譯碼電路,如在數(shù)據(jù)流中捕捉到相同的16位數(shù)據(jù),則送出初同步信號(hào)w1,在開關(guān)電路1打開的情況下,送出真正的幀同步信號(hào)w11,w11打開開關(guān)電路2并使所有的計(jì)數(shù)器清零后開始計(jì)數(shù),同時(shí)將128位偽隨機(jī)碼進(jìn)行“‘1’取反,‘0’不變”處理后的數(shù)據(jù)讀到另外128位移位寄存器(16個(gè)8shiftreg)中。如果有誤碼,則讀入數(shù)據(jù)對(duì)應(yīng)位為“1”,如果沒有誤碼,則讀入數(shù)據(jù)對(duì)應(yīng)位為“0”。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 我的家鄉(xiāng)敘事課程設(shè)計(jì)
- 弦樂小夜曲課程設(shè)計(jì)
- 中西醫(yī)執(zhí)業(yè)醫(yī)師模擬試卷16
- 礦井灌漿設(shè)計(jì)課程設(shè)計(jì)
- 站姿坐姿課程設(shè)計(jì)
- 花藝烘焙課程設(shè)計(jì)
- 藥品驗(yàn)收入門課程設(shè)計(jì)
- 互聯(lián)網(wǎng)行業(yè)安全管理實(shí)踐
- 領(lǐng)導(dǎo)班子與教學(xué)院校協(xié)調(diào)計(jì)劃
- 火災(zāi)中的風(fēng)險(xiǎn)評(píng)估和分析培訓(xùn)
- 儲(chǔ)能系統(tǒng)技術(shù)服務(wù)合同
- GB/T 1094.7-2024電力變壓器第7部分:油浸式電力變壓器負(fù)載導(dǎo)則
- 電大西方行政學(xué)說
- 2024-2025學(xué)年人教版數(shù)學(xué)七年級(jí)上冊(cè)期末復(fù)習(xí)卷(含答案)
- 2024年度中國(guó)PE、VC基金行業(yè)CFO白皮書
- 2023年南京市江寧區(qū)招聘教師考試真題
- 《中國(guó)民族史》重點(diǎn)筆記(期末)
- 中南大學(xué)《物聯(lián)網(wǎng)原理及應(yīng)用》2022-2023學(xué)年第一學(xué)期期末試卷
- 抓斗課件教學(xué)課件
- 第三方物流供應(yīng)商準(zhǔn)入與考核制度
- 基于Python的去哪兒網(wǎng)酒店數(shù)據(jù)采集與分析
評(píng)論
0/150
提交評(píng)論