基于fpga的数控振荡器的设计与实现.doc

基于fpga的数控振荡器的设计与实现.doc

ID:58364844

大小:150.00 KB

页数:4页

时间:2020-04-17

基于fpga的数控振荡器的设计与实现.doc_第1页
基于fpga的数控振荡器的设计与实现.doc_第2页
基于fpga的数控振荡器的设计与实现.doc_第3页
基于fpga的数控振荡器的设计与实现.doc_第4页
资源描述:

《基于fpga的数控振荡器的设计与实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于FPGA的数控振荡器的设计与实现  摘    要:介绍一种利用矢量旋转的CORDIC(COordinationRotationDIgitalComputer)算法实现正交数字混频器中的数控振荡器(NCO)的方法。推导了CORDIC算法产生正余弦信号的实现过程,给出了在FPGA中设计数控振荡器的顶层电路结构,并根据算法特点在设计中引入流水线结构设计。       关键词:软件无线电;数控振荡器;CORDIC算法;现场可编程门阵列 引    言       在正交数字混频器中,采用数字频率合成技术,可以将数字处理延续到正交调制之后或正交解调之前,滤波

2、器和增益控制就可以用数字方法实现,I、Q两路也就不会存在增益的不平衡,加上数控振荡器(NCO)的低正交误差,可以使系统误差降低到数据的最低比特(LSB)的高精度范围。此外,正交数字混频器更容易与数字信号处理技术结合,使得数字调制更加灵活,进而实现软件无线电所要求的软件可更改的调制解调。       数控振荡器是正交数字混频器的核心部分,它具有频率分辨率高、频率变化速度快、相位可连续线性变化和生成的正弦P余弦信号正交特性好等特点。而且NCO的相位、幅度均已数字化,可以直接进行高精度的数字调制解调。随着数字通信的发展,传送的数据速率越来越高。如何得到一个

3、可数控的高频载波信号是实现高速数字通信系统必须解决的问题。为此,作者对如何在FPGA中实现高速正交数字混频器中的数控振荡器的方法进行了探讨。 数控振荡器的基本实现原理       数控振荡器的作用是产生正交的正弦和余弦样本。传统方法是采用查表法(LUT),即事先根据各个正余弦波相位计算好相位的正余弦值,并按相位角度作为地址存储该相位的正余弦值,构成一个幅度P相位转换电路(即波形存储器)。在系统时钟的控制下,由相位累加器对输入频率字不断累加,得到以该频率字为步进的数字相位,再通过相位相加模块进行初始相位偏移,得到要输出的当前相位,将该值作为取样地址值送

4、入幅度P相位转换电路,查表获得正余弦信号样本。对于一个相位位数为n,输出信号幅度位数为M的数控振荡器,所需查找表大小为M×2n。为了提高数控振荡器的频率分辨率,往往需要扩大波形存储器的容量,造成存储资源的大量消耗。而且,当需要外挂RAM来存储波形时,由于受到RAM读取速度的影响,数控振荡器的输出速率必然受到制约。因此,当需要设计高速、高精度的数控振荡器时,不宜采用查表法。       为了避免使用大容量存储器,可以考虑利用算法来产生正余弦样本。基于矢量旋转的CORDIC算法正好满足了这一需求,该算法主要用于计算三角函数、双曲函数及其它一些基本函数运算

5、。它有线性的收敛域和序列的特性,只要迭代次数足够,即可保证结果有足够的精度。WaltherJS于1971年提出了统一的CORDIC形式。假定初始向量V1(x1,y1)旋转角度θ后得到向量V2(x2,y2):                 即:                                                              若每次旋转的角度θ是正切值为2的倍数,即θi=arctan(2-i),则cosθi=(1+2-2i)-1/2。假设以δi代表矢量的旋转方向,+1表示逆时针旋转,-1表示顺时针旋转,故第i步

6、旋转可用下式表示:                 其中:(1+2-2i)-1/2为模校正因子。对于字长一定的运算,该因子是一个常数,用K表示,以16bits字长为例,则:           可见,迭代运算不能使幅值比例因子恒为1。为了抵消因迭代产生的比例因子的影响,可将输入数据X,Y校正后再参与运算,以避免在迭代运算中增加校正运算,降低CORDIC算法的速度。由此运算迭代式可以简化成:                 式(5)运算仅通过加法器及移位器就可以实现。此外,若用Zi表示第i次旋转时与目标角度之差,         则:         

7、        经过n次旋转后,式(5)的n次迭代可以得到以下结果:          本文介绍的数控振荡器的设计是在式(7)的基础上,给定x0=K,y0=0,则迭代结果为:                  将所需产生的角度值作为z0输入,通过式(5)、(6)的迭代运算,迭代结果输出的xn和yn就是所需要的三角函数值。 数控振荡器的FPGA实现   图1是数控振荡器的顶层电路。由图可见,频率控制字寄存器将接收到的的频率控制字送入相位累加器,相位累加器对系统时钟进行计数,每到达输入频率控制字的值即对相位进行累加,随后将累加值送入相位相加器,与相位控制

8、字寄存器接收到的初始相位进行相加,得到当前的相位值。其中,相位累加器是决定NCO性能的一个关键模块,可以利用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。