×
嵌入式开发 > 详情

基于CORDIC 2FSK调制器的FPGA设计

发布时间:2020-06-29 发布时间:
|

摘要:频移键控(FSK)是用不同频率的载波来传递数字信号,并用数字基带信号控制载波信号的频率。提出一种基于流水线CORDIC算法的2FSK调制器FPGA实现方案,可有效地节省FPGA的硬件资源,提高运算速度。最后,给出该方案的硬件测试结果,验证了设计的正确性。

0 引言

频移键控(FSK)是用不同频率的载波来传送数字信号,并用数字基带信号控制载波信号的频率。具有抗噪声性能好、传输距离远、误码率低等优点。在中低速数据传输中,特别是在衰落信道中传输数据时,有着广泛的应用。传统上以硬件实现载波的方法都是采用直接频率合成器(DDS)实现。但是DDS传统的实现方式是基于查找表思想,即通过查找预先存储的正余弦表来产生需要的正余弦值。当频率、精度要求越高,需要存储的值也就越多,考虑FPGA的RAM资源有限,传统的DDS实现方式就有了应用瓶颈。因此导致开发成本过高,甚至无法实现,不适合现代通信系统的发展。

本文提出了应用CORDIC(Coordinate Rotation Digital Computer)算法实时计算正弦值的方案,并基于CORDIC算法在FPGA芯片上设计了2FSK调制器。这不仅能够节省大量的FPGA逻辑资源,而且能很好地兼顾速度、精度、简单、高效等方面。

1 CORDIC算法原理及结构

1.1 CORDIC算法原理

CORDIC算法是由J.Volder于1959年提出的。该算法适用于解决一些三角学的问题,如平面坐标的旋转和直角坐标到极坐标的转换等。C-ORDIC算法的基本思想是通过一系列固定的、与运算基数有关的角度的不断偏摆以逼近所需的旋转角度。从广义上讲,CORDIC方法就是一种数值计算的逼近方法。该算法实现三角函数的基本原理如图1所示。

设初始向量(x0,y0)逆时针旋转角度θ后得到向量(xn,yn),如图1所示。则:

为了避免复杂的乘法运算,用一系列微旋转来处理,第i次旋转可表示为:

式中:θi表示第i次旋转的角度,并且满足tanθi=2-i;zi表示第i次旋转后与目标角度的差;δi表示 向量的旋转方向,由zi的符号位来决定,即δi=sign zi。为每一级的校正因子,也就是每一级旋转时向量模长发生的变化,对于字长一定的运算,总的校正因子是一个常数。若总的旋转次数为n,则总校正因子用k表示为:




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
一只老鸟的嵌入式ARM学习心得