LATTICE结构数字滤波器的设计与FPGA实现(3)

2019-05-24 22:07

北华航天工业学院毕业论文

况以及本课题的研究思路。

第2章,CORDIC算法原理。主要介绍了CORDIC算法的基本原理,通过CORDIC算法的硬件结构实现LATTICE结构数字滤波器的设计。

第3章,FPGA设计概述。主要介绍了FPGA的概念,发展历程、特点以及应用;硬件描述语言VHDL的概念和特点;开发环境软件ISE14.4和仿真软件Modelsim的特点以及FPGA的开发流程等。

第4章,LATTICE结构数字滤波器的设计与FPGA实现。主要介绍了在ISE14.4开发环境中LATTICE结构数字滤波器的设计、编程,用Modelsim软件进行仿真,并对仿真结果进行分析。

第5章,结束语。对本论文的研究成果进行分析,总结课题论文的设计心得与体会,为以后的课题研究积累有效的经验。

本课题的创新点:

在ISE平台下,运用仿真软件Modelsim对FPGA程序进行功能及时序仿真。 编写MATLAB程序,从Modelsim仿真软件生成的文本文件中读取滤波器输出数据,对数据进行时域及频域分析。

3

北华航天工业学院毕业论文

第2章 CORDIC算法原理

2.1 CORDIC算法简介

CORDIC算法可以追溯到1957年由J.Volder发表的一篇关于坐标旋转数字计算机(Coordinate Rotation Digital Computer,CORDIC)算法的文章。

在上个世纪五十年代,在大型实际的计算机中的实行移位相加受到了当时技术上的限制,所以使用CORDIC变得非常必要。到了七十年代,惠普公司和其他公司生产了手持计算器,许多计算器使用一个内部CORDIC单元来计算所有的三角函数(那时求一个角度的正切值需要延迟大约1秒中)。

二十世纪八十年代,随着高速度乘法器与带有大存储量的通用处理器的出现,CORDIC算法变得无关紧要了。

然而在二十一世纪的今天,对于FPGA来说,CORDIC一定是在数字信号处理应用中(比如:多输入多输出(MIMO),波束形成以及其他自适应系统)计算三角函数的备选技术。

2.2 CORDIC算法原理概述

如图2-1 ,在xy坐标平面内将点(x1,y1)旋转?角度到点(x2,y2)。其关系用(2.1)式表示:

x2?x1cos??y1sin?y2?x1sin??y1cos? (2.1)

yy2y1?x1x2x

图2-1 CORDIC算法坐标旋转图

这被称为是平面旋转、向量旋转或者线性(矩阵)代数中的Givens旋转。上面的方程组同样可写成矩阵向量形式:

4

北华航天工业学院毕业论文

?x2??cos??y???sin??2??例如一个90°相移为:

?sin???x1? (2.2) ???cos???y1??x2??0?1??x1???y1??y???10??y???x? (2.3)

??1??1??2??通过提出因数cos?,式(2.1)可写成下面的形式:

x2?x1cos??y1sin??cos??x1?y1tan??y2?x1sin??y1cos??cos??y1?x1tan??如果去除项cos?,得到伪旋转方程式:

(2.4)

x2?x1?y1tan?y2?y1?x1tan?故方程可表示为:

(2.5)

CORDIC算法的核心是伪旋转角度,其中tan??2?i。

x2?x1?y1tan??x1?y12?iy2?y1?x1tan??y1?x12?i (2.6)

表2.1给出用CORDIC算法中每个迭代(i)的旋转角度(精确到9位小数)

表2.1用CORDIC算法中每个迭代(i)的旋转角度 i 0 1 2 3 4 ?i 45.0 26.555051177… 14.036243467… 7.125016348… 3.576334374… tan?i?2?i 1 0.5 0.25 0.125 0.0625 在这里,把变换改成了迭代算法,完成了移位操作。

它的形式为:第1次迭代旋转45°,第2次迭代旋转26.6°,第3次迭代旋转14°等。

很显然,它的角分辨率与精度也有关。

cos45?xcos26.5?xcos14.03?xcos7.125??xcos0.0139??0.60725941 1?1.6467602。

0.607252941角分辨率的数据位数对最终的旋转精度非常关键。

??????????

因此,在13次旋转以后,为了标定伪旋转的幅度,要求乘以一个系数1.64676024187。

5

北华航天工业学院毕业论文

2.3 CORDIC算法实现的硬件结构

CORDIC算法实现的硬件结构主要分为两种:简洁的迭代运算结构和高速的流水线结构。由于考虑到系统实时性和本文LATTICE结构数字滤波器的设计要求,本文主要介绍高速流水线结构。

2.3.1 状态机结构

CORDIC算法的直接实现方式是状态机结构,即简洁的迭代运算结构。这种结构只有一级CORDIC运算单元,是由方程直接转化而来的。其在每一个时钟内都可精确地计算一次迭代。这种方法的优点是硬件开销小,它的缺点是控制方面却相对比较复杂,需要多个时钟周期完成一次简单的CORDIC运算,而且其运算速度较慢,影响数据的实时、高速处理。

x(0)y(0)z(0)RegisterRegisterRegistersign(n-1)?n??n??cons(n)x(n)y(n)z(n)

图2-2 状态机结构图

2.3.2 流水线结构

CORDIC算法的另一种实现方式是采用高速的流水线结构,一个单独的运算单元使得每一级CORDIC迭代的运算处理速度很快,流水线每填充一个时钟周期,就能计算出一组

6

北华航天工业学院毕业论文

结果,为实现数据高速实时处理提供了可能。每一级进行一次迭代运算来实现其功能,移位的位数就等于当前的迭代运算的级数,加法和减法的选择是由该级中Z的最高位即符号位决定,并得到了下一级的X、Y和Z的值。经过n级高速流水线运算后,Z的值趋近零,X和Y的值就将变为双曲余弦值和双曲正弦值。它的每一级结构主要是由2个移位器、3个加(减)法器组成的,而级与级之间可以直接相连即可,不需额外的寄存器。

x(0)y(0)z(0)sign(z0)?0??0??cons(0)x(1)y(1)sign(z1)?1?x(2)?1?y(2)cons(1)??(n-1)?x(n)...x(n-1)?(n-1)??y(n)图2-3 流水线结构图

...y(n-1)sign(z(n-1))z(n)...cons(n-1)

2.4 本章小结

本章主要介绍了CORDIC算法的基本原理,阐述CORDIC算法的基本原理,得出了CORDIC算法实现的两种硬件结构。考虑到系统实时性的要求,我们应该采用高速流水线结构设计LATTICE结构数字滤波器,为第4章的学习打下坚实的基础。

7


LATTICE结构数字滤波器的设计与FPGA实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016卫生管理初级师考试试题总汇及答案(全)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: