首页
学习
活动
专区
圈层
工具
发布

基于FPGA的Sobel算子(三)

基于FPGA的Sobel算子(三)

之Cordic坐标系转换电路

1.前期预处理:完成坐标象限转换。

2.完成n次迭代工作:采用菊花链式结构设计。

3.后期处理工作:恢复象限转换,增益补偿。

1.预处理模块

预处理主要负责象限转换工作,主要是将输入四象限坐标转换到第一象限的前半象限,即0°~45°。

转换工作十分简单,只需提取输入x和y的坐标绝对值作为输出,即可将坐标转换到第一象限,同时判断x和y的绝对值大小,当y>x时,将x和y调换即可将坐标转换到第一象限的前半象限。

模块需要记录x和y的象限信息,包括半象限信息,以供象限位置还原。

2.单元迭代运算单元

经过预处理后的绝对值输出可以直接送入Cordic处理核进行Cordic运算,Cordic运算,Cordic运算实际上是n次迭代运算的过程。

3.Cordic处理核单元

将单次迭代单元迭代n次即可完成一次cordic运算。

4.Cordic后续处理模块

后续处理模块需实现坐标象限还原,很明显,这里的象限指的是角度象限。我们已经在预处理单元中对输入坐标的象限进行了保存,在此模块的基础上需要对象限位置进行恢复。

首先需要明确的一点是,由于处理核需要n个时钟来完成迭代运算,预处理的象限信息需要首先进行缓存n-1个时钟与结果进行对齐。

在象限还原时,采用预处理的逆运算:

(1)还原x与y交换信息。

(2)还原x轴信息。

(3)还原y轴信息。

由几何意义实现上述运算:

(1)x与y交换,转换公式

(2)x<0,说明角度在第二或第三象限,转换公式

(3)y<0,说明角度在第三或第四象限,转换公式

由归一化系数算出π/2,π,2π的归一化系数,一次进行转换即可。

下一篇
举报
领券