基于FPGA的通信系統(tǒng)同步提取的實(shí)現(xiàn)
配對之后,對各個組合對應(yīng)的輸入移位樣點(diǎn)數(shù)據(jù)做補(bǔ)碼減法運(yùn)算。例如在組合(1,8)中,當(dāng)樣點(diǎn)數(shù)據(jù)進(jìn)入移位寄存器時,將對應(yīng)移位寄存器中的并行第一位輸出作為被減數(shù),第8位輸出作為減數(shù)。其它組合類似。當(dāng)樣點(diǎn)數(shù)據(jù)中的同步頭完全進(jìn)入移位寄存器時,那么對應(yīng)并行輸出的第一位應(yīng)該是正值,而第8位對應(yīng)的是負(fù)值。兩個輸出做補(bǔ)碼相減。正值減去一個負(fù)值,輸出得到一個更大的數(shù)值。這時,只有增加運(yùn)算的位數(shù),才能得到正確的運(yùn)算結(jié)果。
對128個編號可以做64個配對,這就需要64個減法器。64個減法運(yùn)算同時進(jìn)行,有64個輸出結(jié)果。然后利用32個加法器對64個數(shù)值進(jìn)行加法運(yùn)算。逐級進(jìn)行相加運(yùn)算,最后得到一個相關(guān)峰值。假設(shè)data(n)是16bit的信息數(shù)據(jù),在逐級相加運(yùn)算當(dāng)中,不是直接采用這16位進(jìn)行補(bǔ)碼減法和補(bǔ)碼加法運(yùn)算,而是隨著一級級的相加運(yùn)算,位數(shù)也一位一位地增加。這樣就優(yōu)化了電路,節(jié)省了FPGA資源。
假設(shè)一個碼元采樣8個點(diǎn),經(jīng)I、Q分路(以QPSK調(diào)制為例)之后,每一正交路為4個點(diǎn)。相對于(1,8)配對,在第一個補(bǔ)碼配對減法器中對應(yīng)的是{t13,t1[3..0]}和{t83,t8[3..0]};相對應(yīng)(2,11)配對,在電路中對應(yīng)的是{t23,t2[3..0]}和{ta13,ta1[3..0]};依此類推。
下面有必要分析一下為什么要表示成{t13,t1[3..0]}的形式。在補(bǔ)碼運(yùn)算中,由0101-1101=0101+0010+0001=0111+0001可以看到0111+0001的和值是一個更大的正值,是不能用4位表示的,因?yàn)檫@個時候和值本應(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 通過這樣的一個變換,即不會產(chǎn)生溢出,也不會產(chǎn)生錯誤,保證了電路進(jìn)行逐級運(yùn)算的正確性。
對應(yīng)128長的同步頭,一個碼元采樣8個點(diǎn),經(jīng)I、Q分路,每一正交路為4個點(diǎn),每一路上為128×4=512個樣點(diǎn)。采用并行處理,在數(shù)據(jù)來到之時,分成四路,每一路做一個匹配濾波器,這樣可以直接由每個碼元對應(yīng)的樣點(diǎn)組成匹配濾波器。將四個匹配濾波器產(chǎn)生的相關(guān)值比較出最大值,再和后邊門限比較,超過門限,即作為同步信號。同步提取的流程如圖5所示。
3 仿真結(jié)果
同步相關(guān)峰的仿真(利用Quartus2.1軟件)如圖6和圖7所示,clk是輸入時鐘,in是輸入數(shù)據(jù),sclr是清零信號,out是輸出信號。
用Quartus2.1軟件編譯適配,一片APEX EP20K400EBC652-1XEP20K400EBC652-1X只用了百分之三十的邏輯單元就可以實(shí)現(xiàn)同步提取。
一個完整的幀同步系統(tǒng)的工作狀態(tài)包括兩種,即捕獲狀態(tài)和鎖定狀態(tài),并且在一定條件下使它們互相間能自動切換。當(dāng)幀同步信號捕捉到時,幀同步系統(tǒng)應(yīng)立即由捕捉狀態(tài)轉(zhuǎn)換到鎖定狀態(tài)。同步提取完成后,只是完成了初始同步,即同步捕獲,還要進(jìn)行同步鎖定,以防止假同步和漏同步的發(fā)生。限于篇幅,這兒僅僅討論了初始同步的實(shí)現(xiàn)。 通過對幀同步提取的FPGA實(shí)現(xiàn)可以看出,補(bǔ)碼配對相減匹配濾波法是一個很有效的方法。它提供了一種將擴(kuò)頻碼作為同步信息進(jìn)而實(shí)現(xiàn)幀同步提取的方法,并且在很大程度上節(jié)約了FPGA的內(nèi)部資源。這兒只是介紹了M序列碼作為同步頭的實(shí)現(xiàn)方案,對于m序列碼作為同步頭的實(shí)現(xiàn),只要稍微做一下修改,即加一些相應(yīng)的延時單元就可以實(shí)現(xiàn)。
評論