摘 要: 在深入研究移動DTV國家標準的基礎上,,對調(diào)制系統(tǒng)進行了設計規(guī)劃,并對信道調(diào)制的星座映射,、系統(tǒng)信息插入,、幀體數(shù)據(jù)處理、PN序列插入的幀形成模塊和成形濾波模塊進行了設計與仿真,,驗證了其在公交站牌系統(tǒng)上的正確性,。
關鍵詞: 移動DTV;TDS-OFDM,;IFFT,;FPGA
1 星座映射的設計與實現(xiàn)
基于FPGA的星座映射模塊設計接口定義如下:
clk_bitx2:系統(tǒng)比特時鐘2倍周期的輸入時鐘;
QAM_para:控制模塊的參數(shù)信號,;
constellation:星座映射模式,;
data_in_en:輸入數(shù)據(jù)有效信號;
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ù)有效信號,。
在Windows XP和Quartus DE2的軟件環(huán)境下,,在Altera公司的DE2平臺的FPGA上綜合之后,其消耗資源情況如下:占用了90個觸發(fā)器,,138個四輸入查找表,,69個Slices,占用1個片內(nèi)存儲塊Block RAM,,不到總量的1%,。
2 系統(tǒng)信息插入的設計與實現(xiàn)
2.1 系統(tǒng)信息
本系統(tǒng)中預設了64種不同的系統(tǒng)信息模式,并采用擴頻技術傳輸。這64種系統(tǒng)信息在擴頻前可以用6個信息位(s5s4s3s2s1s0)來表示,,其中s5為MSB,,定義如下:s3s2s1s0:編碼調(diào)制模式;s4:交織信息;s5:保留[1],。
該6 bit擴頻前的系統(tǒng)信息將采用擴頻技術擴為32 bit長的系統(tǒng)信息矢量,,即用長度為32 bit的Walsh序列和長度為32 bit的隨機序列來映射保護[2]。國家標準中已經(jīng)給出了擴頻后的64個32 bit的系統(tǒng)信息矢量,,將這32 bit采用I,、Q相同的4QAM調(diào)制映射成為32個復符號,再加上4個幀體模式符號[3],,得到了36個系統(tǒng)信息符號,。在本設計中幀體模式C=3 780,“1111”4個bit也采用I,、Q相同的4QAM映射為4個復符號,,由于這種映射模式是2位到2位的映射,所以把它擴展為8 bit的符號,,用補碼表示。映射后的4個幀體模式指示符號在前,,32個調(diào)制和碼率等模式指示符號在后,。該36個系統(tǒng)信息符號通過復用模塊與信道編碼后的數(shù)據(jù)符號復合成幀體數(shù)據(jù)[4]。
2.2 系統(tǒng)信息插入的實現(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位為實部,,低16位為虛部,;
data_valid_in:輸入數(shù)據(jù)有效信號;
clk:模塊工作時鐘,,也是數(shù)據(jù)輸入時鐘,;
rst:復位信號,低電平有效,,等于0時可以復位控制模塊的寄存器值,;
dout_start:輸出3 780個連續(xù)數(shù)據(jù)的起始脈沖信號,持續(xù)1個時鐘周期,;
dout_en:輸出3 780個連續(xù)數(shù)據(jù)的有效使能信號,;
dout:輸出數(shù)據(jù),高16位為實部,,低16位為虛部,; 系統(tǒng)信息插入模塊[6]仿真波形圖如圖1所示。
在Windows XP和Quartus DE2的軟件環(huán)境下,在Altera公司的DE2平臺的FPGA上綜合之后,,其消耗資源情況如下:占用了115個Slices,,187個觸發(fā)器,208個四輸入查找表,,占用片內(nèi)Block RAM資源在6%以下,。
本文設計的是幀頭模式1,長度為420,,為OFDM幀體長的1/9,。前同步緩沖的長度取82,后同步緩沖的長度取83[7],。
PN幀頭數(shù)據(jù)插入[8]模塊的結構定義如下:
clk:模塊工作時鐘,,是系統(tǒng)的符號時鐘;
data_in:32位的輸入數(shù)據(jù),,數(shù)據(jù)的高16位為實部,,低16位為虛部;
data_in_en:輸入有效數(shù)據(jù)使能信號,,高電平有效,;
data_in_start:輸入有效數(shù)據(jù)起始信號,高電平有效,;
PN_mode:插入PN序列的模式指示信號,;
dout_start:輸出有效數(shù)據(jù)起始信號,高電平有效,;
dout_en:輸出有效數(shù)據(jù)使能信號,,高電平有效;
dout:32位輸出數(shù)據(jù),,數(shù)據(jù)的高16位為數(shù)據(jù)實部,,低16位為數(shù)據(jù)虛部[9]。
PN幀頭數(shù)據(jù)插入模塊主要完成OFDM調(diào)制的3 780個數(shù)據(jù)和PN幀頭的數(shù)據(jù)拼接,。具體實現(xiàn)時,,輸入的3 780個數(shù)據(jù)首先緩存在RAM中,當所需要的PN頭數(shù)據(jù)產(chǎn)生完以后,,啟動讀RAM操作,,把緩存數(shù)據(jù)輸出。PN幀頭數(shù)據(jù)插入模塊硬件實現(xiàn)結構框圖[10]如圖2所示,。在Windows XP和Quartus DE2的軟件環(huán)境下,,在Altera公司的DE2平臺的FPGA上綜合之后,其消耗資源情況如下:占用了145個Slices,,207個觸發(fā)器,,273個四輸入查找表,,占用片內(nèi)Block RAM資源在6%以下。
3 幀體數(shù)據(jù)處理的設計
3.1 傅里葉變換在OFDM系統(tǒng)中的應用[11]
設一個時間信號s(t)的抽樣函數(shù)為s(k),,其中k=0,,1,2,,…,,N-1,則s(k)的離散傅里葉變換(DFT)為:
對上式中S(t)進行抽樣,,抽樣間隔為T,,假定在一個碼元周期內(nèi)T內(nèi)含有N個抽樣值。由于OFDM信號的產(chǎn)生首先在基帶上實現(xiàn),,之后通過上變頻產(chǎn)生輸出信號,,因此基帶處理時可令上式簡化為[13]:
由此可知,OFDM系統(tǒng)的調(diào)制可以由IDFT來實現(xiàn),。同理,,它的解調(diào)可以用離散傅里葉變換實現(xiàn),大大簡化了系統(tǒng)實現(xiàn)的復雜度,。
下面討論如何用DFT來實現(xiàn)IDFT,。令X(k)是N點離散系列x(n)的DFT,于是有下面2式成立:
把X(k)看作OFDM調(diào)制系統(tǒng)的輸入信號,,則它的IDFT就是系統(tǒng)調(diào)制后的輸出,,所以可以通過正向的傅里葉變換來實現(xiàn)IDFT,可分3個步驟來實現(xiàn)[14]:(1)將長度為N的輸入數(shù)據(jù)取共軛,;(2)對N點數(shù)據(jù)做正向傅里葉變換;(3)把得到的結果求共軛,,再乘以系數(shù)1/N,。若要完成N點傅里葉變換,需要N×N次復數(shù)乘法和N(N-1)次復數(shù)加法,。N值較大時,,計算量會相當驚人,可能會因為計算量過大,,占用系統(tǒng)大部分的資源并造成較長的延時,,最終導致系統(tǒng)無法實時。
3.2 3 780點快速傅里葉變換算法
3.2.1 算法概述
目前,,關于FFT的算法主要有基于基-2和基-4[15]兩種,,從軟件仿真到硬件實現(xiàn)已有多種成熟的算法。圖3所示為3 780點FFT算法程序流程圖,。
將輸入的3 780個復數(shù)數(shù)據(jù)進行串轉并,,進行下標映射,,從原始數(shù)據(jù)中以60為間隔抽取數(shù)據(jù),組成了60組63個數(shù)1組的新序列,,用63點的素因子算法作FFT運算,,再進行第1次素因子算法的整序,然后將3 780個數(shù)據(jù)乘以相應的旋轉因子,,做60點的素因子算法,,進行第2次由于素因子分解所需的整序,最后進行因混合基分解算法所需要的整序[16],。
利用Matlab自帶的函數(shù),,輸入采用了2.4 Hz和3.5 Hz的正弦信號,將最終得到的仿真圖和Matlab自帶的函數(shù)計算比較,,可以驗證本設計的正確性,。
3.2.2 算法實現(xiàn)
3 780點FFT算法實現(xiàn)模塊的端口定義如下:
clk:系統(tǒng)的符號時鐘;
clk_working:工作時鐘,,也是系統(tǒng)比特時鐘,;
reset:系統(tǒng)復位信號,低電平有效,,完成系統(tǒng)初始化和復位,;
data_in_I、data_in_R:輸入數(shù)據(jù)的實部,、虛部,,16位位寬;
data_in_valid:輸入數(shù)據(jù)有效起始信號,,高電平有效,,持續(xù)1個輸入時鐘周期,表示從下一個時鐘沿開始為3 780個有效數(shù)據(jù)輸入,;
dout_start:輸出有效數(shù)據(jù)起始信號,,高電平有效,持續(xù)期為1個輸出時鐘周期,,表示下一個時鐘開始的3 780個數(shù)據(jù)為輸出有效數(shù)據(jù),;
dout_valid:輸出數(shù)據(jù)有效使能信號,高電平有效[18],;
dout_R,、dout_I:輸出復數(shù)數(shù)據(jù)的實部、虛部,,16位位寬,。
3 780點FFT模塊的硬件實現(xiàn)如圖4所示。clk_work-ing是系統(tǒng)的比特時鐘,,每個上升時鐘沿到來,,串行數(shù)據(jù)讀寫1次,,小N點WFTA模塊內(nèi)部移位計算1次。為了解決由于雙口RAM讀或寫的跳躍性[19],,Winograd小N DFT算法是整個3 780點FFT實現(xiàn)的基礎,,3 780點FFT被分解成幾個小點的DFT,最終通過Winograd小N DFT算法來實現(xiàn)的,。
經(jīng)過Matlab工具驗證算法設計的正確性之后,,在Quartus DE2軟件環(huán)境下編寫了Verilog HDL代碼,并進行硬件仿真,。輸入data_in_I和data_in_R為2路16位寬的隨機數(shù),,關鍵數(shù)據(jù)的仿真波形如圖5所示??梢钥闯?,存儲器的讀寫控制完全達到了預期設計效果。把輸出數(shù)據(jù)導入Matlab進行分析,,當輸出數(shù)據(jù)為16 bit時,,模塊的信噪比達到了56.8 dB,完全符合標準45 dB~60 dB的要求,。對信噪比有更高要求的應用場合,,可以采用擴展位寬來設計。要完成IFFT運算,,根據(jù)兩者之間的關系,,只需對該模塊的輸入和輸出分別取共軛,就可以完成整體數(shù)據(jù)處理模塊的功能,。
理論上分析本設計的實數(shù)乘法和加法數(shù)量已逼近4 096點FFT,,但是在FPGA具體實現(xiàn)時,小N點的WFTA運算消耗了較多的邏輯單元,,與4 096點FFT采用蝶形運算單元完成相比較,,前者消耗的邏輯單元較4 096點FFT多出不少。整個仿真在Windows XP和Quartus DE2的軟件環(huán)境下,,在Altera公司的DE2平臺的FPGA上綜合之后消耗資源情況比較如表1所示,。
本設計沒有涉及交織模塊的編寫,,但完成了一個相對完整的DMB-T的調(diào)制系統(tǒng),,其中3 780個子載波的TDS-OFDM調(diào)制是移動DTV系統(tǒng)的核心模塊。利用FFT在OFDM中的應用以及實現(xiàn),,針對移動DTV系統(tǒng)中特有的3 780點IFFT,,綜合利用了Cooley-Tukey算法、Winograd算法,、素因子算法3種算法各自的特點,,考慮了算法的復雜度,、運算的速度、資源的消耗,。本設計采用了一種新的算法,,通過了Matlab驗證和基于FPGA的仿真。本設計采用了Winograd小N DFT算法的硬件實現(xiàn),,通過16次迭代的方法完成了公交車站牌系統(tǒng)的移動DTV的核心模塊仿真設計,。
參考文獻
[1] 姜秀華,張永輝,,章文輝.數(shù)字電視原理與應用[M].北京:人民郵電出版社,,2003:149-154.
[2] 中華人民共和國國家質量監(jiān)督檢驗檢疫總局,中國國家標準化管理委員會.中華人民共和國國家標準——數(shù)字電視地面廣播傳輸系統(tǒng)幀結構,、信道編碼和調(diào)制[M]. 2007.
[3] 汪裕民.OFDM關鍵技術與應用[M].北京:機械工業(yè)出版社,,2006.
[4] 北京凌訊華業(yè)科技有限公司,清華大學.DMB-TH地面數(shù)字電視傳輸技術白皮書(第2版)[M].2006.
[5] 趙堅勇.數(shù)字電視技術[M].西安:西安電子科技大學出版社,,2005:150-152.
[6] RODGER E Z,,ROGER L P.數(shù)字通信基礎(第2版)[M]. 尹長川,等譯.北京:機械工業(yè)出版社,,2005.
[7] 文紅,,符初生,周亮.LDPC碼原理與應用[M].成都:電子科技大學出版社,,2006.
[8] 佟學儉,,羅濤.OFDM移動通信技術原理與應用[M].北京:機械工業(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] 谷萩隆嗣.快速算法與并行信號處理[M].北京:科學出版社,2003.
[12] 胡廣書.數(shù)字信號處理(第2版)[M].北京:清華大學出版社,,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].長沙:國防科技大學出版社,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ù)字信號處理教程MATLAB釋義與實現(xiàn)[M].北京:電子工業(yè)出版社,2004:90-105.
[18] 余濤.DVB-H信道編碼調(diào)制的設計及其FPGA實現(xiàn)研究[D].成都:電子科技大學,,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.