- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于循环前缀ML估计的同步分析及FPGA实现
算法的FPGA实现
图3所示是同步算法FPGA实现框图,设计采用512抽样点,最大保护间隔按照NCP=512×1/4=128计算。工作过程大致如下:
512位复数数据通过写地址存储到延时寄存器,存满以后通过读地址读出前128位复数,同时和后面的直接输入128位数据送到后级模块,两路数据分别做共轭乘。延时寄存器模块可用一个512×16的双端口 RAM,RAM的读写地址分别为128位计数器和512位计数器。共轭乘后的复数数据流送给两路移动求和模块,求功率后的值送给一路移动求和模块。控制器对累加器清零,同时控制RAM的读写和使能信号的产生。累加器采用16位二进制数累加,两路16位的数据移动求和之后去求符号平均,然后再和另一路移动求和的结果运算归一化,求相关峰最人值,若出现相关峰的最大值,就表明同步的到来,这时标记该数据的地址,然后让控制器发出标志位置高指令,通知从该数据开始就可以进行FFT解调处理。如果没有相关峰最大值的出现,系统再循环读出后128位地址数据,重复前面的运算,直到找到最大相关峰。
在求归一化相关峰最大位置模块中,先求出平均移动和的实虚部绝对值之和,再除以功率,得归一化相关值。南于归一化值为小数,故需给结果乘以一因子,这里取2。由于ML同步脉冲是在最大值后持续ML窗宽时间输出,这期间最大值对应的相关和实、虚部保持不变,故求频偏模块可顺序计算,只须用ML同步脉冲将求频偏模块输出的频偏锁定输出。
经过QuartusII 5.0工具的设计、编译、综合等一系列步骤,基于PN序列同步系统融合成一个整体模块,如图4所示。仿真结果如图5所示。
结语
上述FPGA实现的是基于数据符号的OFDM系统同步算法,采用Altera公司的芯片EPlS25102015进行试验仿真,该芯片有25660个逻辑单元,1944576个存储模块单元,80个DSP模块单元,707个I/O输出引脚。
基于循环前缀的同步算法占用芯片资源适中,但是占用了27%的芯片I/O引脚,另外,时钟频率也较低,设计电路较难,但是它达到更高的同步精度还要结合其他同步方式,它也可以应用于无线信道通信中。综合算法设计占用芯片资源以及相关情况的分析,算法在FPGA中的实现是可行且可靠的,充分发挥了FPGA芯片集成密度大、速度快、功耗低、通用性好、适应性强和重复编程的特点。通常,可编程逻辑芯片都能提供人容量的逻辑和存储单元,因此,芯片预留资源都是有富余的,信号处理的实时性和可靠性是关注的重点,当然成本也是考虑的一个因素,与此同时,也要考虑电路的设计复杂程度,因为它会影响数据处理的速度。