📄 read me.txt
字号:
在这个文件中包含的数据是由Visual C++中CORDIC算法程序产生的。
详细代码请参照其他文件。这些数据是在Q1.30的定点数据格式下产
生的(注:在求abs()/atan()时,为了使中间数据不致溢出而采用了
Q2.29的格式)。为了保证32位的精度,所以对于输入的浮点数据要
求为double型。输入的数据由Matlab产生,格式为format long e,
产生方法可在Matlab测试代码中找到,也可以在C++代码的数据头文
件的说明部分找到。
各个数据文件说明如下:
_abs.dat: mode=circular decision variable=y
_atan.dat: mode=circular decision variable=y
_atanh.dat: mode=hyperbolic decision variable=y
_cos.dat: mode=circular decision variable=z
_cosh.dat: mode=hyperbolic decision variable=z
_dev.dat: mode=linear decision variable=y
_mult.dat: mode=linear decision variable=z
_sin.dat: mode=circular decision variable=z
_sinh.dat: mode=hyperbolic decision variable=z
_sqrt.dat: mode=hyperbolic decision variable=y
_recorder.dat: record each steps of the progress of iterations
which is useful when debugging
这些数据产生后将被装载到Matlab中,用于验证。
代码文件说明:
Dformat.h 为Cordic算法系统提供一种数据格式控制方法,它
的一个对象是Cordic类的一个成员。其中提供了浮
点与定点数据格式互化的方法,转化结果基于
Dformat类的私有成员m、n,分别代表了32位定点
系统用于表示整数和小数部分的位数。当然需要一
位来表示数据符号的。定点方法的副作用在数据溢
出时便表现出来了。
Dformat.cpp Dformat类的实现代码
Cordic.h Cordic类接口,为用户提供了Cordic算法的主要函
数。共分为三大类:set函数、功能函数、get函数。
其他还有一些print\save函数。私有数据有两类:
系统参数(如数据格式、模式)和初始状态(如决
策变量、初始值)。当然这些划分不是严格的,只
是为了便于理解。还有一些工具函数,如validator、
cordic、terminator,前一个是对私有数据的有效
性进行验证的函数;后一个是算法的核心,为各种
模式提供数据运算支持;中间一个为cordic提供辅
助。validator、terminator都是待扩展的函数。
Cordic.cpp Cordic的实现文件。当初始值(x0,y0,z0)不在收敛
区域内时,需要进行数据预处理和后期处理,这些
可以在功能函数中扩展。
ROM.h 模拟ROM中需要存储的数据:arctan(2^(-Fi))、
arctanh(2^(-Fi))
testCordic.cpp 测试程序。主要测试了Cordic类的功能。其中用到
的数据来自于data.h
testDformat.cpp 对Dformat的工作情况进行简单的测试。
data.h 测试数据,用Matlab产生,产生方法见数据前面的
说明。在测试时,有些数据被重复使用了。有些数
据使测试过程中的中间数据溢出了。这些部分还有
待研究。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -