1、引言
信息化已經(jīng)成為社會發(fā)展的大趨勢。信息化是以數(shù)字化為背景的,而DSP技術(shù)則是數(shù)字化最重要的基本技術(shù)之一。DSP處理器是專門設(shè)計用來進(jìn)行高速數(shù)字信號處理的微處理器。與許多通用的CPU和微控制器(MCU)相比,DSP處理器在結(jié)構(gòu)上采用了許多的專門技術(shù)和措施來提高處理速度。DSP處理器與通用微處理器不同,它沒有采用將程序代碼和數(shù)據(jù)公用一個公共的存儲空間和單一的地址與數(shù)據(jù)總線的馮諾依曼結(jié)構(gòu)(Von Neumann Architecture),而是毫無例外的將程序代碼和數(shù)據(jù)的存儲空間分開,各有自己的地址與數(shù)據(jù)總線,即所謂的哈佛結(jié)構(gòu)(Harvard Architecture),增大了處理器的數(shù)據(jù)交換能力。
OFDM(正交頻分復(fù)用),是直接利用離散傅里葉變換(DFT),實現(xiàn)的一種多載波調(diào)制技術(shù),它采用并行傳輸,將所傳送的高速數(shù)據(jù)分解并調(diào)制到多個相互交疊并且正交的子信道中,使得每個子通道的碼元寬度大于擴展延時,若在碼元之間增加一定長度的保護間隔,則多徑傳輸引起的碼間串?dāng)_基本被消除。OFDM的上述特點使其特別適于在存在多徑傳播和有多普勒頻移的移動無線傳輸信道中傳輸高速數(shù)據(jù)。目前應(yīng)用于電力線通信,數(shù)字聲廣播(DAB)和歐洲高清晰度電視傳輸標(biāo)準(zhǔn)(DVB-T), 無線局域網(wǎng)(WLAN)等業(yè)務(wù)中。
論文在TMS320C5509DSP上根據(jù)系統(tǒng)的總體框圖,實現(xiàn)OFDM基帶系統(tǒng)的設(shè)計,并給出了具體的性能指標(biāo)。
2、OFDM系統(tǒng)的設(shè)計實現(xiàn)
2.1 實現(xiàn)系統(tǒng)的任務(wù)流程圖
系統(tǒng)每幀可以傳送56bits的有效信息,數(shù)據(jù)的傳輸速率將達(dá)到100kbit/s,并且為了減小傳輸過程中的信道的不理想,用了BSPK對信源進(jìn)行編碼映射,在傳輸過程中,傳輸?shù)氖菚r域的信號,但是實際有用的是這些時域信號的頻譜,這些信號在時域中是無規(guī)則的隨機信號,但在其頻譜上的各個子載波攜帶著需傳輸?shù)男畔ⅰ,F(xiàn)工作框圖如圖1:
圖1. 系統(tǒng)的任務(wù)框圖
整個系統(tǒng)由DSP和FPGA、D/A、A/D以及一些其他的硬件共同完成。任務(wù)流程是由DSP接受由串/并轉(zhuǎn)換過后的并行數(shù)據(jù),在DSP內(nèi)進(jìn)行BPSK信源編碼,將0和1分別映射為0xbffd 和0x3fff兩個十六進(jìn)制的數(shù),再送入IFFT單元將數(shù)據(jù)變到時域進(jìn)行處理,然后把數(shù)據(jù)加上循環(huán)前綴,串行送給FPGA進(jìn)行處理,由FPGA將數(shù)據(jù)發(fā)送給接收板。接收板上由FPGA接到數(shù)據(jù)進(jìn)行一系列處理后,將數(shù)據(jù)又串行傳給接收板的DSP。在接收板的DSP上將接受到的數(shù)據(jù)移走循環(huán)前綴,送入FFT單元將數(shù)據(jù)還原到頻域,然后以0為門限進(jìn)行判決,映射后得到最早的原始數(shù)據(jù)。
2.1 任務(wù)流程詳解
原始數(shù)據(jù)每幀攜帶56bit的二進(jìn)制信息(即只有0和1兩種取值),在框圖中D/A和A/D部分都是由專門的硬件來完成,項目選用的是ADS828e,和DAC902u。
發(fā)送部分:
信源編碼部分我們采用的是BPSK,為的是進(jìn)一步增大信號間的歐式距離,通過計算,我們決定選用0xbffd 和0x3fff兩個16進(jìn)制的數(shù)來分別代表0和1。由于FFT變換要求數(shù)據(jù)是2N個數(shù)據(jù),所以將數(shù)據(jù)插入若干個零來補足。具體做法是,將映射后的第28個數(shù)據(jù)位置開始插入7個零。由于零頻時不能有信號(為了無直流分量),在幀的開始不傳信息,將第一個數(shù)插入零(不是0xbffd),把56個數(shù)變?yōu)?4個數(shù),在接收板上將把同樣位置的16個數(shù)去掉。
將編碼映射后的16位數(shù)進(jìn)行64點的IFFT,把數(shù)據(jù)由頻域變換到時域,等候下一步處理。
在OFDM系統(tǒng)中,為了防止多徑延遲,必須加上循環(huán)前綴,而這些循環(huán)前綴又不能破壞子信道間的正交性,于是將最后16位數(shù)提到前面來形成80個數(shù)。具體做法是,在IFFT完成后,要加上循環(huán)前綴才能將數(shù)據(jù)發(fā)送給FPGA,將數(shù)據(jù)的最后16位復(fù)制到數(shù)據(jù)開頭(原來的16個數(shù)不動),把數(shù)據(jù)變?yōu)?0個,送給串口發(fā)送給FPGA。
在FPGA上進(jìn)行FIR濾波,和一系列處理后,發(fā)送板的任務(wù)完成,接下來就將數(shù)據(jù)送給接收板。
接收部分:
由接收板上的FPGA接收到發(fā)送板送來的數(shù)據(jù),經(jīng)過一系列處理后將數(shù)據(jù)串行送給DSP等待進(jìn)一步處理。
接收板的DSP接收到FPGA發(fā)過來的80個串行數(shù)據(jù)后,先將循環(huán)前綴去掉,即去掉前16位數(shù),將80位的數(shù)據(jù)變?yōu)?4位,交給下一步處理。
在把數(shù)據(jù)變回為64位后,將數(shù)據(jù)進(jìn)行FFT變換,由時域變回頻域,交由下一步處理。
在進(jìn)行判決之前,先要把插入的16個數(shù)去掉,將64位數(shù)變?yōu)?6位,然后進(jìn)行判決,BPSK有一個好處就是判決時可以直接以零為門限。經(jīng)過判決后,將數(shù)據(jù)還原成原來的初試值。
綜上所述,在DSP部分,共有10項任務(wù),
發(fā)送端
1.BPSK編碼和插入數(shù)據(jù)(數(shù)據(jù)個數(shù)由56變?yōu)?4個)
2.作N=64的IFFT變換,將頻域的數(shù)據(jù)變到時域。
3.加入循環(huán)前綴(數(shù)據(jù)個數(shù)由64個變?yōu)?0個),防止多徑延遲。
4.通過DMA將數(shù)據(jù)送到Mcbsp發(fā)給FPGA。
接收端
5.由Mcbsp接到數(shù)據(jù)通過DMA存入數(shù)據(jù)空間(此時數(shù)據(jù)應(yīng)該與第四步結(jié)束時相同)。
6.去掉循環(huán)前綴(數(shù)據(jù)個數(shù)又由80個變?yōu)?4個,此時數(shù)據(jù)應(yīng)該與第三步結(jié)束時相同)
7.作64點FFT變換(此時結(jié)果應(yīng)該與第一步結(jié)束時相同)
8.去掉插入的數(shù)據(jù),反映射(數(shù)據(jù)個數(shù)由64個變?yōu)?6個,此時結(jié)果應(yīng)該與第一步開始時相同)并解碼。