文档介绍:基于CORDIC算法数字下变频器设计
摘要本文以软件无线电为指导,提出基于CORDIC算法利用FPGA平台数字下变频器设计方案。首先分析下变频器的结构;然后采用模块化设计思想,将数字下变频的功能模块包括数字控制振荡器、CIC抽取滤波、HBF抽取滤波器、FIR低通滤波器进行分析和FPGA的设计;最后在MATLAB/DSPBuilder下硬件仿真模块进行仿真并给出仿真结果。
关键字数字下变频;CORDIC;FPGA
1 引言
软件无线电的设计思想之一是将A/D 转换器尽可能靠近天线,即把A/D从基带移到中频甚至射频,把接收到的模拟信号尽早数字化。由于数字信号处理器(DSP)的处理速度有限,往往难以对 A/D采样得到的高速率数字信号直接进行各种类别的实时处理。为了解决这一矛盾,需要采用数字下变频(DDC)技术,将采样得到的高速率信号变成低速率基带信号,以便进行下一步的信号处理。数字下变频技术在软件无线电和各类数字化接收机中得到了广泛应用。因此建立软件无线电的通用数字下变频器是非常必要的。
2 下变频器的结构与组成
我们要设计数字下变频器如图1所示。
量化的中频数字信号进入数字下变频器后,先与数字控制振荡器产生的本地数字载波混频,经过CIC抽取滤波器,HBF抽取滤波器,FIR低通滤波对信号进行D倍抽取后得到正交基带信号,这是下变频过程。虚线框内为数字下变频部分是我们设计和讨论的重点。
3 数字控制振荡器振荡器
如图1所示。正交数字下变频器前端包括两部分一是乘法器;一是NCO。乘法器设计很简单,NCO的目标是产生一个理想的正弦和余弦波。更确切地说是产生一个可变频率的正弦波样本如公式:其中为本地振荡频率; 为DDC输入信号的采样频率。正弦波样木可以用实时计算的方法产生,但这只适用信号采样频率很低的情况。在软件无线电高速信号采样频率的情况下,NCO实时计算的方法是不可取的。NCO产生正弦波样本通常采用查表法,通过输入的相位数据来寻址查表输出相应的正弦波幅值。对于一个相位位数为n,输出信号幅度位数为M的数控振荡器,这就需要耗费大量的ROM资源(2nX Mbit)。为了避免使用大容量的存储器。可采用了一种基于CORDIC( Coordinate Rotation puter)算法来产生正/余弦样本。该算法有线性的收敛域和序列特性。只要迭代次数足够,即可保证结果有足够的精度。并且用于混频的乘法器也可以省掉。从而还节省了大量的逻辑硬件资源。使得数字下变频更易于用FPGA来实现。
CORDIC算法
CORDIC算法基本原理是:设初始向量x0+jy0经旋转角度后得到的向量 xn+jyn即, ,设旋转基本角度θi,令,那么初始向量可通过一系列的基本角度θi的旋转,逐渐逼近目标向量。在旋转模式下,如果设Z0=θ,根据J,S,WALTER的推导有:
(1)
其中
δi代表向量旋转方向
经过n 次旋转迭代后的结果为:
其中, ,称为模校正因子。如果令, y0=0,则,由上述推导可知:若已知角度Z0 和初始向量的 x0,y0 可由式(1)迭代运算得到角度 Z0的正余弦值,而式(3)中的迭代运算用硬件实现时非常方便,只有加(减)和移位操作。
基于CORDIC算法实现NCO
我们设计的NCO顶层结构为