一、擾碼的作用
對數(shù)字信號的比特進(jìn)行隨機(jī)處理,減少連0和連1的出現(xiàn),從而減少碼間干擾和抖動,方便接收端的時鐘提取;同時又?jǐn)U展了基帶信號頻譜,起到加密的效果。為了保證在任何情況下進(jìn)入傳輸信道的數(shù)據(jù)碼流中“0”與“1”的概率都能基本相等,傳輸系統(tǒng)會用一個偽隨機(jī)序列對輸入的傳送碼流進(jìn)行擾亂處理,將二進(jìn)制數(shù)字信息做“隨機(jī)化”處理。
二、擾碼的原理
偽隨機(jī)序列是由一個標(biāo)準(zhǔn)的偽隨機(jī)序列發(fā)生器生成的,其中“0”與“1”出現(xiàn)的概率接近50%。用偽隨機(jī)序列對輸入的傳送碼流進(jìn)行擾亂后,無論原始傳送碼流是何種分布,擾亂后的數(shù)據(jù)碼流中“0”與“1”的出現(xiàn)概率都接近50%。擾亂雖然改變了原始傳送碼流,但這種擾亂是有規(guī)律的,可以在接收端解除。將待發(fā)送的信息序列與發(fā)端產(chǎn)生的m序列進(jìn)行模二加(擾碼),擾碼序列通過傳輸信道傳送到接收端,接收端接收到擾碼序列,使用同樣的m序列進(jìn)行模二加,即可恢復(fù)原來的信息。
三、擾碼實現(xiàn)方法
1. 數(shù)學(xué)模型
擾碼模塊對每個數(shù)據(jù)塊進(jìn)行隨機(jī)化處理,隨機(jī)化序列和數(shù)據(jù)塊同步,每個數(shù)據(jù)塊都要重新初始化隨機(jī)序列,隨機(jī)化從數(shù)據(jù)塊的 MSB 位開始處理,K_BCH 位結(jié)束(K_BCH為定義的數(shù)據(jù)輸入長度)。擾碼序列的生成多項式為1+X14+X15,初始序列為100101010000000,擾碼實現(xiàn)結(jié)構(gòu)如下:
matlab代碼
根據(jù)以上結(jié)構(gòu),在matlab里產(chǎn)生偽隨機(jī)序列,函數(shù)代碼如下,其中K_BCH 為7032,為一組數(shù)據(jù)的長度,運(yùn)行得到7032長度的偽隨機(jī)序列碼。
產(chǎn)生一組隨機(jī)數(shù)據(jù),用作數(shù)據(jù)的輸入,與此同時,這個數(shù)據(jù)也被用作modelsim的數(shù)據(jù)輸入。輸入數(shù)據(jù)和m序列作模二加,即異或,進(jìn)行擾碼處理,得到最終輸出,擾碼的matlab的程序如下
3. FPGA實現(xiàn)
在FPGA內(nèi)實現(xiàn)擾碼過程的,并不復(fù)雜,主要是信號的控制,這里使用AXI總線的結(jié)構(gòu),定義模塊的輸入輸出接口如下
名稱 |
方向 |
有效狀態(tài) |
描述 |
clk |
in |
- |
時鐘,上升沿有效 |
rstn |
in |
low |
同步復(fù)位 |
s_data_tvalid |
in |
high |
輸入數(shù)據(jù)有效信號 |
s_data_tdata[0:0] |
in |
- |
數(shù)據(jù)輸入 |
s_data_tready |
out |
high |
準(zhǔn)備接收數(shù)據(jù)使能 |
s_data_tlast |
in |
high |
表示輸入最后1bit數(shù)據(jù) |
m_data_tvalid |
out |
high |
數(shù)據(jù)輸出有效信號 |
m_data_tdata[0:0] |
out |
- |
數(shù)據(jù)輸出 |
m_data_tready |
in |
high |
下一模塊接收準(zhǔn)備使能 |
m_data_tlast |
out |
high |
表示輸出最后1bit數(shù)據(jù) |
該模塊主要處理基于數(shù)據(jù)塊的操作,每個數(shù)據(jù)完成一次擾碼操作,并且每一幀的初始擾碼移位寄存器均要初始化。應(yīng)滿足的時序如下
完成的功能為偽隨機(jī)序列的產(chǎn)生和數(shù)據(jù)擾碼兩個過程,如下
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1621文章
21511瀏覽量
599070 -
無線通信
+關(guān)注
關(guān)注
58文章
4418瀏覽量
143128 -
數(shù)字信號
+關(guān)注
關(guān)注
2文章
924瀏覽量
47436 -
仿真波形圖
+關(guān)注
關(guān)注
1文章
5瀏覽量
3122
發(fā)布評論請先 登錄
相關(guān)推薦
評論