摘 要:簡要地介紹了M序列碼作為同步頭的幀同步" title="幀同步">幀同步提取的原理,。在研究了相關(guān)處理的基礎(chǔ)上,提出了采用補(bǔ)碼配對(duì)相減匹配濾波法" title="補(bǔ)碼配對(duì)相減匹配濾波法">補(bǔ)碼配對(duì)相減匹配濾波法實(shí)現(xiàn)同步提取的新方法,。該方法僅利用減法器和加法器,,不僅使電路設(shè)計(jì)簡單,而且使電路得到極大的優(yōu)化,,大大節(jié)省了PPGA內(nèi)部資源,。
關(guān)鍵詞:FPGA" title="FPGA">FPGA 幀同步 補(bǔ)碼配對(duì)相減匹配濾波法
在可靠的通信系統(tǒng)中,要保證接收端能正確解調(diào)出信息,,必須要有一個(gè)同步系統(tǒng),,以實(shí)現(xiàn)發(fā)送端和接收端的同步,,因此同步提取在通信系統(tǒng)中是至關(guān)重要的,。一個(gè)簡單的接收系統(tǒng)框圖如圖1所示。
本文介紹一種基于現(xiàn)場可編程門陣列(FPGA)的同步方案,。FPGA是與傳統(tǒng)PLD不同的一類可編程ASIC,,它是將門陣列的通用結(jié)構(gòu)與PLD的現(xiàn)場可編程特性結(jié)合于一體的新型器件,,最早由美國Xilinx公司于1985年推出。FPGA具有集成度高,、通用性好,、設(shè)計(jì)靈活、開發(fā)周期短,、編程方便,、產(chǎn)品上市快捷等特點(diǎn),它的門數(shù)可達(dá)100萬門以上,。近年來,,F(xiàn)PGA在系統(tǒng)的硬件設(shè)計(jì)方面得到了廣泛的應(yīng)用。
1 同步序列碼
本文介紹的幀同步提取是在每一幀的前面加擴(kuò)頻碼,,該擴(kuò)頻碼必須具有良好的自相關(guān)性和互相關(guān)特性,。表1是m序列碼和Gold系列碼的性能比較,從表中可以看出,,m序列碼的自相關(guān)性和互相關(guān)特性要比Gold系列碼好得多,,m序列碼作為同步頭具有較強(qiáng)的抗干擾能力和較低的截獲概率,而且長的m序列更容易在一定的強(qiáng)噪聲中被提取,,這樣就能夠充分保證數(shù)據(jù)的正常通信。因此相對(duì)于Gold系列碼來說,,m序列碼更適合于作為同步頭,。本文的同步序列碼指的是M序列碼,M序列碼是由m序列碼得到的,,即在相應(yīng)的m序列碼后補(bǔ)零,,用以實(shí)現(xiàn)PN碼的相等匹配,,因?yàn)閷?duì)應(yīng)m序列碼來說,1的個(gè)數(shù)總是比0的個(gè)數(shù)多一個(gè),。
利用相關(guān)法,,在同步頭沒有來臨之時(shí),其相關(guān)峰比較低,;如果數(shù)據(jù)中的同步頭和本地同步頭完全對(duì)齊,,那么就能夠出現(xiàn)大的相關(guān)峰值,但這個(gè)峰值可能不會(huì)達(dá)到理論值,,這是因?yàn)樵跀?shù)據(jù)傳輸中,,數(shù)據(jù)流包括同步頭都要受到噪聲的干擾。因此,,同步提取還要看同步是在一個(gè)什么樣的噪聲環(huán)境中才能良好工作,。本文介紹的是長度為128的M序列碼作為同步頭的同步提取方法。之所以取長度為128的PN碼作為同步信息,,一方面是考慮到同步提取的復(fù)雜性要求同步信息不能太長,,另一方面是要滿足相關(guān)峰值盡可能的大,長度為128的PN碼可以提供21dB的處理增益,,這使得在一定的噪聲背景下仍然可以提取到相關(guān)峰值,。
圖2是在信噪比為0dB下的相關(guān)情況??梢钥闯鲈?dB下長度為128的M序列碼作為同步頭的相關(guān)特性是良好的,。圖3是在信噪比為-7dB的情況下做的仿真??梢园l(fā)現(xiàn),,由噪聲所產(chǎn)生的相關(guān)峰增高,有超過最高相關(guān)峰的趨勢,。經(jīng)過實(shí)驗(yàn),,信噪比繼續(xù)降低時(shí),真正的相關(guān)峰就會(huì)被噪聲所產(chǎn)生的相關(guān)峰淹沒,,這樣就不能提取出相關(guān)峰,。因此,同步提取要考慮噪聲的影響,。
2 同步提取原理
本文介紹的幀同步提取是在每一幀的前面加上長度為128位的PN碼作為幀頭數(shù)據(jù)(如圖4所示),,然后根據(jù)這些幀頭數(shù)據(jù)的相關(guān)性提取相關(guān)峰值,幀頭數(shù)據(jù)必須具有良好的自相關(guān)性和互相關(guān)性,,當(dāng)和本地碼完全相同時(shí)其相關(guān)峰最大,。
假設(shè)PN碼為p(n),經(jīng)A/D采樣后第n個(gè)采樣點(diǎn)的數(shù)據(jù)是data(n),噪聲是N(n),,那么data(n)和PN碼之間的循環(huán)互相關(guān)函數(shù)為:
式中,,L是PN碼的長度。當(dāng)data(n)正好與PN碼對(duì)齊,,即data(n)=p(n)十N(n)時(shí),,有:
由于N(n)與PN是互不相關(guān)的,因此(2)式的前半部分相關(guān)值很??;而對(duì)于(2)式的后半部分,當(dāng)其與本地的PN碼完全對(duì)應(yīng),,即p(n)=p(k+n)時(shí),,Rdp(k)將得到最大相關(guān)值。對(duì)于L=128的PN碼,,將會(huì)有一個(gè)21dB增益的相關(guān)峰,,因此可以提取到明顯的相關(guān)峰。
由以上分析可以看出,,在同步相關(guān)提取的實(shí)現(xiàn)當(dāng)中要用到反向器和乘法器,,電路復(fù)雜,用FPGA設(shè)計(jì)必然會(huì)占很大的資源,。經(jīng)過研究分析并參考其它文獻(xiàn)資料,,這里采用補(bǔ)碼配對(duì)相減匹配濾波法,僅利用減法器和加法器即可,,不僅使電路設(shè)計(jì)簡單,,而且使電路得到極大的優(yōu)化。在同步信息的復(fù)接部分用的幀頭信息是一個(gè)128位的M序列碼,,而在同步提取部分用的則是該序列碼的鏡像碼,。
假設(shè)幀同步復(fù)接部分的同步頭M序列碼是:
1000010110/0010111010/1101100000/
1100110101/0011100111/1011010000/
1010101111/1010010100/0110111000/
1111111000/0111011110/0101100100/10000000
而同步頭M序列碼的鏡像碼則為:
00000001/0010011010/0111101110/
0001111111/0001110110/0010100101/
1111010101/0000101101/1110011100/
1010110011/0000011011/0101110100/0110100001
對(duì)鏡像之后的本地碼先進(jìn)行編號(hào),按照順序依次從1編到128,。第一位數(shù)字0編為1,,第二位數(shù)字0編為2,第三位數(shù)字編為3……,。在鏡像本地碼中,,第一個(gè)出現(xiàn)數(shù)字1的位置編號(hào)為8,第二個(gè)出現(xiàn)數(shù)字1的位置編號(hào)為11……,。依次做以下配對(duì):
(1,,8) (2,a1) (3,,a4) (4,,a5) (5,,a7) (6,b0) (7,,b1)
(9,b2) (a0,,b3) (a2,,b5) (a3,b6) (a6,,b7) (a8,,c2) (a9,c3)
(b4,,c4) (b8,,c5) (b9,c6) (c0,,c7) (c1,,c8) (c9,d2) (d0,,d3)
(d1,,d4) (d5,d6) (d8,,d7) (d9,,e1) (e0,e3) (e2,,e6) (e4,,e8)
(e5,e9) (e7,,f0) (f3,,f1) (f5,f2) (f7,,f4) (f9,,f6) (g0,f8)
(g1,,g3) (g2,,g5) (g4,g6) (g7,,g8) (h2,,g9) (h3,h0) (h7,,h1)
(h8,,h4) (i0,,h5) (i2,h6) (i5,,h9) (i6,,i1) (i9,i3) (jo,,i4)
(j1,,i7) (j2,i8) (j3,,j4) (j6,,j5) (j9,j7) (k1,,j8) (k5,,k0)
(k7,k2) (k8,,k3) (k9,,k4) (12,k6) (14,,10) (15,,11) (16,13)
(17,,18)
其中的映射關(guān)系是:a→10,,b→20,c→30,,d→40,,e→50,f→60,,g→70,,h→80,i→90,,j→100,,k→110,1→120
在同步頭中,,既可以用符號(hào)1表示電平系數(shù)+1,,用符號(hào)0表示電平系數(shù)—1,也可以用符號(hào)1表示電平系數(shù)—1,,用符號(hào)0表示電平系數(shù)十1,。本文采用符號(hào)0表示電平系數(shù)+1,用符號(hào)1表示電平系數(shù)—1,。
配對(duì)之后,,對(duì)各個(gè)組合對(duì)應(yīng)的輸入移位樣點(diǎn)數(shù)據(jù)做補(bǔ)碼減法運(yùn)算,。例如在組合(1,8)中,,當(dāng)樣點(diǎn)數(shù)據(jù)進(jìn)入移位寄存器時(shí),,將對(duì)應(yīng)移位寄存器中的并行第一位輸出作為被減數(shù),第8位輸出作為減數(shù),。其它組合類似,。當(dāng)樣點(diǎn)數(shù)據(jù)中的同步頭完全進(jìn)入移位寄存器時(shí),那么對(duì)應(yīng)并行輸出的第一位應(yīng)該是正值,,而第8位對(duì)應(yīng)的是負(fù)值。兩個(gè)輸出做補(bǔ)碼相減,。正值減去一個(gè)負(fù)值,,輸出得到一個(gè)更大的數(shù)值。這時(shí),,只有增加運(yùn)算的位數(shù),,才能得到正確的運(yùn)算結(jié)果。
對(duì)128個(gè)編號(hào)可以做64個(gè)配對(duì),,這就需要64個(gè)減法器,。64個(gè)減法運(yùn)算同時(shí)進(jìn)行,有64個(gè)輸出結(jié)果,。然后利用32個(gè)加法器對(duì)64個(gè)數(shù)值進(jìn)行加法運(yùn)算,。逐級(jí)進(jìn)行相加運(yùn)算,最后得到一個(gè)相關(guān)峰值,。假設(shè)data(n)是16bit的信息數(shù)據(jù),,在逐級(jí)相加運(yùn)算當(dāng)中,不是直接采用這16位進(jìn)行補(bǔ)碼減法和補(bǔ)碼加法運(yùn)算,,而是隨著一級(jí)級(jí)的相加運(yùn)算,,位數(shù)也一位一位地增加。這樣就優(yōu)化了電路,,節(jié)省了FPGA資源,。
假設(shè)一個(gè)碼元采樣8個(gè)點(diǎn),經(jīng)I,、Q分路(以QPSK調(diào)制為例)之后,,每一正交路為4個(gè)點(diǎn)。相對(duì)于(1,,8)配對(duì),,在第一個(gè)補(bǔ)碼配對(duì)減法器中對(duì)應(yīng)的是{t13,t1[3..0]}和{t83,,t8[3..0]},;相對(duì)應(yīng)(2,,11)配對(duì),在電路中對(duì)應(yīng)的是{t23,,t2[3..0]}和{tal3,,tal[3..0]};依此類推,。
下面有必要分析一下為什么要表示成{t13,,t1[3..0]}的形式。在補(bǔ)碼運(yùn)算中,,由0101—1101=0101+0010+0001=0111+0001可以看到0111+0001的和值是一個(gè)更大的正值,,是不能用4位表示的,因?yàn)檫@個(gè)時(shí)候和值本應(yīng)為1000,,表示結(jié)果8(十進(jìn)制),,而在補(bǔ)碼中卻為-8。如果將補(bǔ)碼的頭一位都進(jìn)行重復(fù),,使其變?yōu)?位,,就可完全避免這種情況的發(fā)生。例如:
00101—11101=00101+00010+00001=00111+00001=01000
11000-00111=11000+11000+00001=10000+00001=10001
通過這樣的一個(gè)變換,,即不會(huì)產(chǎn)生溢出,,也不會(huì)產(chǎn)生錯(cuò)誤,保證了電路進(jìn)行逐級(jí)運(yùn)算的正確性,。
對(duì)應(yīng)128長的同步頭,,一個(gè)碼元采樣8個(gè)點(diǎn),經(jīng)I,、Q分路,,每一正交路為4個(gè)點(diǎn),每一路上為128×4=512個(gè)樣點(diǎn),。采用并行處理,,在數(shù)據(jù)來到之時(shí),分成四路,,每一路做一個(gè)匹配濾波器,,這樣可以直接由每個(gè)碼元對(duì)應(yīng)的樣點(diǎn)組成匹配濾波器。將四個(gè)匹配濾波器產(chǎn)生的相關(guān)值比較出最大值,,再和后邊門限比較,,超過門限,即作為同步信號(hào),。同步提取的流程如圖5所示,。
3仿真結(jié)果
同步相關(guān)峰的仿真(利用Quartus2.1軟件)如圖6和圖7所示,clk是輸入時(shí)鐘,,in是輸人數(shù)據(jù),,sclr是清零信號(hào),,out是輸出信號(hào)。
用Quartus2.1軟件編譯適配,,一片APEX EP20K400E-BC652-1X只用了百分之三十的邏輯單元就可以實(shí)現(xiàn)同步提取,。
一個(gè)完整的幀同步系統(tǒng)的工作狀態(tài)包括兩種,即捕獲狀態(tài)和鎖定狀態(tài),,并且在一定條件下使它們互相間能自動(dòng)切換,。當(dāng)幀同步信號(hào)捕捉到時(shí),幀同步系統(tǒng)應(yīng)立即由捕捉狀態(tài)轉(zhuǎn)換到鎖定狀態(tài),。同步提取完成后,,只是完成了初始同步,即同步捕獲,,還要進(jìn)行同步鎖定,,以防止假同步和漏同步的發(fā)生。限于篇幅,,這兒僅僅討論了初始同步的實(shí)現(xiàn)。
通過對(duì)幀同步提取的FPGA實(shí)現(xiàn)可以看出,,補(bǔ)碼配對(duì)相減匹配濾波法是一個(gè)很有效的方法,。它提供了一種將擴(kuò)頻碼作為同步信息進(jìn)而實(shí)現(xiàn)幀同步提取的方法,并且在很大程度上節(jié)約了FPGA的內(nèi)部資源,。這兒只是介紹了M序列碼作為同步頭的實(shí)現(xiàn)方案,,對(duì)于m序列碼作為同步頭的實(shí)現(xiàn),只要稍微做一下修改,,即加一些相應(yīng)的延時(shí)單元就可以實(shí)現(xiàn),。
參考文獻(xiàn)
1易克初.帶限時(shí)分復(fù)用傳輸方法.中國發(fā)明專利,1999年6月公布,,2001年授權(quán)
2張留安.FDMA—CWTDM衛(wèi)星通信體制中的復(fù)接分接技術(shù)及其FPGA實(shí)現(xiàn).西安:西安電子科技大學(xué)碩士論文,,2002
3侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì).西安:西安電子科技大學(xué)出版社,,2000
4徐志軍,,徐光輝.CPLD/FPGA的開發(fā)與應(yīng)用(第一版).北京:電子工業(yè)出版社,2002