數(shù)字信號處理模塊設計與實現(xiàn)分析
時間:2022-06-17 05:28:06
導語:數(shù)字信號處理模塊設計與實現(xiàn)分析一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:針對無線通信技術(shù)的特點和某型無線通信系統(tǒng)的功能需求,基于FPGA(現(xiàn)場可編程門陣列)軟件無線電平臺,使用VHDL(硬件描述語言)設計用于某型通信系統(tǒng)的數(shù)字信號處理關鍵模塊。設計采用模塊化的設計方法,在較小的硬件平臺上實現(xiàn)系統(tǒng)的數(shù)字基帶信號處理功能,這些功能包括語音與短信的發(fā)送、短信的編解碼、系統(tǒng)工作狀態(tài)的選擇與切換,以及對外設接口的控制等。通過實驗測試了模塊的串口通信功能以及短信息和語音的組幀功能,測試結(jié)果表明,該模塊各項功能指標符合要求,可靠性高且易于升級改造,相較于同類設計有了一定的改進和提高,具有較大的實用價值。
關鍵詞:FPGA(現(xiàn)場可編程門陣列);VHDL(硬件描述語言);無線通信;數(shù)字信號處理;編譯碼
為了滿足社會的需求,各種新技術(shù)新方法不斷地被提出,通信系統(tǒng)的功能變得越來越多樣,結(jié)構(gòu)也越來越復雜[1],這就對通信系統(tǒng)的設計提出了新的要求。而隨著半導體工藝技術(shù)的進步,F(xiàn)PGA(現(xiàn)場可編程門陣列)器件的設計技術(shù)也取得了飛躍性的突破,與傳統(tǒng)數(shù)字電路相比,F(xiàn)PGA具有集成度高、開發(fā)周期短、硬件升級空間大、數(shù)據(jù)吞吐量大等優(yōu)點[2],因此FPGA在通信系統(tǒng)的設計中得到了廣泛的應用,這些應用主要集中在接口設計、數(shù)字濾波、調(diào)制解調(diào)及編解碼等方面,而目前的大多數(shù)設計只是完成其中的某一項功能,并沒有充分利用FPGA的資源[3]。在這種背景下,同時為滿足某型通信系統(tǒng)的數(shù)字信號基帶處理模塊化設計需求,本文基于軟件無線電設計平臺,選用大規(guī)模FPGA器件,使用VHDL(硬件描述語言)設計了用于某型無線通信系統(tǒng)的數(shù)字信號處理關鍵模塊,在較小的硬件平臺上通過軟件設置實現(xiàn)了語音與短信的發(fā)送、短信的編解碼、中繼功能控制、系統(tǒng)工作狀態(tài)的選擇與切換,以及對外設接口的控制等功能。仿真及測試結(jié)果表明,該數(shù)字信號處理模塊性能良好、可靠性高、使用靈活、功能可擴展且易于升級改造,降低了系統(tǒng)的復雜度[4,5],具有較大的實用價值。
1系統(tǒng)整體方案設計
該型無線通信系統(tǒng)設計的整體構(gòu)成如圖1所示,設計采用模塊化結(jié)構(gòu),模塊之間通過數(shù)字總線相連。其中,射頻模塊提供系統(tǒng)的調(diào)制解調(diào)及前端處理(接收的前放、發(fā)射的功放、濾波等),射頻前端模塊還包括接地偶極子,作為信號發(fā)射接收的天線;系統(tǒng)控制/顯示模塊提供系統(tǒng)的控制輸入和狀態(tài)顯示,包括短信息的輸入和輸出顯示,同時也提供鍵盤及液晶顯示器等外設;電源模塊可以通過電池和外部電源輸入提供系統(tǒng)各模塊的電源;手咪為語音信號的信源和信宿。數(shù)字信號處理模塊是無線通信系統(tǒng)的核心部分,模塊采用軟件無線電設計思想,具有較強的數(shù)字信號處理能力[4]。該模塊獨立安裝于通信系統(tǒng)內(nèi)部,與射頻前端模塊通過發(fā)射信號射頻電纜、接收信號射頻電纜以及收發(fā)控制線相連接,與通信系統(tǒng)其它部分則是通過數(shù)字總線的方式相連接。圖2為數(shù)字信號處理模塊的功能框圖,主要包括發(fā)送和接收處理模塊,編譯碼模塊以及對外接口模塊,實現(xiàn)系統(tǒng)的包括通信幀幀頭的解析、同步、短信編解碼以及系統(tǒng)工作狀態(tài)的選擇與切換等數(shù)字基帶信號處理功能。
2硬件電路設計
為了便于調(diào)試以及后期升級,F(xiàn)PGA及其配置單元,包括獨立電源模塊,LED指示單元,時鐘單元,復位單元以及程序下載調(diào)試接口等放置在一塊電路板上,這里稱之為數(shù)字核心處理板,簡稱核心板,是數(shù)字信號處理模塊的載體,負責完成模塊的全部數(shù)字信號處理功能,包括通信幀幀頭的解析、同步、短信編譯碼等,并提供了外部通信的接口,是系統(tǒng)的核心部件,核心處理板通過兩塊DIN96歐式插座與主板相連接。主板為系統(tǒng)的主功能板,主要搭載系統(tǒng)的模擬電路部分,是核心板與整個通信系統(tǒng)連接的橋梁,主板在發(fā)射時完成語音和短信信號的放大、整形與選通,在接收時完成語音和短信信號的AD變換、放大與選通。根據(jù)實際需求,核心板上搭載的是Intel的CycloneⅢ型FPGA,其配置芯片選用EPCS16N。圖3是核心處理板的頂層電路圖。
3FPGA系統(tǒng)設計
3.1通信幀結(jié)構(gòu)。本設計中系統(tǒng)通信采用組幀的方式,組幀的類型主要包括常規(guī)語音幀、常規(guī)短信幀以及控制信息幀等。(1)語音信息組幀語音信息的發(fā)射采用模擬數(shù)據(jù)幀的方式,即有數(shù)字化的幀頭和幀尾,但幀的內(nèi)容為模擬調(diào)制的語音信號,每幀的長度是不確定的,具體時間以一次有效發(fā)射為準,即從按下發(fā)射按鈕到松開發(fā)射按鈕的整個時間。其中,保護幀頭是一段連續(xù)的“01”chip,速率為1ms/chip,用于后續(xù)幀頭檢測門限的確定,同時作為發(fā)射啟動的保護時間。語音幀頭和語音幀尾都是一段32chip的M序列(最長線性移位寄存器序列),M序列是一種應用廣泛的偽隨機序列,它容易產(chǎn)生且規(guī)律性強,具有很好的自相關性和較好的互相關性[6,7]。語音幀頭和語音幀尾分別是語音信號開始和結(jié)束的標志。語音信息為正常發(fā)送的語音信號,保護幀頭、語音幀頭和幀尾是在通信過程中添加的,語音通信為按講(pushtotalk,PTT)方式,按下發(fā)射按鈕,則保護幀頭和語音幀頭發(fā)出,松開發(fā)射按鈕,則語音幀尾發(fā)出[8]。表1為部分碼字的功能。(2)短信息組幀圖5是短信息的組幀結(jié)構(gòu)示意圖,保護幀頭和語音幀一樣,是一段持續(xù)120ms-150ms的“01”序列,短信幀頭是短信信號開始的標志。短信息段包括地址段、標志段、信息段以及校驗段,具體信息見表2,其中,地址段以4比特數(shù)據(jù)作為短信發(fā)射/接收地址,系統(tǒng)保留為“0000”;標志段以4比特數(shù)據(jù)作為業(yè)務短信字段,它標志著后面信息段的性質(zhì);信息段是16比特的數(shù)據(jù),是短信息的具體內(nèi)容;校驗段是8比特的數(shù)據(jù),用于短信息內(nèi)容糾錯。3.2發(fā)送處理模塊。發(fā)送處理模塊主要功能為對語音及短信息信號進行組幀及擴頻處理并發(fā)送給射頻單元,主要包括以下幾個功能塊:(1)語音幀頭、幀尾及短信幀頭識別碼的添加主要功能是在模擬語音信號之前、之后以及短信息之前添加數(shù)字幀頭識別碼并發(fā)送,其中語音幀頭識別的規(guī)格選用32比特M偽隨機序列,設計碼片速率為1Kbps,波形成形方式為方波。(2)短信息擴頻調(diào)制該功能主要是將編碼后的32比特短信息從高位到低位逐位進行擴頻調(diào)制并發(fā)送,擴頻碼選用32比特M偽隨機序列,碼片速率設計為1Kbps,信息速率為32比特/s,波形成形方式為方波。(3)發(fā)送控制該模塊通過使能信號對上述功能模塊進行選擇和控制,并對發(fā)送信號進行時序控制。其中,語音信號的發(fā)送流程如圖6所示,首先檢查系統(tǒng)的當前狀態(tài),當系統(tǒng)正在接收信號時,不允許發(fā)送操作,其次判斷PTT發(fā)射按鈕是否有效,有效時則首先發(fā)送語音幀頭識別碼,發(fā)送完畢后打開模擬語音通路,發(fā)送模擬語音信號,當再次檢測到PTT按鍵電平跳變時說明語音發(fā)送已結(jié)束,此時程序關閉模擬語音通路,并隨后發(fā)送語音幀尾識別碼。短信息的發(fā)送流程相對簡單一些,當檢測到短信息發(fā)送請求后,系統(tǒng)開始接收編碼后的32比特短信息,隨后短信幀頭識別碼與32比特短信息形成組幀,并對組幀進行擴頻調(diào)制然后發(fā)送,發(fā)送完成后,給出發(fā)送成功標志,系統(tǒng)恢復到初始狀態(tài)。3.3接收處理模塊。接收處理模塊用于信號的捕獲、跟蹤同步以及接收,主要包括下采樣處理、動態(tài)門限計算、幀頭幀尾識別碼捕獲、短信息跟蹤解擴以及接收控制等功能。3.3.1下采樣處理。為保證信號處理精度,接收端AD采樣使用32倍過采樣,但是如果使用32倍過采樣的信號進行捕獲則將大大增加系統(tǒng)復雜度,這是不必要的。因此在接收端捕獲處理之前先要對信號進行下采樣,用下采樣之后的信號進行捕獲處理。下采樣處理分為兩步:首先是低通濾波,然后是2比1的抽取。對信號進行數(shù)字低通濾波的目的是使下采樣后的信號滿足低通采樣定理,避免混疊。這里使用一個窗函數(shù)數(shù)字低通濾波器,采用哈明窗,階數(shù)為60階。實現(xiàn)低通濾波通帶截止頻率為6KHz,阻帶衰減為-60dB。最后,對低通濾波后的樣點數(shù)據(jù)進行2比1的抽取,實現(xiàn)2比1下采樣[9]。3.3.2動態(tài)門限計算。在對信號進行捕獲和跟蹤時,要對信號的相關峰進行判決,這個判決門限不能是一成不變的,需要根據(jù)信號能量大小進行調(diào)整,否則在信號幅度變化的時候就有可能出現(xiàn)漏捕和誤捕。因此,就需要根據(jù)信號能量大小動態(tài)計算判決門限。在本系統(tǒng)中,一個碼元周期為32ms,因此動態(tài)門限必須在系統(tǒng)初始化之后32ms以內(nèi)建立起來,以保證第一個碼元周期結(jié)束時不出現(xiàn)錯捕。所以,這里設計的動態(tài)門限計算時間為16ms,即每統(tǒng)計16ms的信號能量后計算出門限并進行更新。3.3.3幀頭幀尾的捕獲及短信息跟蹤解擴。幀頭幀尾包括語音的幀頭、幀尾及短信息的幀頭,捕獲方法采用滑動相關器進行滑動相關匹配,一旦出現(xiàn)相關峰即判斷為捕獲成功。捕獲到短信息幀頭識別碼后,需要對32比特的短信息進行跟蹤和解擴,跟蹤的目的是為了避免頻偏的積累導致失同步,跟蹤的方法是采用早遲環(huán)路。早碼環(huán)和遲碼環(huán)分別比跟蹤環(huán)早和遲半個碼片。當早環(huán)和遲環(huán)相關峰相等時,跟蹤環(huán)輸出最大相關峰;當早環(huán)和遲環(huán)相關峰不相等時,根據(jù)其差值的大小調(diào)節(jié)跟蹤環(huán)的位置,直到使跟蹤環(huán)相關峰達到最大。同步跟蹤之后即可進行信息解擴,解調(diào)出32比特短信息,送給譯碼模塊。3.3.4接收控制。接收控制模塊與發(fā)射控制模塊類似,模塊通過使能信號對其它功能模塊進行控制,并對接收信號進行時序控制。圖7分別為語音與短信息的接收流程。3.4編譯碼模塊。編碼包括短信息的信源編碼和信道編碼,最終組成32比特的發(fā)送幀格式。譯碼包括信道譯碼和糾檢錯,以及信源譯碼和系統(tǒng)狀態(tài)控制。短信息幀的格式如圖8所示。信源編碼是對外部接口模塊接收到的信息命令(如鍵盤輸入等)進行編碼,差生幀格式的標志段、地址段和信息段[8,9]。其中,標志段是短信息的功能標示,即表示短信息是常規(guī)短信還是特殊功能短信(如控制命令)。地址段是區(qū)分不同端機的地址碼。信息段是用來傳輸常規(guī)信息和特殊功能命令的,其中,常規(guī)信息采用BCD碼編碼,16比特的二進制數(shù)可以傳輸四位十進制數(shù),即可傳輸1000條不同功能的短信命令[10]。信道編碼采用RS碼(Reed-Solomoncodes),RS碼是一種前向糾錯的信道編碼,屬于多元BCH碼,對于連續(xù)二進制比特的錯誤有較好的糾錯能力且實時性較好。本系統(tǒng)采用16元的(6,4)RS碼編碼,即每4個比特是一個RS碼符號,在24比特信息后添加8個比特的糾錯位,即兩個糾錯符號。在譯碼時,可以糾正一個符號的錯誤,也就是說即使某個符號4比特二進制信息全部傳錯,也可以通過RS譯碼實現(xiàn)糾正[11]。經(jīng)過信源和信道編碼后,即可產(chǎn)生32比特的待發(fā)送信息,待發(fā)送信息將傳送給發(fā)送處理模塊,處理后發(fā)給射頻單元。同樣,接收模塊也將接收到的32比特信息傳送給譯碼模塊進行譯碼,并對譯碼后的信息進行分析,將常規(guī)短息送給液晶屏顯示,對特殊功能短信進行相應的響應并改變系統(tǒng)狀態(tài)。3.5對外接口模塊。對外接口模塊主要包括液晶顯示屏和矩陣鍵盤的連接接口以及對其它外部模塊的控制接口。在系統(tǒng)測試中,采用RS232接口與計算機互聯(lián)實現(xiàn)液晶顯示屏和矩陣鍵盤的連接功能,因此接口模塊就是兩個基于UART協(xié)議的串行接口,一個與計算機串口互聯(lián)完成短信息的編寫與顯示,另一個與其它系統(tǒng)模塊互聯(lián)實現(xiàn)功能控制。
4系統(tǒng)測試
4.1RS232串口通信功能測試。測試針對系統(tǒng)的對外接口模塊,使用串口助手模擬上位機向核心板發(fā)送控制指令“0x040000”,F(xiàn)PGA通過其內(nèi)部串口模塊接收到這段指令之后,將依據(jù)程序設定通過串口模塊返回“0x050000”給串口助手。測試通過QuartusⅡ軟件自帶的SignalTap嵌入式邏輯分析儀進行。SignalTap不同于仿真軟件,它是一種系統(tǒng)級調(diào)試工具,通過軟件設置,選擇需要捕獲的信號及數(shù)據(jù)樣本量,這些信息隨主程序一起編譯并下載到FPGA上,相當于在器件內(nèi)部嵌入了一個示波器,在進行相應觸發(fā)條件的設置后,就可以捕獲和顯示器件內(nèi)部的實時信號,需要注意的是,由于邏輯分析儀需要占用FPGA的邏輯資源,因此加入觀察的信號不宜過多。圖9是串口發(fā)送和接收數(shù)據(jù)的實時采集,由圖可以看到,在發(fā)送過程中,指令“0×040000”被分為3個8比特的數(shù)據(jù)包發(fā)送出去,每個數(shù)據(jù)包低位在前,高位在后。從接收數(shù)據(jù)過程的捕獲測試圖可以看到,返回的數(shù)據(jù)是“0×050000”,與程序設定相同。4.2短信及語音組幀測試。測試時,使用串口助手將代表特定信息的指令發(fā)送給FPGA,邏輯分析儀觸發(fā)后會捕獲FPGA輸出的信號。圖中第一個信號是系統(tǒng)的最終輸出,該信號會被傳輸至射頻前端進行調(diào)制并最終發(fā)射出去;第二行是短信幀頭,包括一段120ms的保護幀頭和短信幀頭識別碼,其它信號為輔助觀察的計數(shù)信號。短信幀部分是已經(jīng)經(jīng)過擴頻調(diào)制處理的,經(jīng)過比對,與程序設定相符。圖11為語音組幀測試。測試時,首先按下外部PTT按鍵,此時系統(tǒng)會立即輸出數(shù)字保護幀頭和語音幀頭識別碼,之后會打開模擬語音開關輸出模擬調(diào)制的語音信號,這段時間FPGA是沒有輸出的。語音輸入結(jié)束后,松開PTT按鍵,系統(tǒng)輸出語音幀尾識別碼,表示一次語音輸入已結(jié)束。通過觀察圖11抓取的實時信號可以看到,系統(tǒng)反應與程序設定是一致的。圖12為測試時的硬件環(huán)境。
5結(jié)束語
本文基于軟件無線電設計平臺,選用大規(guī)模可編程邏輯器件,使用硬件描述語言,采用軟件無線電設計思想設計了用于某型無線通信系統(tǒng)上的數(shù)字信號處理關鍵模塊,在較小的硬件平臺上通過軟件設置實現(xiàn)了語音信息的發(fā)送與接收、短報文信息的發(fā)送與接收、短報文信息的編解碼及系統(tǒng)模式切換等功能,節(jié)約了大量的硬件資源,提高了系統(tǒng)的實時性能。經(jīng)測試,該模塊性能良好、使用靈活、可靠性高而且功能易于擴展,具有較大的實用價值。
作者:李聰 向新 王瑞 孫曄 單位:空軍工程大學