《电子技术应用》
您所在的位置:首页 > 模拟设计 > 业界动态 > 基于FPGA的移动DTV调制系统的数字通信

基于FPGA的移动DTV调制系统的数字通信

2009-11-19
作者:葛立扬,葛海亮,高 鹏
关键词: 移动DTV TDS-OFDM IFFT FPGA

摘  要: 在深入研究移动DTV国家标准的基础上,对调制系统进行了设计规划,并对信道调制的星座映射、系统信息插入、帧体数据处理、PN序列插入的帧形成模块和成形滤波模块进行了设计与仿真,验证了其在公交站牌系统上的正确性。
关键词: 移动DTV;TDS-OFDMIFFT;FPGA

1 星座映射的设计与实现
  基于FPGA的星座映射模块设计接口定义如下:
     clk_bitx2:系统比特时钟2倍周期的输入时钟;
  QAM_para:控制模块的参数信号;
  constellation:星座映射模式;
  data_in_en:输入数据有效信号;
  data_v_in:输入数据,数据宽度为6位;
  data_I:输出I路数据,数据宽度为16位;
  data_Q:输出Q路数据,数据宽度为16位;
  data_out_en:输出数据有效信号。
  在Windows XP和Quartus DE2的软件环境下,在Altera公司的DE2平台的FPGA上综合之后,其消耗资源情况如下:占用了90个触发器,138个四输入查找表,69个Slices,占用1个片内存储块Block RAM,不到总量的1%。
2 系统信息插入的设计与实现
2.1 系统信息
  本系统中预设了64种不同的系统信息模式,并采用扩频技术传输。这64种系统信息在扩频前可以用6个信息位(s5s4s3s2s1s0)来表示,其中s5为MSB,定义如下:s3s2s1s0:编码调制模式;s4:交织信息;s5:保留[1]。
  该6 bit扩频前的系统信息将采用扩频技术扩为32 bit长的系统信息矢量,即用长度为32 bit的Walsh序列和长度为32 bit的随机序列来映射保护[2]。国家标准中已经给出了扩频后的64个32 bit的系统信息矢量,将这32 bit采用I、Q相同的4QAM调制映射成为32个复符号,再加上4个帧体模式符号[3],得到了36个系统信息符号。在本设计中帧体模式C=3 780,“1111”4个bit也采用I、Q相同的4QAM映射为4个复符号,由于这种映射模式是2位到2位的映射,所以把它扩展为8 bit的符号,用补码表示。映射后的4个帧体模式指示符号在前,32个调制和码率等模式指示符号在后。该36个系统信息符号通过复用模块与信道编码后的数据符号复合成帧体数据[4]。
2.2 系统信息插入的实现
  系统信息插入模块的端口定义[5]为:
  tps_in[5:0]:输入的系统信息位为6 bit并行数据;
  data_Qed:输入数据,经过QAM映射后的32位帧体数据,高16位为实部,低16位为虚部;
  data_valid_in:输入数据有效信号;
  clk:模块工作时钟,也是数据输入时钟;
  rst:复位信号,低电平有效,等于0时可以复位控制模块的寄存器值;
  dout_start:输出3 780个连续数据的起始脉冲信号,持续1个时钟周期;
  dout_en:输出3 780个连续数据的有效使能信号;
  dout:输出数据,高16位为实部,低16位为虚部; 系统信息插入模块[6]仿真波形图如图1所示。

  在Windows XP和Quartus DE2的软件环境下,在Altera公司的DE2平台的FPGA上综合之后,其消耗资源情况如下:占用了115个Slices,187个触发器,208个四输入查找表,占用片内Block RAM资源在6%以下。
  本文设计的是帧头模式1,长度为420,为OFDM帧体长的1/9。前同步缓冲的长度取82,后同步缓冲的长度取83[7]。
  PN帧头数据插入[8]模块的结构定义如下:
  clk:模块工作时钟,是系统的符号时钟;
  data_in:32位的输入数据,数据的高16位为实部,低16位为虚部;
  data_in_en:输入有效数据使能信号,高电平有效;
  data_in_start:输入有效数据起始信号,高电平有效;
  PN_mode:插入PN序列的模式指示信号;
  dout_start:输出有效数据起始信号,高电平有效;
  dout_en:输出有效数据使能信号,高电平有效;
  dout:32位输出数据,数据的高16位为数据实部,低16位为数据虚部[9]。
  PN帧头数据插入模块主要完成OFDM调制的3 780个数据和PN帧头的数据拼接。具体实现时,输入的3 780个数据首先缓存在RAM中,当所需要的PN头数据产生完以后,启动读RAM操作,把缓存数据输出。PN帧头数据插入模块硬件实现结构框图[10]如图2所示。在Windows XP和Quartus DE2的软件环境下,在Altera公司的DE2平台的FPGA上综合之后,其消耗资源情况如下:占用了145个Slices,207个触发器,273个四输入查找表,占用片内Block RAM资源在6%以下。

3  帧体数据处理的设计
3.1  傅里叶变换在OFDM系统中的应用[11]
      设一个时间信号s(t)的抽样函数为s(k),其中k=0,1,2,…,N-1,则s(k)的离散傅里叶变换(DFT)为:
  
   对上式中S(t)进行抽样,抽样间隔为T,假定在一个码元周期内T内含有N个抽样值。由于OFDM信号的产生首先在基带上实现,之后通过上变频产生输出信号,因此基带处理时可令上式简化为[13]:
   

  由此可知,OFDM系统的调制可以由IDFT来实现。同理,它的解调可以用离散傅里叶变换实现,大大简化了系统实现的复杂度。
   下面讨论如何用DFT来实现IDFT。令X(k)是N点离散系列x(n)的DFT,于是有下面2式成立:
       

  把X(k)看作OFDM调制系统的输入信号,则它的IDFT就是系统调制后的输出,所以可以通过正向的傅里叶变换来实现IDFT,可分3个步骤来实现[14]:(1)将长度为N的输入数据取共轭;(2)对N点数据做正向傅里叶变换;(3)把得到的结果求共轭,再乘以系数1/N。若要完成N点傅里叶变换,需要N×N次复数乘法和N(N-1)次复数加法。N值较大时,计算量会相当惊人,可能会因为计算量过大,占用系统大部分的资源并造成较长的延时,最终导致系统无法实时。
3.2 3 780点快速傅里叶变换算法
3.2.1 算法概述
  目前,关于FFT的算法主要有基于基-2和基-4[15]两种,从软件仿真到硬件实现已有多种成熟的算法。图3所示为3 780点FFT算法程序流程图。

   将输入的3 780个复数数据进行串转并,进行下标映射,从原始数据中以60为间隔抽取数据,组成了60组63个数1组的新序列,用63点的素因子算法作FFT运算,再进行第1次素因子算法的整序,然后将3 780个数据乘以相应的旋转因子,做60点的素因子算法,进行第2次由于素因子分解所需的整序,最后进行因混合基分解算法所需要的整序[16]。
  利用Matlab自带的函数,输入采用了2.4 Hz和3.5 Hz的正弦信号,将最终得到的仿真图和Matlab自带的函数计算比较,可以验证本设计的正确性。
3.2.2 算法实现
  3 780点FFT算法实现模块的端口定义如下:
  clk:系统的符号时钟;
  clk_working:工作时钟,也是系统比特时钟;
  reset:系统复位信号,低电平有效,完成系统初始化和复位;
  data_in_I、data_in_R:输入数据的实部、虚部,16位位宽;
  data_in_valid:输入数据有效起始信号,高电平有效,持续1个输入时钟周期,表示从下一个时钟沿开始为3 780个有效数据输入;
  dout_start:输出有效数据起始信号,高电平有效,持续期为1个输出时钟周期,表示下一个时钟开始的3 780个数据为输出有效数据;
  dout_valid:输出数据有效使能信号,高电平有效[18];
  dout_R、dout_I:输出复数数据的实部、虚部,16位位宽。
  3 780点FFT模块的硬件实现如图4所示。clk_work-ing是系统的比特时钟,每个上升时钟沿到来,串行数据读写1次,小N点WFTA模块内部移位计算1次。为了解决由于双口RAM读或写的跳跃性[19],Winograd小N DFT算法是整个3 780点FFT实现的基础,3 780点FFT被分解成几个小点的DFT,最终通过Winograd小N DFT算法来实现的。

  经过Matlab工具验证算法设计的正确性之后,在Quartus DE2软件环境下编写了Verilog HDL代码,并进行硬件仿真。输入data_in_I和data_in_R为2路16位宽的随机数,关键数据的仿真波形如图5所示。可以看出,存储器的读写控制完全达到了预期设计效果。把输出数据导入Matlab进行分析,当输出数据为16 bit时,模块的信噪比达到了56.8 dB,完全符合标准45 dB~60 dB的要求。对信噪比有更高要求的应用场合,可以采用扩展位宽来设计。要完成IFFT运算,根据两者之间的关系,只需对该模块的输入和输出分别取共轭,就可以完成整体数据处理模块的功能。

  理论上分析本设计的实数乘法和加法数量已逼近4 096点FFT,但是在FPGA具体实现时,小N点的WFTA运算消耗了较多的逻辑单元,与4 096点FFT采用蝶形运算单元完成相比较,前者消耗的逻辑单元较4 096点FFT多出不少。整个仿真在Windows XP和Quartus DE2的软件环境下,在Altera公司的DE2平台的FPGA上综合之后消耗资源情况比较如表1所示。

  本设计没有涉及交织模块的编写,但完成了一个相对完整的DMB-T的调制系统,其中3 780个子载波的TDS-OFDM调制是移动DTV系统的核心模块。利用FFT在OFDM中的应用以及实现,针对移动DTV系统中特有的3 780点IFFT,综合利用了Cooley-Tukey算法、Winograd算法、素因子算法3种算法各自的特点,考虑了算法的复杂度、运算的速度、资源的消耗。本设计采用了一种新的算法,通过了Matlab验证和基于FPGA的仿真。本设计采用了Winograd小N DFT算法的硬件实现,通过16次迭代的方法完成了公交车站牌系统的移动DTV的核心模块仿真设计。
参考文献
[1] 姜秀华,张永辉,章文辉.数字电视原理与应用[M].北京:人民邮电出版社,2003:149-154.
[2] 中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会.中华人民共和国国家标准——数字电视地面广播传输系统帧结构、信道编码和调制[M]. 2007.
[3] 汪裕民.OFDM关键技术与应用[M].北京:机械工业出版社,2006.
[4] 北京凌讯华业科技有限公司,清华大学.DMB-TH地面数字电视传输技术白皮书(第2版)[M].2006.
[5] 赵坚勇.数字电视技术[M].西安:西安电子科技大学出版社,2005:150-152.
[6] RODGER E Z,ROGER L P.数字通信基础(第2版)[M].  尹长川,等译.北京:机械工业出版社,2005.
[7] 文红,符初生,周亮.LDPC码原理与应用[M].成都:电子科技大学出版社,2006.
[8] 佟学俭,罗涛.OFDM移动通信技术原理与应用[M].北京:机械工业出版社,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] 胡广书.数字信号处理(第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] 陈怀琛.数字信号处理教程MATLAB释义与实现[M].北京:电子工业出版社,2004:90-105.
[18] 余涛.DVB-H信道编码调制的设计及其FPGA实现研究[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.
 

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。