基于FPGA的CDMA調制/解調模塊設計
2.1 發射單元設計
發射單元主要包括偽隨機序列碼模塊(PN 碼發生器),擴頻模塊,BPSK調制模塊。
2.1.1 PN碼發生器
PN碼發生器采用m序列發生器的原理,m序列式最長線性移位寄存器,是由移位寄存器加反饋后形成的。一個線性反饋移存器能產生m 序列的充分必要條件為:期特征多項式為本原多項式。本設計設計了一個7 級周期為127 的發生器,所選用的本原多項式為f (x) = 1 + x + x2 + x6,使用VHDL語言編寫。
2.1.2 擴頻模塊
將PN碼發生器生成的m序列與輸入的數字信號進行異或,完成擴頻功能。擴頻模塊的RTL圖如圖5所示。

圖5 擴頻模塊RTL圖
2.1.3 BPSK調制模塊
調制模塊選擇了具有恒包絡特性的BPSK調制,它是通過基帶信號控制載波的相位,使得載波相位發生跳變的一種調制方式。當碼元為‘1’時,調制后相位變為180°,當碼元為‘0',時,調制后相位變為0°,為此設計了BPSK 調制模塊,設計例化了兩個ROM,通過Matlab 生成。mif文件用來存放0°和180°的數據,另外還有地址選擇器,數據選擇器。
整個發射端的仿真圖如圖6所示,clk為系統時鐘,clk_bpsk 為進行BPSK 調制的時鐘,datain 為輸入數據,m_out 為生成的m 序列,spre_out 為擴頻后 的波形,bpsk_out為BPSK調制后的輸出。從結果可以明顯地看出輸出信號有兩次相位變化,一次是從0°~180°的跳變,另一次是從180°~0°的跳變,可以看到數據被正確的調制。

圖6 發射單元仿真圖
2.2 接收單元設計
為了驗證設計系統的可行性,系統里設計了BPSK解調和解擴模塊,并將發射端調制好的數據直接作為接收端的輸入數據。BPSK 解調模塊里同樣例化了一個ROM,存儲了相位為0°的數據,將通過載波同步后的數據與ROM的輸出數據進行相乘,然后進行抽樣判決,判決結果如圖7所示,圖中spre_out為發射端擴頻完的數據,sam_out 為進行抽樣判決后并延時了70 個clk_bpsk,目的是為了將數據恰好在數據始終的上升沿,p_out表示開始進行解調輸出,從圖中可以看出判決延時后的數據恰好與擴頻后的數據完全相同,只是延時了一段時間表示解調時間。

圖7 BPSK解調模塊結果圖
假設解擴模塊里已進行PN 碼的同步,此處只 是進行了一定時間的延時,使其恰好與發射端PN 碼相同,然后與BPSK 解調后的數據進行異或,得到輸出數據,結果如8 所示,sp_end 為解擴完的數據,p_end 為標志位表示開始進行解擴,datain 為輸入的原始數據,從圖中可以看出解擴的數據域最初的原始輸入數據相同,只是有一段時間的延時,可看出系統進行了正確的解調。

圖8 解調仿真圖
3 結語
本文設計了一個基于FPGA 的直接序列擴頻系統的水聲通信調制/解調系統,目的在于使水聲無線通信中具有更強的抗干擾性和保密性,系統中包含了信號的擴頻及BPSK 調制以及相應的解調模塊,并且在Modelsim 仿真軟件上驗證成功。雖然BPSK 調制相對于2FSK,2ASK 具有帶寬窄、頻率高、抗干擾性強等優點,廣泛的應用于中高速通信中。但是在更高速的通信系統中,BPSK調制已經不能滿足頻帶利用率和系統的有效性等要求,故基本采用多進制調相系統。此外,絕對調相系統會產生倒相現象,因此應該考慮采用相對相位調相系統,基于該思路的水聲無線通信一定會有更好的應用前景。
評論