一种用于CORDIC算法模校正的电路装置及方法.pdf

上传人:62****3 文档编号:1005590 上传时间:2018-03-25 格式:PDF 页数:10 大小:419.39KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110144875.5

申请日:

2011.05.31

公开号:

CN102323878A

公开日:

2012.01.18

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 7/544申请日:20110531|||公开

IPC分类号:

G06F7/544

主分类号:

G06F7/544

申请人:

电子科技大学

发明人:

宗竹林; 武鹏; 何春; 陆永彩; 田忠; 敖思远

地址:

611731 四川省成都市高新区(西区)西源大道2006号

优先权:

专利代理机构:

电子科技大学专利中心 51203

代理人:

周永宏

PDF下载: PDF下载
内容摘要

本发明涉及一种用于CORDIC算法模校正的电路装置及方法。一种用于CORDIC算法模校正的电路装置,包括原始计算通路和模校正通路,所述原始计算通路的输出连接两个RAM即RAM-1和RAM-2,RAM-1、RAM-2的输出分别连接模校正通路的x、y两个通道的输入端。一种用于CORDIC算法模校正的方法,包括步骤:步骤1.首先计算出模校正的值K的大小,每一级运算都对应一个模校正因子ai,且ai∈{0,2-i},并将每一级的模校正因子存入模校正因子模块。本发明的有益效果是:模校正的电路装置中的模校正通路的设置避免了使用乘法器造成的电路不规则的情况,有效的突破了系统的速度瓶颈。

权利要求书

1: 一种用于 CORDIC 算法模校正的电路装置, 其特征在于, 包括原始计算通路和模校正 通路, 所述原始计算通路的输出连接两个 RAM 即 RAM-1 和 RAM-2, RAM-1、 RAM-2 的输出分别 连接模校正通路的 x、 y 两个通道的输入端 ; 所述原始计算通路包括 x 通道和 y 通道, 其中每个通道都含有一个加法器, 一个移位器 和一个多路选择器, 多路选择器的输入端连接本通道的原始输入和加法器的输出端, 当新 开始一个运算时, 多路选择器选择本通道的原始输入, 其他的时间均选择加法器的输出, 多 路选择器的输出端连接至本通道加法器的输入端和另一通道的移位器的输入端, 移位器的 输入端连接另一通道的多路选择器的输出端, 加法器的输入端则连接本通道移位器和本通 道多路选择器的输出端 ; 所述模校正通路同样包括 x 通道和 y 通道, 模校正因子存储在模校正因子模块中, 每一 条通道均包括一个多路选择器、 两个移位器、 一个判决器和一个加法器 ; 对于 x 通道, 第一 移位器的输入端连接模校正因子模块和本通道的 RAM-1, 第一移位器的输出端连接第一判 决器, 第一判决器的输出端连接 x 通道加法器, 多路选择器的输入端连接加法器的输出端, 多路选择器的另一个输入端是初始值, 当第一级进行模校正时多路选择器选择初始值, 其 他时间均选择加法器的输出, 多路选择器的输出端连接至本通道加法器的输入端和 y 通道 的第四移位器的输入端, 第三移位器的输入端连接 y 通道的多路选择器的输出端, 加法器 的输入端则连接本通道第三移位器的输出端, 本通道多路选择器的输出端以及本通道第一 移位器的输出端 ; 所述 y 通道的连接情况与 x 通道连接情况相同。
2: 一种用于 CORDIC 算法模校正的方法, 包括步骤 : 步骤 1. 首先计算出模校正的值 K 的大小, 每一级运算都对应一个模校正因子 ai, 且 -i ai ∈ {0, 2 }, 并将每一级的模校正因子存入模校正因子模块 ; 步骤 2. 原始计算通路按照传统 CORDIC 算法的旋转结构进行迭代, 从每一级迭代后的 x 通道与 y 通道的值都存储下来, 分别存入 RAM-1, RAM-2 ; 步骤
3: 模校正通路首先根据当前运算的级数选择模校正因子模块中的模校正因子, 根据模校正因子为 0 或 2-i 对原始计算通路的输出值进行移位, 若模校正因子为 2-i, 则需要 进行移位数等于当前级数 i 的移位操作, 若模校正因子为 0, 则不需要对原始计算通路的输 出值进行移位操作。 步骤
4: 多路选择器根据当前运算的级数选择使用初始值还是加法器上一级输出的 值, 只有当是第一级模校正运算时多路选择器才选择初始值, 其余级运算多路选择器均选 择加法器上一级的输出 ; 步骤
5: 多路选择器的输出进行移位操作, 移位的位数与本级微旋转级数相同 ; 步骤
6: 当本级微旋转对应的模校正因子为 0 时, 此时判决器不将原始计算通路的计 算结果送入加法器, 所以加法器对多路选择器的输出和另一通道经过移位后的数据进行运 算; 当本级微旋转对应的模较正因子不为 0 时, 此时判决器将原始计算通路本级运算对应 的计算结果经过步骤 3 移位后的数据送入加法器, 所以加法器对多路选择器的输出、 另一 通道经过移位后的数据以及原始计算通路中本级运算对应的结果经过步骤 3 进行移位后 的数据进行运算 ; 步骤
7: 按照以上步骤 1 到 6 经过与原始计算通路相同级数的操作, 模校正通路输出的 值即为经过模校正后的值。

说明书


一种用于 CORDIC 算法模校正的电路装置及方法

    技术领域 本方法属于数字电路处理的技术领域, 具体的说, 涉及 CORDIC 算法的模校正单元 的处理电路装置。
     背景技术 坐标旋转数字计算机 (Coordinate Rotation Digital Computer, 简称 CORDIC) 是由 J.Volder 在 1959 年提出的, 是一种在平面直角坐标系和极坐标系之间自由坐标变换 算法。1971 年, Walther 提出了统一的 CORDIC 算法, 把圆周系统, 线性系统和双曲系统的 CORDIC 算法统一到了同一个迭代方程中去, 从而推动了 CORDIC 算法的发展。
     CORDIC 算法从广义上讲是一种数值逼近算法, 通过迭代的方式不断去逼近真实数 值, 逼近的过程是通过一系列微旋转角度的偏摆, 整个算法只需要移位和加法运算。在乘 法, 除法, 向量旋转, 三角函数等运算中, CORDIC 算法得到了广泛的应用。
     虽然 CORDIC 算法得到了广泛的应用, 但是它还是暴露除了一些缺点。由于算法采 用的旋转方式, 导致旋转完成之后的向量的模会大于原始向量, 这样就需要我们对经过旋 转完成后的向量进行模校正处理, 根据旋转的级数不同, 校正因子的大小也不一样。 传统的 模校正方法是根据旋转级数计算出校正因子的大小, 并在旋转的最后一级结束后直接乘以 校正因子的方法来进行模校正, 这种方法的缺点在于模校正单元破坏了整个电路统一的迭 代结构, 引入的乘法运算也将会降低系统的工作频率从而影响到系统的吞吐效率。
     发明内容 为了克服传统模校正方法对系统工作频率的影响, 本发明提供了一种用于 CORDIC 算法模校正的电路装置及方法。
     为了实现发明目的, 本发明的技术方案是 : 一种用于 CORDIC 算法模校正的电路装 置, 其特征在于, 包括原始计算通路和模校正通路, 所述原始计算通路的输出连接两个 RAM 即 RAM-1 和 RAM-2, RAM-1、 RAM-2 的输出分别连接模校正通路的 x、 y 两个通道的输入端 ;
     所述原始计算通路包括 x 通道和 y 通道, 其中每个通道都含有一个加法器, 一个移 位器和一个多路选择器, 多路选择器的输入端连接本通道的原始输入和加法器的输出端, 当新开始一个运算时, 多路选择器选择本通道的原始输入, 其他的时间均选择加法器的输 出, 多路选择器的输出端连接至本通道加法器的输入端和另一通道的移位器的输入端, 移 位器的输入端连接另一通道的多路选择器的输出端, 加法器的输入端则连接本通道移位器 和本通道多路选择器的输出端 ;
     所述模校正通路同样包括 x 通道和 y 通道, 模校正因子存储在模校正因子模块中, 每一条通道均包括一个多路选择器、 两个移位器、 一个判决器和一个加法器 ; 对于 x 通道, 第一移位器的输入端连接模校正因子模块和本通道的 RAM-1, 第一移位器的输出端连接第 一判决器, 第一判决器的输出端连接 x 通道加法器, 多路选择器的输入端连接加法器的输 出端, 多路选择器的另一个输入端是初始值, 当第一级进行模校正时多路选择器选择初始
     值, 其他时间均选择加法器的输出, 多路选择器的输出端连接至本通道加法器的输入端和 y 通道的第四移位器的输入端, 第三移位器的输入端连接 y 通道的多路选择器的输出端, 加 法器的输入端则连接本通道第三移位器的输出端, 本通道多路选择器的输出端以及本通道 第一移位器的输出端 ; 所述 y 通道的连接情况与 x 通道连接情况相同。
     为了实现发明目的, 本发明的另一技术方案是 : 一种用于 CORDIC 算法模校正的方 法, 包括步骤 :
     步骤 1. 首先计算出模校正的值 K 的大小, 每一级运算都对应一个模校正因子 ai, -i 且 ai ∈ {0, 2 }, 并将每一级的模校正因子存入模校正因子模块 ;
     步骤 2. 原始计算通路按照传统 CORDIC 算法的旋转结构进行迭代, 从每一级迭代 后的 x 通道与 y 通道的值都存储下来, 分别存入 RAM-1, RAM-2 ;
     步骤 3. 模校正通路首先根据当前运算的级数选择模校正因子模块中的模校正因 子, 根据模校正因子为 0 或 2-i 对原始计算通路的输出值进行移位, 若模校正因子为 2-i, 则 需要进行移位数等于当前级数 i 的移位操作, 若模校正因子为 0, 则不需要对原始计算通路 的输出值进行移位操作 ;
     步骤 4. 多路选择器根据当前运算的级数选择使用初始值还是加法器上一级输出 的值, 只有当是第一级模校正运算时多路选择器才选择初始值, 其余级运算多路选择器均 选择加法器上一级的输出 ; 步骤 5. 多路选择器的输出进行移位操作, 移位的位数与本级微旋转级数相同 ;
     步骤 6. 当本级微旋转对应的模校正因子为 0 时, 此时判决器不将原始计算通路的 计算结果送入加法器, 所以加法器对多路选择器的输出和另一通道经过移位后的数据进行 运算 ; 当本级微旋转对应的模较正因子不为 0 时, 此时判决器将原始计算通路本级运算对 应的计算结果经过步骤 3 移位后的数据送入加法器, 所以加法器对多路选择器的输出、 另 一通道经过移位后的数据以及原始计算通路中本级运算对应的结果经过步骤 3 进行移位 后的数据进行运算 ;
     步骤 7. 按照以上步骤 1 到 6 经过与原始计算通路相同级数的操作, 模校正通路输 出的值即为经过模校正后的值。
     本发明的有益效果是 : 由于进行模校正后的数据的迭代运算与 CORDIC 运算式的 迭代规律相同, 因此本文提出的模校正电路结构可以采用与 CORDIC 运算式中的迭代单元 类似的电路来进行, 模校正的电路装置的结构中设置模校正通路从而避免了使用乘法器造 成的电路不规则的情况, 有效的突破了系统的速度瓶颈。
     附图说明
     图 1 为向量旋转的示意图。
     图 2 为 CORDIC 算法完成向量旋转的示意图。
     图 3 为用于 CORDIC 算法模校正的电路装置。 具体实施方式
     下面结合附图和具体的实施例对本发明做进一步的说明。
     为了方便后面对方案的介绍, 这里先将传统 CORDIC 算法进行推导 :如图 1 所示, 对于向量 (x0, y0), 需要按照 θ ∈ [0, π/2] 进行旋转至 (x′, y′ )。
     那么根据三角函数运算法则, 旋转向量 (x′, y′ ) 可以表示为 :
     x′= x0cosθ+y0sinθ
     (1)
     y′= y0cosθ-x0sinθ
     式中 x0, y0 为待旋转的向量坐标, x′, y′为需要旋转到的坐标, θ 为目标旋转角, 将式 (1) 写为矩阵形式为 :
     我们使用微旋转的思想可以把这一次旋转的角度 θ 分解成为一系列预先确定的 基本角 θi 的线性组合, 这样式 (2) 可以写为 :
     (3)
     其中 i = 0, 1, 2, ...N-1,δi ∈ {-1, 1}, 这里 N 表示微旋转的次数, 也叫微旋转级数, δi 表示每次微旋转的方向, δi 为 1 时表示逆时针旋转, δi 为 -1 时表示顺 时针旋转, θi 代表预先确定的一组微旋转角。每次进行微旋转的角度 θi 的正切值为 2 的 倍数, 即 tanθi = 2-i, δi 的值通过每次旋转后与目标角度的差值决定。CORDIC 算法旋转 的示意图如图 2 所示, 图中虚线表示目标旋转角, 从图中可以看出旋转不断围绕目标旋转 角度偏摆, 每一次逆时针旋转超过目标旋转角后下一次旋转即做顺时针旋转, 顺时针旋转 小于目标角度后下一次则做逆时针旋转, 通过若干次的旋转最终逼近目标角度。 所以第 i+1 级的旋转迭代方程为 :
     zi+1 = zi+δiθi (5) x′= K·xn+1 (6) y′= K·yn+1 式 (4) 进行微旋转的运算, 式 (5) 用来更新累加的角度值, 根据累加的角度值来确定下次旋转的方向。这里 K 是模校正值,
     由于 tanθi = 2-i,所以有 :通过式 (8) 可以看出, 当 N →∞时, K ≈ 0.6073, 事实上, 可以证明当微旋转级数 N 大于等于 12 时, K ≈ 0.6073。所以, 不必在每一级旋转后都进行模校正, 可以根据模校正值 K 的特性在各级微旋转结束后做统一校正, 模校正值 K 在微旋转级数超过 12 时可以被当作 一个常量来进行处理。 根据式 (4), 令 则式 (4) 可以写为 :
     vi+1 = Pvi (9)
     根据 CORDIC 算法, 递推完成后的值还需要乘以一个模校正值 K 所得的值才是经过 旋转后的真实值, 有:
     vi+1′= Ki+1·vi+1 (10)
     公式 (11) 中, ai 为模校正因子, 其累加一定次数 ( 微旋转的次数 ) 后得到的值为 模校正值 K ; r = 0, 1, 2, ...N-1, 表示当前的微旋转级数。
     将式 (9) 和式 (11) 代入式 (10), 可得 :
     根据式 (12) 我们可以得到新的用于 CORDIC 算法模校正的方法, 即每一级的校正 后的值等于上一级模校正值经过相对应级数的旋转后的值与本级未进行模校正的值与本 级对应模校正因数的乘积, 并基于上述原理, 提出了新的用于 CORDIC 算法模校正的电路装 置。
     如图 3 所示, 一种用于 CORDIC 算法模校正的电路装置, 包括原始计算通路和模校 正通路, 所述原始计算通路的输出连接两个 RAM 即 RAM-1 和 RAM-2, RAM-1、 RAM-2 的输出分 别连接模校正通路的 x、 y 两个通道的输入端 ;
     所述原始计算通路包括 x 通道和 y 通道, 其中每个通道都含有一个加法器, 一个移 位器和一个多路选择器, 多路选择器的输入端连接本通道的原始输入和加法器的输出端, 当新开始一个运算时, 多路选择器选择本通道的原始输入, 其他的时间均选择加法器的输 出, 多路选择器的输出端连接至本通道加法器的输入端和另一通道的移位器的输入端, 移 位器的输入端连接另一通道的多路选择器的输出端, 加法器的输入端则连接本通道移位器 和本通道多路选择器的输出端 ;
     所述模校正通路同样包括 x 通道和 y 通道, 模校正因子存储在模校正因子模块中, 每一条通道均包括一个多路选择器、 两个移位器、 一个判决器和一个加法器 ; 对于 x 通道, 第一移位器的输入端连接模校正因子模块和本通道的 RAM-1, 第一移位器的输出端连接第 一判决器, 第一判决器的输出端连接 x 通道加法器, 多路选择器的输入端连接加法器的输 出端, 多路选择器的另一个输入端是初始值, 当第一级进行模校正时多路选择器选择初始 值, 其他时间均选择加法器的输出, 多路选择器的输出端连接至本通道加法器的输入端和 y 通道的第四移位器的输入端, 第三移位器的输入端连接 y 通道的多路选择器的输出端, 加
     法器的输入端则连接本通道第三移位器的输出端, 本通道多路选择器的输出端以及本通道 第一移位器的输出端 ; 所述 y 通道的连接情况与 x 通道连接情况相同。
     下面通过一个具体的实例对上述方案的工作过程做详细的描述 : 一种用于 CORDIC 算法模校正的电路装置及方法。
     步骤 1. 首先根据上述公式 (8) 和运算的级数 (N) 计算出模校正的值 K 的大小, 每 -i 一级运算都对应一个模校正因子 ai, 且 ai ∈ {0, 2 }, 并将每一级的模校正因子存入模校正 因子模块 ;
     本实施例中, 对于旋转级数大于 12 的情况下, K ≈ 0.6073, 模校正因子的具体数值 如表 1 所示。
     表 1 模校正因子具体数值
     a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15
     2-1 0 0 0 2-5 2-6 2-7 2-8 0 0 2-11 2-12 2-13 0 2-15
     步骤 2. 原始计算通路按照传统 CORDIC 算法的旋转结构进行迭代, 从每一级迭代 后的 x 通道与 y 通道的值都存储下来, 分别存入 RAM-1, RAM-2 ; 由于原始计算通路按照传统 CORDIC 算法该技术过程在本发明中被作为现有技术, 故而未详细展开描述。 步骤 3. 模校正通路首先根据当前运算的级数选择模校正因子模块中的模校正因 子, 根据模校正因子为 0 或 2-i 对原始计算通路的输出值进行移位, 若模校正因子为 2-i, 则 需要进行移位数等于当前级数的移位操作, 若模校正因子为 0, 则不需要对原始计算通路的 输出值进行移位操作 ;
     本实施例中, 根据表 1 中的内容, 由于第一级的模校正因子为 2-1, 故移位器 1 和移 位器 2 需要对原始计算通路第一级的计算结果进行一位的移位操作 ; 同样的, 第 5 级、 第6 级、 第 7 级、 第 8 级、 第 11 级、 第 12 级、 第 13 级和第 15 级同样要对原始计算通路对应微旋 转级数的结果进行与表 1 中内容一致的移位操作, 分别移 5 位、 6 位、 7 位、 8 位、 11 位、 12 位、 13 位和 15 位。其它微旋转级数的原始计算通路的计算结果不进行移位处理 ;
     步骤 4. 多路选择器根据当前运算的级数选择使用初始值还是加法器上一级输出 的值, 只有当是第一级模校正运算时多路选择器才选择初始值, 其余级运算多路选择器均 选择加法器上一级的输出 ;
     在本实施例中, 当第一级模校正运算开始时, 多路选择器选择初始值作为多路选 择器的输出, 从第二级运算开始, 多路选择器都选择加法器的输出作为多路选择器的输 出;
     步骤 5. 多路选择器的输出进行移位操作, 移位的位数与本级微旋转级数相同 ;
     在本实施例中, x 通道和 y 通道的多路选择器的输出连接至第三移位器和第四移 位器中, 移位位数与本级运算级数相同, 即当进行第一级模校正运算时, 即对多路选择器的 输出进行 1 位的移位操作, 进行第二级模校正运算时, 即对多路选择器的输出进行 2 位的移 位操作, 其他级数模校正运算的处理依此类推 ;
     步骤 6. 当本级微旋转对应的模校正因子为 0 时, 此时判决器不将原始计算通路的 计算结果送入加法器, 所以加法器对多路选择器的输出和另一通道经过移位后的数据进行 运算。当本级微旋转对应的模较正因子不为 0 时, 此时判决器将原始计算通路本级运算对 应的计算结果经过步骤 3 移位后的数据送入加法器, 所以加法器对多路选择器的输出、 另
     一通道经过移位后的数据以及原始计算通路中本级运算对应的结果经过步骤 3 进行移位 后的数据进行运算 ;
     在本实施例中, 第一级模校正运算时, 由于表 1 中第一级运算对应的模校正因子 不为 0, 所以判决器将第一移位器的输出送至 x 通道的加法器, 所以 x 通道的加法器对第一 判决器、 第三移位器和 x 通道的多路选择器的输出进行运算, 同样地判决器将第二移位器 的输出送至 y 通道的加法器, 所以 y 通道的加法器对第二判决器、 第四移位器和 y 通道多路 选择器的输出进行运算, 所得结果分别反馈至 x 通道与 y 通道的多路选择器, 开始第二级的 运算。根据表 1 所示内容, 第二级的模校正因子为 0, 则第一判决器和第二判决器不将第一 移位器和第二移位器的输出送至 x 通道和 y 通道的加法器, 所以 x 通道的加法器只需要将 x 通道多路选择器与第三移位器的输出作加法运算, 同样地 y 通道的加法器只需要将 y 通道 多路选择器与第四移位器的输出作加法运算 ;
     步骤 7. 按照以上步骤 1 到 6 经过与原始计算通路相同级数的操作, 模校正通路输 出的值即为经过模校正后的值。
     在本实施例中, 按照以上步骤 1-6 的规则进行完 15 级的运算, 模校正通路两个加 法器所得到的结果即为 x 通道和 y 通道数据经过模校正后的结果。 本领域的普通技术人员将会意识到, 这里所述的实施例是为了帮助读者理解本发 明的原理, 应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的 普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各 种具体变形和组合, 这些变形和组合仍然在本发明的保护范围内。
    

一种用于CORDIC算法模校正的电路装置及方法.pdf_第1页
第1页 / 共10页
一种用于CORDIC算法模校正的电路装置及方法.pdf_第2页
第2页 / 共10页
一种用于CORDIC算法模校正的电路装置及方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《一种用于CORDIC算法模校正的电路装置及方法.pdf》由会员分享,可在线阅读,更多相关《一种用于CORDIC算法模校正的电路装置及方法.pdf(10页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102323878A43申请公布日20120118CN102323878ACN102323878A21申请号201110144875522申请日20110531G06F7/54420060171申请人电子科技大学地址611731四川省成都市高新区(西区)西源大道2006号72发明人宗竹林武鹏何春陆永彩田忠敖思远74专利代理机构电子科技大学专利中心51203代理人周永宏54发明名称一种用于CORDIC算法模校正的电路装置及方法57摘要本发明涉及一种用于CORDIC算法模校正的电路装置及方法。一种用于CORDIC算法模校正的电路装置,包括原始计算通路和模校正通路,所述原始计算通路。

2、的输出连接两个RAM即RAM1和RAM2,RAM1、RAM2的输出分别连接模校正通路的X、Y两个通道的输入端。一种用于CORDIC算法模校正的方法,包括步骤步骤1首先计算出模校正的值K的大小,每一级运算都对应一个模校正因子AI,且AI0,2I,并将每一级的模校正因子存入模校正因子模块。本发明的有益效果是模校正的电路装置中的模校正通路的设置避免了使用乘法器造成的电路不规则的情况,有效的突破了系统的速度瓶颈。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书6页附图2页CN102323888A1/1页21一种用于CORDIC算法模校正的电路装置,其特征在于,包括原始。

3、计算通路和模校正通路,所述原始计算通路的输出连接两个RAM即RAM1和RAM2,RAM1、RAM2的输出分别连接模校正通路的X、Y两个通道的输入端;所述原始计算通路包括X通道和Y通道,其中每个通道都含有一个加法器,一个移位器和一个多路选择器,多路选择器的输入端连接本通道的原始输入和加法器的输出端,当新开始一个运算时,多路选择器选择本通道的原始输入,其他的时间均选择加法器的输出,多路选择器的输出端连接至本通道加法器的输入端和另一通道的移位器的输入端,移位器的输入端连接另一通道的多路选择器的输出端,加法器的输入端则连接本通道移位器和本通道多路选择器的输出端;所述模校正通路同样包括X通道和Y通道,模。

4、校正因子存储在模校正因子模块中,每一条通道均包括一个多路选择器、两个移位器、一个判决器和一个加法器;对于X通道,第一移位器的输入端连接模校正因子模块和本通道的RAM1,第一移位器的输出端连接第一判决器,第一判决器的输出端连接X通道加法器,多路选择器的输入端连接加法器的输出端,多路选择器的另一个输入端是初始值,当第一级进行模校正时多路选择器选择初始值,其他时间均选择加法器的输出,多路选择器的输出端连接至本通道加法器的输入端和Y通道的第四移位器的输入端,第三移位器的输入端连接Y通道的多路选择器的输出端,加法器的输入端则连接本通道第三移位器的输出端,本通道多路选择器的输出端以及本通道第一移位器的输出。

5、端;所述Y通道的连接情况与X通道连接情况相同。2一种用于CORDIC算法模校正的方法,包括步骤步骤1首先计算出模校正的值K的大小,每一级运算都对应一个模校正因子AI,且AI0,2I,并将每一级的模校正因子存入模校正因子模块;步骤2原始计算通路按照传统CORDIC算法的旋转结构进行迭代,从每一级迭代后的X通道与Y通道的值都存储下来,分别存入RAM1,RAM2;步骤3模校正通路首先根据当前运算的级数选择模校正因子模块中的模校正因子,根据模校正因子为0或2I对原始计算通路的输出值进行移位,若模校正因子为2I,则需要进行移位数等于当前级数I的移位操作,若模校正因子为0,则不需要对原始计算通路的输出值进。

6、行移位操作。步骤4多路选择器根据当前运算的级数选择使用初始值还是加法器上一级输出的值,只有当是第一级模校正运算时多路选择器才选择初始值,其余级运算多路选择器均选择加法器上一级的输出;步骤5多路选择器的输出进行移位操作,移位的位数与本级微旋转级数相同;步骤6当本级微旋转对应的模校正因子为0时,此时判决器不将原始计算通路的计算结果送入加法器,所以加法器对多路选择器的输出和另一通道经过移位后的数据进行运算;当本级微旋转对应的模较正因子不为0时,此时判决器将原始计算通路本级运算对应的计算结果经过步骤3移位后的数据送入加法器,所以加法器对多路选择器的输出、另一通道经过移位后的数据以及原始计算通路中本级运。

7、算对应的结果经过步骤3进行移位后的数据进行运算;步骤7按照以上步骤1到6经过与原始计算通路相同级数的操作,模校正通路输出的值即为经过模校正后的值。权利要求书CN102323878ACN102323888A1/6页3一种用于CORDIC算法模校正的电路装置及方法技术领域0001本方法属于数字电路处理的技术领域,具体的说,涉及CORDIC算法的模校正单元的处理电路装置。背景技术0002坐标旋转数字计算机COORDINATEROTATIONDIGITALCOMPUTER,简称CORDIC是由JVOLDER在1959年提出的,是一种在平面直角坐标系和极坐标系之间自由坐标变换算法。1971年,WALTH。

8、ER提出了统一的CORDIC算法,把圆周系统,线性系统和双曲系统的CORDIC算法统一到了同一个迭代方程中去,从而推动了CORDIC算法的发展。0003CORDIC算法从广义上讲是一种数值逼近算法,通过迭代的方式不断去逼近真实数值,逼近的过程是通过一系列微旋转角度的偏摆,整个算法只需要移位和加法运算。在乘法,除法,向量旋转,三角函数等运算中,CORDIC算法得到了广泛的应用。0004虽然CORDIC算法得到了广泛的应用,但是它还是暴露除了一些缺点。由于算法采用的旋转方式,导致旋转完成之后的向量的模会大于原始向量,这样就需要我们对经过旋转完成后的向量进行模校正处理,根据旋转的级数不同,校正因子的。

9、大小也不一样。传统的模校正方法是根据旋转级数计算出校正因子的大小,并在旋转的最后一级结束后直接乘以校正因子的方法来进行模校正,这种方法的缺点在于模校正单元破坏了整个电路统一的迭代结构,引入的乘法运算也将会降低系统的工作频率从而影响到系统的吞吐效率。发明内容0005为了克服传统模校正方法对系统工作频率的影响,本发明提供了一种用于CORDIC算法模校正的电路装置及方法。0006为了实现发明目的,本发明的技术方案是一种用于CORDIC算法模校正的电路装置,其特征在于,包括原始计算通路和模校正通路,所述原始计算通路的输出连接两个RAM即RAM1和RAM2,RAM1、RAM2的输出分别连接模校正通路的X。

10、、Y两个通道的输入端;0007所述原始计算通路包括X通道和Y通道,其中每个通道都含有一个加法器,一个移位器和一个多路选择器,多路选择器的输入端连接本通道的原始输入和加法器的输出端,当新开始一个运算时,多路选择器选择本通道的原始输入,其他的时间均选择加法器的输出,多路选择器的输出端连接至本通道加法器的输入端和另一通道的移位器的输入端,移位器的输入端连接另一通道的多路选择器的输出端,加法器的输入端则连接本通道移位器和本通道多路选择器的输出端;0008所述模校正通路同样包括X通道和Y通道,模校正因子存储在模校正因子模块中,每一条通道均包括一个多路选择器、两个移位器、一个判决器和一个加法器;对于X通道。

11、,第一移位器的输入端连接模校正因子模块和本通道的RAM1,第一移位器的输出端连接第一判决器,第一判决器的输出端连接X通道加法器,多路选择器的输入端连接加法器的输出端,多路选择器的另一个输入端是初始值,当第一级进行模校正时多路选择器选择初始说明书CN102323878ACN102323888A2/6页4值,其他时间均选择加法器的输出,多路选择器的输出端连接至本通道加法器的输入端和Y通道的第四移位器的输入端,第三移位器的输入端连接Y通道的多路选择器的输出端,加法器的输入端则连接本通道第三移位器的输出端,本通道多路选择器的输出端以及本通道第一移位器的输出端;所述Y通道的连接情况与X通道连接情况相同。。

12、0009为了实现发明目的,本发明的另一技术方案是一种用于CORDIC算法模校正的方法,包括步骤0010步骤1首先计算出模校正的值K的大小,每一级运算都对应一个模校正因子AI,且AI0,2I,并将每一级的模校正因子存入模校正因子模块;0011步骤2原始计算通路按照传统CORDIC算法的旋转结构进行迭代,从每一级迭代后的X通道与Y通道的值都存储下来,分别存入RAM1,RAM2;0012步骤3模校正通路首先根据当前运算的级数选择模校正因子模块中的模校正因子,根据模校正因子为0或2I对原始计算通路的输出值进行移位,若模校正因子为2I,则需要进行移位数等于当前级数I的移位操作,若模校正因子为0,则不需要。

13、对原始计算通路的输出值进行移位操作;0013步骤4多路选择器根据当前运算的级数选择使用初始值还是加法器上一级输出的值,只有当是第一级模校正运算时多路选择器才选择初始值,其余级运算多路选择器均选择加法器上一级的输出;0014步骤5多路选择器的输出进行移位操作,移位的位数与本级微旋转级数相同;0015步骤6当本级微旋转对应的模校正因子为0时,此时判决器不将原始计算通路的计算结果送入加法器,所以加法器对多路选择器的输出和另一通道经过移位后的数据进行运算;当本级微旋转对应的模较正因子不为0时,此时判决器将原始计算通路本级运算对应的计算结果经过步骤3移位后的数据送入加法器,所以加法器对多路选择器的输出、。

14、另一通道经过移位后的数据以及原始计算通路中本级运算对应的结果经过步骤3进行移位后的数据进行运算;0016步骤7按照以上步骤1到6经过与原始计算通路相同级数的操作,模校正通路输出的值即为经过模校正后的值。0017本发明的有益效果是由于进行模校正后的数据的迭代运算与CORDIC运算式的迭代规律相同,因此本文提出的模校正电路结构可以采用与CORDIC运算式中的迭代单元类似的电路来进行,模校正的电路装置的结构中设置模校正通路从而避免了使用乘法器造成的电路不规则的情况,有效的突破了系统的速度瓶颈。附图说明0018图1为向量旋转的示意图。0019图2为CORDIC算法完成向量旋转的示意图。0020图3为用。

15、于CORDIC算法模校正的电路装置。具体实施方式0021下面结合附图和具体的实施例对本发明做进一步的说明。0022为了方便后面对方案的介绍,这里先将传统CORDIC算法进行推导说明书CN102323878ACN102323888A3/6页50023如图1所示,对于向量X0,Y0,需要按照0,/2进行旋转至X,Y。0024那么根据三角函数运算法则,旋转向量X,Y可以表示为0025XX0COSY0SIN002610027YY0COSX0SIN0028式中X0,Y0为待旋转的向量坐标,X,Y为需要旋转到的坐标,为目标旋转角,将式1写为矩阵形式为00290030我们使用微旋转的思想可以把这一次旋转的角。

16、度分解成为一系列预先确定的基本角I的线性组合,这样式2可以写为00310032300330034其中I0,1,2,N1,I1,1,这里N表示微旋转的次数,也叫微旋转级数,I表示每次微旋转的方向,I为1时表示逆时针旋转,I为1时表示顺时针旋转,I代表预先确定的一组微旋转角。每次进行微旋转的角度I的正切值为2的倍数,即TANI2I,I的值通过每次旋转后与目标角度的差值决定。CORDIC算法旋转的示意图如图2所示,图中虚线表示目标旋转角,从图中可以看出旋转不断围绕目标旋转角度偏摆,每一次逆时针旋转超过目标旋转角后下一次旋转即做顺时针旋转,顺时针旋转小于目标角度后下一次则做逆时针旋转,通过若干次的旋转。

17、最终逼近目标角度。所以第I1级的旋转迭代方程为00350036ZI1ZIII50037XKXN160038YKYN10039式4进行微旋转的运算,式5用来更新累加的角度值,根据累加的角度值来确定下次旋转的方向。这里K是模校正值,0040由于TANI2I,00410042所以有说明书CN102323878ACN102323888A4/6页600430044通过式8可以看出,当N时,K06073,事实上,可以证明当微旋转级数N大于等于12时,K06073。所以,不必在每一级旋转后都进行模校正,可以根据模校正值K的特性在各级微旋转结束后做统一校正,模校正值K在微旋转级数超过12时可以被当作一个常量来。

18、进行处理。0045根据式4,令则式4可以写为0046VI1PVI90047根据CORDIC算法,递推完成后的值还需要乘以一个模校正值K所得的值才是经过旋转后的真实值,有0048VI1KI1VI11000490050公式11中,AI为模校正因子,其累加一定次数微旋转的次数后得到的值为模校正值K;R0,1,2,N1,表示当前的微旋转级数。0051将式9和式11代入式10,可得00520053根据式12我们可以得到新的用于CORDIC算法模校正的方法,即每一级的校正后的值等于上一级模校正值经过相对应级数的旋转后的值与本级未进行模校正的值与本级对应模校正因数的乘积,并基于上述原理,提出了新的用于COR。

19、DIC算法模校正的电路装置。0054如图3所示,一种用于CORDIC算法模校正的电路装置,包括原始计算通路和模校正通路,所述原始计算通路的输出连接两个RAM即RAM1和RAM2,RAM1、RAM2的输出分别连接模校正通路的X、Y两个通道的输入端;0055所述原始计算通路包括X通道和Y通道,其中每个通道都含有一个加法器,一个移位器和一个多路选择器,多路选择器的输入端连接本通道的原始输入和加法器的输出端,当新开始一个运算时,多路选择器选择本通道的原始输入,其他的时间均选择加法器的输出,多路选择器的输出端连接至本通道加法器的输入端和另一通道的移位器的输入端,移位器的输入端连接另一通道的多路选择器的输。

20、出端,加法器的输入端则连接本通道移位器和本通道多路选择器的输出端;0056所述模校正通路同样包括X通道和Y通道,模校正因子存储在模校正因子模块中,每一条通道均包括一个多路选择器、两个移位器、一个判决器和一个加法器;对于X通道,第一移位器的输入端连接模校正因子模块和本通道的RAM1,第一移位器的输出端连接第一判决器,第一判决器的输出端连接X通道加法器,多路选择器的输入端连接加法器的输出端,多路选择器的另一个输入端是初始值,当第一级进行模校正时多路选择器选择初始值,其他时间均选择加法器的输出,多路选择器的输出端连接至本通道加法器的输入端和Y通道的第四移位器的输入端,第三移位器的输入端连接Y通道的多。

21、路选择器的输出端,加说明书CN102323878ACN102323888A5/6页7法器的输入端则连接本通道第三移位器的输出端,本通道多路选择器的输出端以及本通道第一移位器的输出端;所述Y通道的连接情况与X通道连接情况相同。0057下面通过一个具体的实例对上述方案的工作过程做详细的描述一种用于CORDIC算法模校正的电路装置及方法。0058步骤1首先根据上述公式8和运算的级数N计算出模校正的值K的大小,每一级运算都对应一个模校正因子AI,且AI0,2I,并将每一级的模校正因子存入模校正因子模块;0059本实施例中,对于旋转级数大于12的情况下,K06073,模校正因子的具体数值如表1所示。00。

22、60表1模校正因子具体数值0061A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15006221000252627280021121221302150063步骤2原始计算通路按照传统CORDIC算法的旋转结构进行迭代,从每一级迭代后的X通道与Y通道的值都存储下来,分别存入RAM1,RAM2;由于原始计算通路按照传统CORDIC算法该技术过程在本发明中被作为现有技术,故而未详细展开描述。0064步骤3模校正通路首先根据当前运算的级数选择模校正因子模块中的模校正因子,根据模校正因子为0或2I对原始计算通路的输出值进行移位,若模校正因子为2I,则需要进行移位数等于当前级数的移位。

23、操作,若模校正因子为0,则不需要对原始计算通路的输出值进行移位操作;0065本实施例中,根据表1中的内容,由于第一级的模校正因子为21,故移位器1和移位器2需要对原始计算通路第一级的计算结果进行一位的移位操作;同样的,第5级、第6级、第7级、第8级、第11级、第12级、第13级和第15级同样要对原始计算通路对应微旋转级数的结果进行与表1中内容一致的移位操作,分别移5位、6位、7位、8位、11位、12位、13位和15位。其它微旋转级数的原始计算通路的计算结果不进行移位处理;0066步骤4多路选择器根据当前运算的级数选择使用初始值还是加法器上一级输出的值,只有当是第一级模校正运算时多路选择器才选择。

24、初始值,其余级运算多路选择器均选择加法器上一级的输出;0067在本实施例中,当第一级模校正运算开始时,多路选择器选择初始值作为多路选择器的输出,从第二级运算开始,多路选择器都选择加法器的输出作为多路选择器的输出;0068步骤5多路选择器的输出进行移位操作,移位的位数与本级微旋转级数相同;0069在本实施例中,X通道和Y通道的多路选择器的输出连接至第三移位器和第四移位器中,移位位数与本级运算级数相同,即当进行第一级模校正运算时,即对多路选择器的输出进行1位的移位操作,进行第二级模校正运算时,即对多路选择器的输出进行2位的移位操作,其他级数模校正运算的处理依此类推;0070步骤6当本级微旋转对应的。

25、模校正因子为0时,此时判决器不将原始计算通路的计算结果送入加法器,所以加法器对多路选择器的输出和另一通道经过移位后的数据进行运算。当本级微旋转对应的模较正因子不为0时,此时判决器将原始计算通路本级运算对应的计算结果经过步骤3移位后的数据送入加法器,所以加法器对多路选择器的输出、另说明书CN102323878ACN102323888A6/6页8一通道经过移位后的数据以及原始计算通路中本级运算对应的结果经过步骤3进行移位后的数据进行运算;0071在本实施例中,第一级模校正运算时,由于表1中第一级运算对应的模校正因子不为0,所以判决器将第一移位器的输出送至X通道的加法器,所以X通道的加法器对第一判决。

26、器、第三移位器和X通道的多路选择器的输出进行运算,同样地判决器将第二移位器的输出送至Y通道的加法器,所以Y通道的加法器对第二判决器、第四移位器和Y通道多路选择器的输出进行运算,所得结果分别反馈至X通道与Y通道的多路选择器,开始第二级的运算。根据表1所示内容,第二级的模校正因子为0,则第一判决器和第二判决器不将第一移位器和第二移位器的输出送至X通道和Y通道的加法器,所以X通道的加法器只需要将X通道多路选择器与第三移位器的输出作加法运算,同样地Y通道的加法器只需要将Y通道多路选择器与第四移位器的输出作加法运算;0072步骤7按照以上步骤1到6经过与原始计算通路相同级数的操作,模校正通路输出的值即为。

27、经过模校正后的值。0073在本实施例中,按照以上步骤16的规则进行完15级的运算,模校正通路两个加法器所得到的结果即为X通道和Y通道数据经过模校正后的结果。0074本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。说明书CN102323878ACN102323888A1/2页9图1图2说明书附图CN102323878ACN102323888A2/2页10图3说明书附图CN102323878A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1