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