基于FPGA的QPSK高速數(shù)字調(diào)制系統(tǒng)的研究與實(shí)現(xiàn) 作者: 時(shí)間:2007-03-09 來(lái)源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對(duì)面交流海量資料庫(kù)查詢 收藏 摘要:介紹了一種基于FPGA的QPSK的高速數(shù)字調(diào)制系統(tǒng)的實(shí)現(xiàn)方案。先從調(diào)制系統(tǒng)的基本框圖入手,簡(jiǎn)要介紹其實(shí)現(xiàn)原理及流程;然后著重介紹FPGA功能模塊的軟件編程、優(yōu)化及整個(gè)系統(tǒng)的性能。 關(guān)鍵詞:FPGA QPSK 直接序列擴(kuò)頻 高速調(diào)制 1 系統(tǒng)實(shí)現(xiàn)原理及流程 本調(diào)制系統(tǒng)的設(shè)計(jì)目的是實(shí)現(xiàn)高速數(shù)字圖像傳輸。系統(tǒng)的硬件部分主要包括FPGA、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、正交調(diào)制器、輸出電路等。根據(jù)數(shù)字圖像傳輸?shù)奶攸c(diǎn),采用擴(kuò)頻調(diào)制技術(shù)。這是因?yàn)閿U(kuò)頻方式的抗干擾、抗衰落及抗阻塞能力強(qiáng),而且擴(kuò)頻信號(hào)的功率譜密度很低,有利于隱蔽。同時(shí),為了提高數(shù)據(jù)傳輸?shù)目煽啃院陀行?,降低信?hào)失真度,減少碼間干擾,在調(diào)制系統(tǒng)中還加入編碼、交比例中項(xiàng)及匹配濾波。這些處理都在FPGA中實(shí)現(xiàn),使整個(gè)調(diào)制系統(tǒng)具有可編程的特點(diǎn),易于根據(jù)實(shí)際要求進(jìn)行功能上的擴(kuò)展和縮減。系統(tǒng)的原理框圖如圖1所示。電路的具體工作過(guò)程為:圖像信號(hào)經(jīng)過(guò)A/D轉(zhuǎn)換器AD9214完成模/數(shù)轉(zhuǎn)換,輸出信號(hào)送入FPGA。由FPGA對(duì)信號(hào)進(jìn)行編碼、交織、串/并變換、擴(kuò)頻調(diào)制及匹配濾波。FPGA輸出兩路數(shù)字信號(hào),經(jīng)過(guò)雙D/A轉(zhuǎn)換器AD9763實(shí)現(xiàn)數(shù)/模轉(zhuǎn)換,輸出兩路模擬信號(hào)。這兩路信號(hào)經(jīng)過(guò)正交調(diào)制器AD8346正交調(diào)制輸出,實(shí)現(xiàn)QPSK調(diào)制。因?yàn)檎徽{(diào)制器輸出的信號(hào)功率較小,所以將其經(jīng)過(guò)模擬放大器放大和帶通濾波,之后再送到輸出。 在整個(gè)調(diào)制系統(tǒng)中,F(xiàn)PGA模塊的軟件設(shè)計(jì)是最為重要的,也是進(jìn)行系統(tǒng)優(yōu)化的主要部分,它的優(yōu)劣會(huì)直接影響整個(gè)系統(tǒng)的性能。下面對(duì)這部分進(jìn)行詳細(xì)的介紹。2 軟件部分實(shí)現(xiàn)原理 FPGA模塊的軟件設(shè)計(jì)部分包括以下幾個(gè)方面:編碼、交織、串并變換、擴(kuò)頻、匹配濾波以及復(fù)位和時(shí)鐘。 2.1 編碼和交織 數(shù)字通信中經(jīng)常使用信道編碼加交織模塊來(lái)提高數(shù)據(jù)傳輸?shù)目煽啃院陀行浴? 為了達(dá)到一定的增益要求,選擇卷積碼中純編碼增益為3.01的(1,1,6)碼(在大信噪比下),并對(duì)其進(jìn)行增信刪余。這樣既可以發(fā)揮(2,1,6)碼純編碼增益大、能夠解決接收信道符號(hào)極性上的模糊性、實(shí)現(xiàn)最佳和準(zhǔn)最佳譯碼容易的良好性能,又能提高信道編碼的碼速率。該碼增信刪余成為2/3碼率的碼,最佳生成多項(xiàng)式為(171,133)(八進(jìn)制),即: G(D)=[1+D2+D5+D6+D3 1+D+D2+D3+D6]。由生成多項(xiàng)式可得到編碼框圖(如圖2所示)。在刪除比特分布圖中,“1”表示這位不刪除,“0”表示這位刪除。交織是將數(shù)據(jù)的序列打亂,使交織前后數(shù)據(jù)序列的相關(guān)性減弱,這樣可以大大降低數(shù)據(jù)突發(fā)錯(cuò)誤產(chǎn)生的影響。而且,如果交織器設(shè)計(jì)良好,那么傳送時(shí)的突發(fā)錯(cuò)誤將隨機(jī)地分布,這樣采用編譯碼技術(shù)就更容易糾正。交織技術(shù)主要分為塊交織和卷積交織。因?yàn)楸鞠到y(tǒng)的數(shù)據(jù)分幀傳輸,所以交織部分選用塊交織,一幀數(shù)據(jù)為1764個(gè)bit,交織塊為42bit%26;#215;42bit。 2.2 串/并變換及擴(kuò)頻模塊 經(jīng)過(guò)交織器輸出的數(shù)據(jù)為一路串行數(shù)據(jù),要實(shí)現(xiàn)QPSK正交調(diào)制必須產(chǎn)生兩路并行數(shù)據(jù),因此需要進(jìn)行串/并變換。輸入端口每輸入兩比特?cái)?shù)據(jù),兩個(gè)輸出端口同時(shí)輸出一比特?cái)?shù)據(jù)。串/并變換的輸出數(shù)據(jù)要進(jìn)行擴(kuò)頻調(diào)制,每輸入兩比特的信息時(shí)便輸出與之對(duì)應(yīng)的一組64位PN序列。擴(kuò)頻序列應(yīng)具有良好的偽隨機(jī)特性和相關(guān)特性,擴(kuò)頻通信系統(tǒng)的許多優(yōu)異特性都與擴(kuò)頻碼的設(shè)計(jì)密切相關(guān)。這里選擇平衡Gold碼序列作為系統(tǒng)的擴(kuò)頻序列。Gold碼繼承了m序列的許多優(yōu)點(diǎn),而可用的條數(shù)又遠(yuǎn)遠(yuǎn)大于m序列,是作為擴(kuò)頻碼的良好碼型。 2.3 濾波模塊 擴(kuò)頻以后的碼元為方波,其頻譜是無(wú)限寬的,通過(guò)有限帶寬的信道傳輸,方波會(huì)在時(shí)間上擴(kuò)展,造成碼間干擾,導(dǎo)致接收機(jī)在檢測(cè)一個(gè)碼元時(shí)發(fā)生錯(cuò)誤的概率增大。所以在調(diào)制系統(tǒng)中需要對(duì)信號(hào)進(jìn)行濾波,以減少失真和符號(hào)間干擾(ISI)。在這里,選擇具有均方升余弦滾降特性的濾波器。具有升余滾降特性的H(ω)可表示為: 發(fā)送濾波器的頻率響應(yīng)為GT(f),接收端濾波器的頻率響應(yīng)為GR(f),則GT(f)%26;#183;GR(f)=H(ω)。對(duì)于線性相位的FIR濾波器來(lái)說(shuō),使用窗函數(shù)法,則發(fā)送端匹配濾波器的傳輸函數(shù)為: 取不同的窗函數(shù),濾波器的頻譜特性不同。這里選擇哈明窗作為窗函數(shù),這樣可以避免產(chǎn)生吉布斯現(xiàn)象。取滾降系數(shù)α=0.4,抽樣步長(zhǎng)Ts=Tc/6,階數(shù)N=48。圖3為濾波器頻譜特性的仿真結(jié)果。 2.4 時(shí)鐘和復(fù)位模塊 整個(gè)系統(tǒng)都是在時(shí)鐘的控制下進(jìn)行工作的。系統(tǒng)外部有一個(gè)時(shí)鐘源,通過(guò)芯片內(nèi)部的CLKPLL模塊對(duì)外部時(shí)鐘進(jìn)行倍頻,然后根據(jù)FPGA各個(gè)模塊的需要進(jìn)行分頻。系統(tǒng)在加電時(shí)需要對(duì)信號(hào)和變量進(jìn)行初始化,特別是當(dāng)信號(hào)和變量的初始值不為零時(shí),復(fù)位模塊就不可缺少。圖33 具體實(shí)現(xiàn)及技巧 3.1 編碼模塊的簡(jiǎn)化 在編碼過(guò)程中,使用(2,1,6)碼進(jìn)行編碼,刪去編碼輸出第四位。經(jīng)過(guò)仔細(xì)的研究發(fā)現(xiàn),由于數(shù)據(jù)是分幀傳輸?shù)?,所以刪去哪一位并不重要,只要能保證幀頭和相應(yīng)的數(shù)據(jù)位對(duì)齊,在解卷積的時(shí)候就能得到正確的結(jié)果。這樣就使得編碼的程序得到簡(jiǎn)化。例如,編碼后,刪余前的數(shù)據(jù)為1,2,3,4,5,6,7,8,9,10,11,12,幀頭與數(shù)據(jù)1對(duì)齊。刪除第四位后成為1,2,3,5,6,7,9,10,11。在接收端,補(bǔ)位后的數(shù)據(jù)為1,2,3,X,5,6,7,9,10,11,X。要正確解調(diào)為1,2,3,4,5,6,7,8,9,10,11,12。若刪除第三位,則成為1,2,4,5,6,8,9,10,12。若幀頭與數(shù)據(jù)1之前的那一位(假設(shè)為0)對(duì)齊,則補(bǔ)位后的數(shù)據(jù)為0,1,2,X,4,5,6,X,8,9,10,X,12;亦可正確解調(diào)。所以在編寫程序的時(shí)候,可以根據(jù)輸入信號(hào)和輸出信號(hào)時(shí)鐘之間的關(guān)系,選擇最簡(jiǎn)單的刪除位,然后調(diào)整幀頭的位置,就可以實(shí)現(xiàn)接收端所要求的對(duì)第4位的刪除。 3.2 交織模塊的優(yōu)化設(shè)計(jì) 交織分為兩個(gè)模塊:寫入模塊和讀出模塊,二者共用一個(gè)存儲(chǔ)模塊。存儲(chǔ)模塊的大小為1764bit,42行%26;#215;42列。首先,寫入模塊從第1行開始按行寫入,在寫完第41行后,讀出模塊從第1列開始按列逐列讀出,直至讀完所有列,改換成按行讀出,寫入模塊在寫完第42行以后,改換成按列寫入。這樣,交織模塊的延時(shí)約為(1764-42)/576K=2.99ms(576k為時(shí)鐘頻率)。無(wú)論讀模塊還是寫模塊,在完成一整塊數(shù)據(jù)的操作以后,改變讀寫方式(行換列,列換行),這樣做的目的是為了節(jié)省存儲(chǔ)容量。因?yàn)镕PGA內(nèi)部的存儲(chǔ)器容量有限,用相對(duì)復(fù)雜的地址計(jì)算,來(lái)?yè)Q取占用較小的存儲(chǔ)容量。圖43.3 濾波器的優(yōu)化設(shè)計(jì) 濾波器的傳輸函數(shù)選擇好后,通過(guò)Matlab計(jì)算濾波器的各個(gè)抽頭系數(shù),然后將抽頭系數(shù)量化為16位的二進(jìn)制定點(diǎn)數(shù),寫成一個(gè)VHDL可調(diào)用的包文件。 實(shí)現(xiàn)對(duì)信號(hào)的濾波,實(shí)際上就是完成每個(gè)信號(hào)和各個(gè)抽頭系數(shù)之間的加乘運(yùn)算。由于濾波器的輸入為1或0,故加乘運(yùn)算可簡(jiǎn)化為抽頭系數(shù)之間的加減運(yùn)算。具體實(shí)現(xiàn)時(shí),48階的濾波器是由48個(gè)相似的小模塊級(jí)聯(lián)而成的,每一個(gè)小模塊有四個(gè)輸入,一個(gè)輸出。四個(gè)輸入分別為時(shí)鐘clk、數(shù)據(jù)data、復(fù)位信號(hào)rst和前一個(gè)小模塊的輸出preout。復(fù)位信號(hào)rst初始化后,在時(shí)鐘的控制下讀入data和preout,根據(jù)data的極性決定對(duì)preout加上還是減去包文件中與此模塊對(duì)應(yīng)的濾波器的系數(shù),將運(yùn)算結(jié)果輸出,作為下一級(jí)的preout。級(jí)聯(lián)時(shí),采用倒置的連接方式,即輸入的數(shù)據(jù)data將同時(shí)到達(dá)每一個(gè)小模塊,這樣就不存在抽頭時(shí)延,其時(shí)延存在于加法鏈中。這樣可以減少資源的占有數(shù)。濾波模塊的原理圖如圖4所示。 4 系統(tǒng)性能 該系統(tǒng)的主要性能指標(biāo)為: 信號(hào)中頻為70MHz; 信號(hào)帶寬≤20MHz; 處理時(shí)延≤20ms(調(diào)制系統(tǒng)和解調(diào)系統(tǒng)的總處理時(shí)延); 編碼增益為4dB。 由圖5可以看出信號(hào)帶寬約為18MHz,已滿足系統(tǒng)要求。圖6為調(diào)制系統(tǒng)和解調(diào)系統(tǒng)的總處理延時(shí),其中CH1為調(diào)制系統(tǒng),CH2為解調(diào)系統(tǒng)。從調(diào)制端接收到一個(gè)下脈沖,到解調(diào)端將其解調(diào)出來(lái)總延時(shí)為9.36ms。調(diào)制系統(tǒng)的時(shí)延主要存在于交織模塊,約為(1764-42)/576k=2.99ms。解調(diào)系統(tǒng)的時(shí)延主要存在于解交織和譯碼,約為(1764-42)/576k+(1176+32)/384k=6.14ms。2.99+6.14=9.13ms,再加上其它模塊的延時(shí),與實(shí)測(cè)的結(jié)果相符合,也滿足系統(tǒng)要求。 (2,1,6)碼理論上的純編碼增益在大信噪比下為3.01。實(shí)際上,編碼增益的大小還與譯碼的算法有關(guān)。本編譯碼系統(tǒng)的編碼增益為3.01+2(軟判決)-0.5(增信刪除),為4.51,滿足系統(tǒng)要求。該QPSK高速調(diào)制系統(tǒng)包含了編碼、交織、擴(kuò)頻調(diào)制等現(xiàn)代調(diào)制系統(tǒng)中常用的技術(shù),是一個(gè)比較完整的調(diào)制系統(tǒng)。同時(shí),使用FPGA加以實(shí)現(xiàn),使得對(duì)于該系統(tǒng)的功能擴(kuò)展和縮減變得容易。FPGA的容量有限,而且一般燒到片子里的程序最好不要超過(guò)總?cè)萘康?0%,所以,對(duì)于程序的優(yōu)化是非常必要的。例如,通過(guò)優(yōu)化設(shè)計(jì),可使最耗費(fèi)資源的濾波器模塊的資源占用量從80%下降到40%(XC2S200的總?cè)萘繛?0萬(wàn)門),這是相當(dāng)可觀的。不僅使整個(gè)系統(tǒng)的實(shí)現(xiàn)成為可能,而且為以后功能擴(kuò)展預(yù)留下比較多的資源。該系統(tǒng)已應(yīng)用于圖像傳輸系統(tǒng),并且工作穩(wěn)定可靠。
評(píng)論