《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 基于FPGA的移動(dòng)DTV調(diào)制系統(tǒng)的數(shù)字通信

基于FPGA的移動(dòng)DTV調(diào)制系統(tǒng)的數(shù)字通信

2009-11-19
作者:葛立揚(yáng),葛海亮,高 鵬
關(guān)鍵詞: 移動(dòng)DTV TDS-OFDM IFFT FPGA

摘  要: 在深入研究移動(dòng)DTV國(guó)家標(biāo)準(zhǔn)的基礎(chǔ)上,對(duì)調(diào)制系統(tǒng)進(jìn)行了設(shè)計(jì)規(guī)劃,并對(duì)信道調(diào)制的星座映射、系統(tǒng)信息插入、幀體數(shù)據(jù)處理、PN序列插入的幀形成模塊和成形濾波模塊進(jìn)行了設(shè)計(jì)與仿真,驗(yàn)證了其在公交站牌系統(tǒng)上的正確性。
關(guān)鍵詞: 移動(dòng)DTV;TDS-OFDM;IFFT;FPGA

1 星座映射的設(shè)計(jì)與實(shí)現(xiàn)
  基于FPGA的星座映射模塊設(shè)計(jì)接口定義如下:
     clk_bitx2:系統(tǒng)比特時(shí)鐘2倍周期的輸入時(shí)鐘;
  QAM_para:控制模塊的參數(shù)信號(hào);
  constellation:星座映射模式;
  data_in_en:輸入數(shù)據(jù)有效信號(hào);
  data_v_in:輸入數(shù)據(jù),數(shù)據(jù)寬度為6位;
  data_I:輸出I路數(shù)據(jù),數(shù)據(jù)寬度為16位;
  data_Q:輸出Q路數(shù)據(jù),數(shù)據(jù)寬度為16位;
  data_out_en:輸出數(shù)據(jù)有效信號(hào)。
  在Windows XP和Quartus DE2的軟件環(huán)境下,在Altera公司的DE2平臺(tái)的FPGA上綜合之后,其消耗資源情況如下:占用了90個(gè)觸發(fā)器,138個(gè)四輸入查找表,69個(gè)Slices,占用1個(gè)片內(nèi)存儲(chǔ)塊Block RAM,不到總量的1%。
2 系統(tǒng)信息插入的設(shè)計(jì)與實(shí)現(xiàn)
2.1 系統(tǒng)信息
  本系統(tǒng)中預(yù)設(shè)了64種不同的系統(tǒng)信息模式,并采用擴(kuò)頻技術(shù)傳輸。這64種系統(tǒng)信息在擴(kuò)頻前可以用6個(gè)信息位(s5s4s3s2s1s0)來(lái)表示,其中s5為MSB,定義如下:s3s2s1s0:編碼調(diào)制模式;s4:交織信息;s5:保留[1]。
  該6 bit擴(kuò)頻前的系統(tǒng)信息將采用擴(kuò)頻技術(shù)擴(kuò)為32 bit長(zhǎng)的系統(tǒng)信息矢量,即用長(zhǎng)度為32 bit的Walsh序列和長(zhǎng)度為32 bit的隨機(jī)序列來(lái)映射保護(hù)[2]。國(guó)家標(biāo)準(zhǔn)中已經(jīng)給出了擴(kuò)頻后的64個(gè)32 bit的系統(tǒng)信息矢量,將這32 bit采用I、Q相同的4QAM調(diào)制映射成為32個(gè)復(fù)符號(hào),再加上4個(gè)幀體模式符號(hào)[3],得到了36個(gè)系統(tǒng)信息符號(hào)。在本設(shè)計(jì)中幀體模式C=3 780,“1111”4個(gè)bit也采用I、Q相同的4QAM映射為4個(gè)復(fù)符號(hào),由于這種映射模式是2位到2位的映射,所以把它擴(kuò)展為8 bit的符號(hào),用補(bǔ)碼表示。映射后的4個(gè)幀體模式指示符號(hào)在前,32個(gè)調(diào)制和碼率等模式指示符號(hào)在后。該36個(gè)系統(tǒng)信息符號(hào)通過(guò)復(fù)用模塊與信道編碼后的數(shù)據(jù)符號(hào)復(fù)合成幀體數(shù)據(jù)[4]。
2.2 系統(tǒng)信息插入的實(shí)現(xiàn)
  系統(tǒng)信息插入模塊的端口定義[5]為:
  tps_in[5:0]:輸入的系統(tǒng)信息位為6 bit并行數(shù)據(jù);
  data_Qed:輸入數(shù)據(jù),經(jīng)過(guò)QAM映射后的32位幀體數(shù)據(jù),高16位為實(shí)部,低16位為虛部;
  data_valid_in:輸入數(shù)據(jù)有效信號(hào);
  clk:模塊工作時(shí)鐘,也是數(shù)據(jù)輸入時(shí)鐘;
  rst:復(fù)位信號(hào),低電平有效,等于0時(shí)可以復(fù)位控制模塊的寄存器值;
  dout_start:輸出3 780個(gè)連續(xù)數(shù)據(jù)的起始脈沖信號(hào),持續(xù)1個(gè)時(shí)鐘周期;
  dout_en:輸出3 780個(gè)連續(xù)數(shù)據(jù)的有效使能信號(hào);
  dout:輸出數(shù)據(jù),高16位為實(shí)部,低16位為虛部; 系統(tǒng)信息插入模塊[6]仿真波形圖如圖1所示。

  在Windows XP和Quartus DE2的軟件環(huán)境下,在Altera公司的DE2平臺(tái)的FPGA上綜合之后,其消耗資源情況如下:占用了115個(gè)Slices,187個(gè)觸發(fā)器,208個(gè)四輸入查找表,占用片內(nèi)Block RAM資源在6%以下。
  本文設(shè)計(jì)的是幀頭模式1,長(zhǎng)度為420,為OFDM幀體長(zhǎng)的1/9。前同步緩沖的長(zhǎng)度取82,后同步緩沖的長(zhǎng)度取83[7]。
  PN幀頭數(shù)據(jù)插入[8]模塊的結(jié)構(gòu)定義如下:
  clk:模塊工作時(shí)鐘,是系統(tǒng)的符號(hào)時(shí)鐘;
  data_in:32位的輸入數(shù)據(jù),數(shù)據(jù)的高16位為實(shí)部,低16位為虛部;
  data_in_en:輸入有效數(shù)據(jù)使能信號(hào),高電平有效;
  data_in_start:輸入有效數(shù)據(jù)起始信號(hào),高電平有效;
  PN_mode:插入PN序列的模式指示信號(hào);
  dout_start:輸出有效數(shù)據(jù)起始信號(hào),高電平有效;
  dout_en:輸出有效數(shù)據(jù)使能信號(hào),高電平有效;
  dout:32位輸出數(shù)據(jù),數(shù)據(jù)的高16位為數(shù)據(jù)實(shí)部,低16位為數(shù)據(jù)虛部[9]。
  PN幀頭數(shù)據(jù)插入模塊主要完成OFDM調(diào)制的3 780個(gè)數(shù)據(jù)和PN幀頭的數(shù)據(jù)拼接。具體實(shí)現(xiàn)時(shí),輸入的3 780個(gè)數(shù)據(jù)首先緩存在RAM中,當(dāng)所需要的PN頭數(shù)據(jù)產(chǎn)生完以后,啟動(dòng)讀RAM操作,把緩存數(shù)據(jù)輸出。PN幀頭數(shù)據(jù)插入模塊硬件實(shí)現(xiàn)結(jié)構(gòu)框圖[10]如圖2所示。在Windows XP和Quartus DE2的軟件環(huán)境下,在Altera公司的DE2平臺(tái)的FPGA上綜合之后,其消耗資源情況如下:占用了145個(gè)Slices,207個(gè)觸發(fā)器,273個(gè)四輸入查找表,占用片內(nèi)Block RAM資源在6%以下。

3  幀體數(shù)據(jù)處理的設(shè)計(jì)
3.1  傅里葉變換在OFDM系統(tǒng)中的應(yīng)用[11]
      設(shè)一個(gè)時(shí)間信號(hào)s(t)的抽樣函數(shù)為s(k),其中k=0,1,2,…,N-1,則s(k)的離散傅里葉變換(DFT)為:
  
   對(duì)上式中S(t)進(jìn)行抽樣,抽樣間隔為T(mén),假定在一個(gè)碼元周期內(nèi)T內(nèi)含有N個(gè)抽樣值。由于OFDM信號(hào)的產(chǎn)生首先在基帶上實(shí)現(xiàn),之后通過(guò)上變頻產(chǎn)生輸出信號(hào),因此基帶處理時(shí)可令上式簡(jiǎn)化為[13]:
   

  由此可知,OFDM系統(tǒng)的調(diào)制可以由IDFT來(lái)實(shí)現(xiàn)。同理,它的解調(diào)可以用離散傅里葉變換實(shí)現(xiàn),大大簡(jiǎn)化了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。
   下面討論如何用DFT來(lái)實(shí)現(xiàn)IDFT。令X(k)是N點(diǎn)離散系列x(n)的DFT,于是有下面2式成立:
       

  把X(k)看作OFDM調(diào)制系統(tǒng)的輸入信號(hào),則它的IDFT就是系統(tǒng)調(diào)制后的輸出,所以可以通過(guò)正向的傅里葉變換來(lái)實(shí)現(xiàn)IDFT,可分3個(gè)步驟來(lái)實(shí)現(xiàn)[14]:(1)將長(zhǎng)度為N的輸入數(shù)據(jù)取共軛;(2)對(duì)N點(diǎn)數(shù)據(jù)做正向傅里葉變換;(3)把得到的結(jié)果求共軛,再乘以系數(shù)1/N。若要完成N點(diǎn)傅里葉變換,需要N×N次復(fù)數(shù)乘法和N(N-1)次復(fù)數(shù)加法。N值較大時(shí),計(jì)算量會(huì)相當(dāng)驚人,可能會(huì)因?yàn)橛?jì)算量過(guò)大,占用系統(tǒng)大部分的資源并造成較長(zhǎng)的延時(shí),最終導(dǎo)致系統(tǒng)無(wú)法實(shí)時(shí)。
3.2 3 780點(diǎn)快速傅里葉變換算法
3.2.1 算法概述
  目前,關(guān)于FFT的算法主要有基于基-2和基-4[15]兩種,從軟件仿真到硬件實(shí)現(xiàn)已有多種成熟的算法。圖3所示為3 780點(diǎn)FFT算法程序流程圖。

   將輸入的3 780個(gè)復(fù)數(shù)數(shù)據(jù)進(jìn)行串轉(zhuǎn)并,進(jìn)行下標(biāo)映射,從原始數(shù)據(jù)中以60為間隔抽取數(shù)據(jù),組成了60組63個(gè)數(shù)1組的新序列,用63點(diǎn)的素因子算法作FFT運(yùn)算,再進(jìn)行第1次素因子算法的整序,然后將3 780個(gè)數(shù)據(jù)乘以相應(yīng)的旋轉(zhuǎn)因子,做60點(diǎn)的素因子算法,進(jìn)行第2次由于素因子分解所需的整序,最后進(jìn)行因混合基分解算法所需要的整序[16]。
  利用Matlab自帶的函數(shù),輸入采用了2.4 Hz和3.5 Hz的正弦信號(hào),將最終得到的仿真圖和Matlab自帶的函數(shù)計(jì)算比較,可以驗(yàn)證本設(shè)計(jì)的正確性。
3.2.2 算法實(shí)現(xiàn)
  3 780點(diǎn)FFT算法實(shí)現(xiàn)模塊的端口定義如下:
  clk:系統(tǒng)的符號(hào)時(shí)鐘;
  clk_working:工作時(shí)鐘,也是系統(tǒng)比特時(shí)鐘;
  reset:系統(tǒng)復(fù)位信號(hào),低電平有效,完成系統(tǒng)初始化和復(fù)位;
  data_in_I、data_in_R:輸入數(shù)據(jù)的實(shí)部、虛部,16位位寬;
  data_in_valid:輸入數(shù)據(jù)有效起始信號(hào),高電平有效,持續(xù)1個(gè)輸入時(shí)鐘周期,表示從下一個(gè)時(shí)鐘沿開(kāi)始為3 780個(gè)有效數(shù)據(jù)輸入;
  dout_start:輸出有效數(shù)據(jù)起始信號(hào),高電平有效,持續(xù)期為1個(gè)輸出時(shí)鐘周期,表示下一個(gè)時(shí)鐘開(kāi)始的3 780個(gè)數(shù)據(jù)為輸出有效數(shù)據(jù);
  dout_valid:輸出數(shù)據(jù)有效使能信號(hào),高電平有效[18];
  dout_R、dout_I:輸出復(fù)數(shù)數(shù)據(jù)的實(shí)部、虛部,16位位寬。
  3 780點(diǎn)FFT模塊的硬件實(shí)現(xiàn)如圖4所示。clk_work-ing是系統(tǒng)的比特時(shí)鐘,每個(gè)上升時(shí)鐘沿到來(lái),串行數(shù)據(jù)讀寫(xiě)1次,小N點(diǎn)WFTA模塊內(nèi)部移位計(jì)算1次。為了解決由于雙口RAM讀或?qū)懙奶S性[19],Winograd小N DFT算法是整個(gè)3 780點(diǎn)FFT實(shí)現(xiàn)的基礎(chǔ),3 780點(diǎn)FFT被分解成幾個(gè)小點(diǎn)的DFT,最終通過(guò)Winograd小N DFT算法來(lái)實(shí)現(xiàn)的。

  經(jīng)過(guò)Matlab工具驗(yàn)證算法設(shè)計(jì)的正確性之后,在Quartus DE2軟件環(huán)境下編寫(xiě)了Verilog HDL代碼,并進(jìn)行硬件仿真。輸入data_in_I和data_in_R為2路16位寬的隨機(jī)數(shù),關(guān)鍵數(shù)據(jù)的仿真波形如圖5所示。可以看出,存儲(chǔ)器的讀寫(xiě)控制完全達(dá)到了預(yù)期設(shè)計(jì)效果。把輸出數(shù)據(jù)導(dǎo)入Matlab進(jìn)行分析,當(dāng)輸出數(shù)據(jù)為16 bit時(shí),模塊的信噪比達(dá)到了56.8 dB,完全符合標(biāo)準(zhǔn)45 dB~60 dB的要求。對(duì)信噪比有更高要求的應(yīng)用場(chǎng)合,可以采用擴(kuò)展位寬來(lái)設(shè)計(jì)。要完成IFFT運(yùn)算,根據(jù)兩者之間的關(guān)系,只需對(duì)該模塊的輸入和輸出分別取共軛,就可以完成整體數(shù)據(jù)處理模塊的功能。

  理論上分析本設(shè)計(jì)的實(shí)數(shù)乘法和加法數(shù)量已逼近4 096點(diǎn)FFT,但是在FPGA具體實(shí)現(xiàn)時(shí),小N點(diǎn)的WFTA運(yùn)算消耗了較多的邏輯單元,與4 096點(diǎn)FFT采用蝶形運(yùn)算單元完成相比較,前者消耗的邏輯單元較4 096點(diǎn)FFT多出不少。整個(gè)仿真在Windows XP和Quartus DE2的軟件環(huán)境下,在Altera公司的DE2平臺(tái)的FPGA上綜合之后消耗資源情況比較如表1所示。

  本設(shè)計(jì)沒(méi)有涉及交織模塊的編寫(xiě),但完成了一個(gè)相對(duì)完整的DMB-T的調(diào)制系統(tǒng),其中3 780個(gè)子載波的TDS-OFDM調(diào)制是移動(dòng)DTV系統(tǒng)的核心模塊。利用FFT在OFDM中的應(yīng)用以及實(shí)現(xiàn),針對(duì)移動(dòng)DTV系統(tǒng)中特有的3 780點(diǎn)IFFT,綜合利用了Cooley-Tukey算法、Winograd算法、素因子算法3種算法各自的特點(diǎn),考慮了算法的復(fù)雜度、運(yùn)算的速度、資源的消耗。本設(shè)計(jì)采用了一種新的算法,通過(guò)了Matlab驗(yàn)證和基于FPGA的仿真。本設(shè)計(jì)采用了Winograd小N DFT算法的硬件實(shí)現(xiàn),通過(guò)16次迭代的方法完成了公交車(chē)站牌系統(tǒng)的移動(dòng)DTV的核心模塊仿真設(shè)計(jì)。
參考文獻(xiàn)
[1] 姜秀華,張永輝,章文輝.數(shù)字電視原理與應(yīng)用[M].北京:人民郵電出版社,2003:149-154.
[2] 中華人民共和國(guó)國(guó)家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局,中國(guó)國(guó)家標(biāo)準(zhǔn)化管理委員會(huì).中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn)——數(shù)字電視地面廣播傳輸系統(tǒng)幀結(jié)構(gòu)、信道編碼和調(diào)制[M]. 2007.
[3] 汪裕民.OFDM關(guān)鍵技術(shù)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[4] 北京凌訊華業(yè)科技有限公司,清華大學(xué).DMB-TH地面數(shù)字電視傳輸技術(shù)白皮書(shū)(第2版)[M].2006.
[5] 趙堅(jiān)勇.數(shù)字電視技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005:150-152.
[6] RODGER E Z,ROGER L P.數(shù)字通信基礎(chǔ)(第2版)[M].  尹長(zhǎng)川,等譯.北京:機(jī)械工業(yè)出版社,2005.
[7] 文紅,符初生,周亮.LDPC碼原理與應(yīng)用[M].成都:電子科技大學(xué)出版社,2006.
[8] 佟學(xué)儉,羅濤.OFDM移動(dòng)通信技術(shù)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.
[9] 王誠(chéng),薛小剛,鐘信潮.FPGA/CPLD—Xilinx ISE使用詳解[M].北京:人民郵電出版社,2005:1-341.
[10] YANG Zhi Ying,HU Yu Peng,PAN Chang Yong,et al.  Design of a 3780-point IFFT processor for TDS-OFDM[J].  IEEE Tras on Broadcasting,2002,48(01):57-59.
[11] 谷萩隆嗣.快速算法與并行信號(hào)處理[M].北京:科學(xué)出版社,2003.
[12] 胡廣書(shū).數(shù)字信號(hào)處理(第2版)[M].北京:清華大學(xué)出版社,2003:195-198.
[13] BURRUS C S,PARKS T W.DFT/FFT and convolution  algorithms theory and implementation[M].Canada:A Wlley-Intersclence Publication,1985.
[14] 蔣增榮,曾泳泓,余品能.快速算法[M].長(zhǎng)沙:國(guó)防科技大學(xué)出版社,1993.
[15] HARVERY F.S.An introduction to programming the  winograd fourier transform algorithm(WFTA)[J].IEEE Tras on Acoustics,Speech,and signal processing,April 1977(2).
[16] BURRUS C S,PETER W E.An in-place,in-order prime   factor FFT algorithm[J].IEEE Trans,Acoust,Speech,Signal   Processing,1982,29(1):4-6.
[17] 陳懷琛.數(shù)字信號(hào)處理教程MATLAB釋義與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2004:90-105.
[18] 余濤.DVB-H信道編碼調(diào)制的設(shè)計(jì)及其FPGA實(shí)現(xiàn)研究[D].成都:電子科技大學(xué),2006.
[19] RAY A.A survey of CORDIC algorithms for FPGA based  computers.In Proceedings of the 1998 ACM/SIGDA sixth  international symposium on field programmable gate arrays,1998:191-200.
 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。