应用领域
射频(RF),信号采集与发生
挑战
OFDM是一种多载波的数字传输体制,以其特有的优势被广泛地应用到数字音频广播,数字电视广播和无线宽带等领域,并将进入到更多的领域中。对OFDM系统的仿真可以用软件完成,但是对于硬件平台的搭建往往需要大量的开销和时间。针对这种情况,如果具备一套软件仿真代码移植方便且硬件平台搭建便捷的系统,可以极大地缩短OFDM系统的开发周期,才能在标准层出不穷的今天具有较强的竞争优势。
应用方案
基于NI虚拟仪器之PXI5671上变频卡、PXI5661下变频卡和Labwindows/CVI8.5正版软件实现OFDM发射机与接收机的样机。
使用产品
LabWindows/CVI8.5 软件开发平台;PXI5671(PXI5441+PXI561);PXI5441 中频输出卡;PXI5610 射频输出卡;PXI5661(PXI5600+PXI5142);PXI5600 射频接收卡;PXI5142 下变频卡。
介绍
OFDM是一种多载波的数字传输体制,由于具有频谱利用率高和良好的抗多径干扰等优点,已经被广泛应用到数字音频广播,数字地面电视和无线局域网等领域,并且被看作第四代移动通信的技术之一。但是对OFDM样机的研制和开发无论在软件算法的编写,还是硬件电路平台的搭建,都需要大量的人员和开销,且存在较高的风险。本文提出一种基于NI平台的OFDM实时收发系统的设计方法,即在CVI软件仿真平台上实现OFDM符号的数字基带处理算法的编写,用NI PXI5671和NI PXI5661实现OFDM射频模拟信号的发射与接收。对OFDM系统进行有效的验证,为今后大规模芯片生产提供了可靠的解决方案和理论指导。
OFDM系统
正交频分复用(OFDM,OrthogonalFrequency Division Multiplexing)是把高速串行数据分成多条并行的低速数据,分别对多个正交子载波进行调制,从而达到更高的频谱效率、更大的系统容量,并且符号持续时间大大加长,在移动、多径、衰落环境下有很大的优势。
本系统的主要功能是用前端的USB设备对声音信号进行采集、处理,调制到OFDM符号中,并上变频到射频信号发射。收端将接收到的射频信号进行下变频处理得到数字信号,并解出音频帧由USB设备播放。发端系统的基带数据处理部分主要包括信源编码、FEC、映射、OFDM成帧,硬件平台的处理部分包括数字上变频和射频调制等。接收系统的基带处理部分要主要包括同步、均衡、解映射、解FEC、音频译码等,硬件平台的处理部分包括射频解调和数字下变频。
OFDM系统硬件平台架构
整个系统由两台NI主机,两个USB声卡设备,两台显示器,一台安杰伦频谱仪4440A组成,如图1所示:
图1系统结构图
首先由发端的USB设备对输入的声音信号进行采样,样点送入NI主机,然后在发端的上层软件中编写OFDM基带处理等算法,生成的OFDM基带数据输出到PXI5671上变频到中心频率为10MHz的射频信号。PXI5671由两块可分离的板卡PXI5441和PXI5610组成,其中PXI5441分为板卡RAM模块和OSP(onboard signal process,板卡数字信号处理)模块,板卡RAM模块负责主机和PXI板卡间的数据传递,OSP模块可对信号进行重采样滤波,数字上变频和DA转换等。PXI5610为射频板卡,经过两级混频放大滤波可将PXI5441输出的模拟IF信号调制到范围为250KHz-2.7GHz的射频信号。收端由PXI5661对输入的射频信号进行解调,下变频到数字基带信号,并输出到NI主机上。PXI5661同样由两块分离的板卡PXI5600和PXI5142组成。PXI5661完成射频信号到中频信号的转换,PXI5142的两个模块OSP模块和板卡RAM模块,分别完成AD采样、数字下变频、重采样滤波和主机与PXI板卡数据传递等功能,由收端的软件上层算法解出音频信号输出给USB声卡播放。
无论收端还是发端系统,上层软件算法产生的数据和PXI板卡的数据交互需要由主机内存和板卡RAM来完成,其中DMA控制主机内存和板卡RAM间的数据传递,可达到1Gbytes/s的数据吞吐量。板卡RAM采用的是一种SMC(Synchronization and Memory Core)技术,该技术无须将指令和数据分开存储,RAM中的FPGA模块不但能处理上层软件产生的所有指令,对OSP各模块进行配置,而且能对数据流进行缓存,由OSP的读取引擎,并以上层软件中所设的IQ速率读取数据,送入OSP中进行重采样、滤波、变频等处理。
基带处理算法的设计与实现
基带处理算法的实现
是基于LabWndows/CVI8.5的软件平台,它是一个交互式开发平台,集成了标准C的编译、链接、调试等,并且采用简单直观的用户界面设计,用户只需在函数面板上直接输入参数,就会以事件驱动回调函数的方式运行整个程序,并可以将数据以图形的形式在界面上显示,提高了整个工程的运行效率。图2为本系统发端和收端的应用界面。
对于单线程系统,一般分为数据的采集模块、分析处理模块、显示存储模块。这三个模块在时间上是顺序执行的,即后一个模块需等待前一个模块数据的到来时才开始工作。然而本系统对实时性要求比较高,比如在收端,USB声卡的播放需要收端的音频译码模块在400ms内处理完一帧,才能及时提供给USB声卡样点连续地播放声音,这就需要音频译码模块前的所有基带处理部分需要在400ms内完成一个物理帧到音频帧的解调。同样在发端,USB声卡每秒采集19200个样点给音频编码模块进行编码,每400ms输出一音频编码帧,FEC、映射及OFDM成帧等模块也必须在400ms内处理完成,否则会出现丢帧和覆盖的现象。可以肯定,用单线程这种顺序化的执行方式效率很低,每个模块都要等待前一个模块的数据,对于实时性要求较高和复杂性较高的系统不适用。
本系统使用的是多线程技术,可以将处理模块拆分成多个线程,使多个线程并行运行,只要保证每个线程的运行时间小于音频处理模块,系统就会正常工作。其中发端算法用3个线程完成音频编码,FEC、映射、OFDM成帧等处理,并将OFDM数据写到板卡RAM中。收端算法用6个线程完成从板卡RAM中读取OFDM基带数据、同步、均衡、FFT、解映射、解FEC等处理,由音频译码模块将音频帧送给USB声卡进行播放。
为了保证线程间数据传递有序进行,CVI还提供了事件通知、安全队列、线程优先级等函数,保证线程间的同步和数据的传递。本系统使用的是全局BUFFER和安全队列回调函数方式使两个线程间获得同步。即两个线程间共享一个BUFFER和安全队列,前一个线程将每次计算得到的数据写到BUFFER中,并产生一标志位FLAG,写入安全队列,后一线程捕捉到安全队列中的FLAG,判断是否满足回调函数的条件,满足则启动该线程,并将BUFFER中的数据读出,不满足则继续捕捉FLAG。通过对安全队列中FLAG的读写,控制线程启动的时间,使得两线程对数据的读写达到平衡。
结论
本系统用LabWindows/CVI8.5软件完成OFDM的数字基带处理,在PXI硬件平台上完成射频信号的处理,有效地对OFDM系统进行验证。而搭建FPGA PCB平台完成OFDM Demo样机,首先在芯片的选型、制板上就需要大量的时间和人员,且具有一定的风险性;其次在软件代码开发方面,需要花大量的时间对FPGA代码进行仿真测试和集成,而且改动起来灵活性差。然而基于NI技术的OFDM系统的开发,由于在软件上仿真代码的可移植性,和上变频等硬件平台的实用性,减少了OFDM系统的开发周期,节约了开发成本和人员。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。