《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(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國家標(biāo)準(zhǔn)的基礎(chǔ)上,,對調(diào)制系統(tǒng)進(jìn)行了設(shè)計(jì)規(guī)劃,,并對信道調(diào)制的星座映射、系統(tǒng)信息插入,、幀體數(shù)據(jù)處理,、PN序列插入的幀形成模塊和成形濾波模塊進(jìn)行了設(shè)計(jì)與仿真,驗(yàn)證了其在公交站牌系統(tǒng)上的正確性,。
關(guān)鍵詞: 移動(dòng)DTV,;TDS-OFDMIFFT,;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)來表示,,其中s5為MSB,,定義如下:s3s2s1s0:編碼調(diào)制模式;s4:交織信息,;s5:保留[1]。
  該6 bit擴(kuò)頻前的系統(tǒng)信息將采用擴(kuò)頻技術(shù)擴(kuò)為32 bit長的系統(tǒng)信息矢量,,即用長度為32 bit的Walsh序列和長度為32 bit的隨機(jī)序列來映射保護(hù)[2],。國家標(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)通過復(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)過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,,長度為420,,為OFDM幀體長的1/9。前同步緩沖的長度取82,,后同步緩沖的長度取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)為:
  
   對上式中S(t)進(jìn)行抽樣,抽樣間隔為T,,假定在一個(gè)碼元周期內(nèi)T內(nèi)含有N個(gè)抽樣值,。由于OFDM信號(hào)的產(chǎn)生首先在基帶上實(shí)現(xiàn),之后通過上變頻產(chǎn)生輸出信號(hào),,因此基帶處理時(shí)可令上式簡化為[13]:
   

  由此可知,,OFDM系統(tǒng)的調(diào)制可以由IDFT來實(shí)現(xiàn)。同理,,它的解調(diào)可以用離散傅里葉變換實(shí)現(xiàn),,大大簡化了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。
   下面討論如何用DFT來實(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)制后的輸出,,所以可以通過正向的傅里葉變換來實(shí)現(xiàn)IDFT,,可分3個(gè)步驟來實(shí)現(xiàn)[14]:(1)將長度為N的輸入數(shù)據(jù)取共軛;(2)對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ì)算量過大,,占用系統(tǒng)大部分的資源并造成較長的延時(shí),最終導(dǎo)致系統(tǒng)無法實(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í)鐘沿開始為3 780個(gè)有效數(shù)據(jù)輸入,;
  dout_start:輸出有效數(shù)據(jù)起始信號(hào),,高電平有效,,持續(xù)期為1個(gè)輸出時(shí)鐘周期,表示下一個(gè)時(shí)鐘開始的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í)鐘沿到來,,串行數(shù)據(jù)讀寫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,,最終通過Winograd小N DFT算法來實(shí)現(xiàn)的。

  經(jīng)過Matlab工具驗(yàn)證算法設(shè)計(jì)的正確性之后,,在Quartus DE2軟件環(huán)境下編寫了Verilog HDL代碼,,并進(jìn)行硬件仿真。輸入data_in_I和data_in_R為2路16位寬的隨機(jī)數(shù),,關(guān)鍵數(shù)據(jù)的仿真波形如圖5所示,。可以看出,,存儲(chǔ)器的讀寫控制完全達(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的要求。對信噪比有更高要求的應(yīng)用場合,,可以采用擴(kuò)展位寬來設(shè)計(jì),。要完成IFFT運(yùn)算,根據(jù)兩者之間的關(guān)系,,只需對該模塊的輸入和輸出分別取共軛,,就可以完成整體數(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ì)沒有涉及交織模塊的編寫,,但完成了一個(gè)相對完整的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),,針對移動(dòng)DTV系統(tǒng)中特有的3 780點(diǎn)IFFT,綜合利用了Cooley-Tukey算法,、Winograd算法,、素因子算法3種算法各自的特點(diǎn),考慮了算法的復(fù)雜度,、運(yùn)算的速度,、資源的消耗,。本設(shè)計(jì)采用了一種新的算法,通過了Matlab驗(yàn)證和基于FPGA的仿真,。本設(shè)計(jì)采用了Winograd小N DFT算法的硬件實(shí)現(xiàn),,通過16次迭代的方法完成了公交車站牌系統(tǒng)的移動(dòng)DTV的核心模塊仿真設(shè)計(jì)。
參考文獻(xiàn)
[1] 姜秀華,,張永輝,,章文輝.數(shù)字電視原理與應(yīng)用[M].北京:人民郵電出版社,2003:149-154.
[2] 中華人民共和國國家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局,,中國國家標(biāo)準(zhǔn)化管理委員會(huì).中華人民共和國國家標(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ù)白皮書(第2版)[M].2006.
[5] 趙堅(jiān)勇.數(shù)字電視技術(shù)[M].西安:西安電子科技大學(xué)出版社,,2005:150-152.
[6] RODGER E Z,ROGER L P.數(shù)字通信基礎(chǔ)(第2版)[M].  尹長川,,等譯.北京:機(jī)械工業(yè)出版社,,2005.
[7] 文紅,符初生,,周亮.LDPC碼原理與應(yīng)用[M].成都:電子科技大學(xué)出版社,,2006.
[8] 佟學(xué)儉,羅濤.OFDM移動(dòng)通信技術(shù)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,,2005.
[9] 王誠,,薛小剛,鐘信潮.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ù)字信號(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].長沙:國防科技大學(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)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]