一种高效的精度和耗时可调的TMS320C6678复数向量求模方法与流程

文档序号:11654238阅读:2035来源:国知局
一种高效的精度和耗时可调的TMS320C6678复数向量求模方法与流程

本发明涉及信号处理领域,具体涉及一种高效的精度和耗时可调的tms320c6678复数向量求模方法。



背景技术:

tms320c6678(后文中简称c6678)是ti公司于2010年推出的一款具有业界领先处理能力的多核dsp处理器,其采用的是keystone多内核架构,片内集成了8个c66x核,每个核都具有定点和浮点运算能力,同时也集成了srio(serialrapidio),pcie(peripheralcomponentinterconnectexpress)等接口,为方便数据的搬移,配置了edma(enhanceddirectmemoryaccess)。ti公司也为开发人员提供了c6678的mathlib,dsplib等函数库。

得益于c6678强大的并行处理能力和接口的高速数据传输能力,其在信号处理领域应用极其广泛,特别是雷达信号处理领域,过去的fpga+dsp的架构中,大部分的计算(如dpc算法,mtd算法等)是在fpga中完成,但fpga调试效率极低,严重的降低了雷达信号处理机调试的效率。在c6678出现后,现在越来越多的雷达信号处理算法从fpga迁移到了dsp中完成,极大的提升了雷达信号处理机的调试效率。然而,雷达信号处理中许多数据都是复数形式的,需要进行大量的复数求模,而传统的复数算法效率极低,严重的影响了整个信号处理机的效率。另外,不同的系统对复数求模的精度要求不同,精度越高意味着耗时越长,精度越差意味着耗时越少,所以发明一种高效的精度和耗时可调的tms320c6678复数向量方法有很重要的意义。



技术实现要素:

要解决的技术问题

为了解决的技术问题是高效的精度和耗时可调的tms320c6678复数向量求模,本发明提出一种高效的精度和耗时可调的tms320c6678复数向量求模方法。

技术方案

一种高效的精度和耗时可调的tms320c6678复数向量求模方法,其特征在于步骤如下:

步骤1:根据具体系统精度要求选择合适的牛顿迭代次数t,初始化循环次数n=0,记向量总长度为n,初始化输出y;

步骤2:判断n<n,如果n<n则转至步骤3,否则转至步骤9;

步骤3:选取复数向量中第n个复数x(n)=a+bi;

步骤4:计算x(n)的模值平方s=a2+b2

步骤5:通过ti提供的rsqrsp指令计算得到的近似值;

步骤6:利用new-phapson公式对迭代t次得到p;

步骤7:通过y(n)=sp得到x(n)的模值y(n);

步骤8:n=n+1,转至步骤2进行迭代;

步骤9:输出结果y并停止。

所述的步骤1中根据具体系统精度要求选择合适的牛顿迭代次数t,具体为,首先判断2-8是否能满足系统对复数向量求模的精度要求,如果可以,选择t=0;其次判断2-16是否能满足系统对复数向量求模的精度要求,如果可以,选择t=1;除此之外,选择t=2。

所述的步骤4中计算x(n)的模值平方s=a2+b2时,为了防止步骤5中出现分母为0的情况,给计算结果都加了一个极小值,也即实际计算的是s=a2+b2+eps,其中eps为一个大于零的极小值。

所述的步骤6中利用new-phapson公式对迭代,假设迭代前的值为r(t),迭代后的值为r(t+1),则迭代公式为:

r(t+1)=r(t)(1.5-0.5sr2(t))。

所述的步骤7中y(n)是通过y(n)=sp得到的,此处的p为迭代后的所以这里通过s与p相乘是最快的得到y(n)的方法。

有益效果

本发明提出的一种高效的精度和耗时可调的tms320c6678复数向量求模方法,由于本发明的方法利用rsqrsp指令快速计算得到然后根据选择的牛顿迭代次数t对进行迭代,因此本发明方法的精度和耗时是可调的,可得到满足系统精度要求的耗时最少的结果,同时,由于rsqrsp指令的应用,本发明的方法比传统的复数向量求模方法效率提升很多,是一种高效的方法。

附图说明

图1为示出本发明方法之步骤的流程图

图2为牛顿迭代次数t的选择方法

具体实施方式

本发明提供了一种高效的精度和耗时可调的tms320c6678复数向量求模方法,该方法包括以下步骤:(a)根据具体系统精度要求选择合适的牛顿迭代次数t,初始化循环次数n=0,记向量总长度为n,初始化输出y;(b)判断n<n,如果n<n则转至步骤(c),否则转至(i);(c)选取复数向量中第n个复数x(n)=a+bi;(d)计算x(n)的模值平方s=a2+b2;(e)通过ti提供的rsqrsp指令计算得到近似值;(f)利用new-phapson公式对迭代t次得到p;(g)通过y(n)=sp得到x(n)的模值y(n);(h)n=n+1,转至步骤(b)进行迭代;(i)输出结果y并停止。

现结合实施例、附图对本发明作进一步描述:

参见示出本发明实施例的附图,下文将更详细地描述本发明。然而,本发明可以以许多不同形式实现,并且不应解释为受在此提出之实施例的限制。相反,提出这些实施例是为了达成充分及完整公开,并且使本技术领域的技术人员完全了解本发明的范围。比如,本发明方法不仅可以应用于tms320c6678,也可以应用于所有c66x核;不仅可以应用于复数向量求模,也可以应用于复数点求模和复数矩阵求模。

现参考图1描述根据本发明的复数向量求模方法,为方便描述,设输入的复数向量为x,向量长度为n,数据类型为单精度浮点型也即float型。

如图1所示,在步骤s101中,选择牛顿迭代次数t,初始化循环次数n=0。每次循环计算一个复数的模值,也即n=0,1,…,n-1。对于牛顿迭代次数t的选择方法如图2所示,首先判断2-8是否能满足系统对复数向量求模的精度要求,如果可以,选择t=0;其次判断2-16是否能满足系统对复数向量求模的精度要求,如果可以,选择t=1;除此之外,选择t=2,通过与matlab结果对比发现t=2时计算结果基本接近matlab计算结果,此精度几乎可以满足所有工程应用领域,所以不再考虑牛顿迭代次数大于2的情形。

在步骤s102中,判断n<n是否成立,因为n个点的复数向量需要迭代n次,对于n=0的情况输出y的初值。

在步骤s103中,选取复数向量的第n个复数x(n)=a+bi以便进行后续步骤的处理。

在步骤s104中,求出x(n)的模值平方s=a2+b2,考虑到步骤s105中需要计算所以实际计算中给s增加了一个大于零的极小值,以避免步骤s105中出现分母为零的异常,即s=a2+b2+eps,其中eps为一个大于零的极小值。

在步骤s105中,利用ti提供的指令rsqrsp计算的近似值,该指令的作用是快速计算float型变量的平方根倒数的近似值,精度为2-8

在步骤s106中,根据步骤s101中选择的牛顿迭代次数(0,1,2)对步骤s105求得的的近似值进行迭代,以得到更精确的结果(也即更逼近真值的结果)。假设迭代前的值为r(t),迭代后的值为r(t+1),则这里的迭代公式为:

r(t+1)=r(t)(1.5-0.5sr2(t))。

每迭代一次,精度可以提高2-8,迭代结果记为p。

在步骤s107中,通过sp得到x(n)的模值y(n)。

在步骤s108中,通过n=n+1并转至步骤s102进行判断,决定是继续处理下一个复数,或者是转至步骤s109。

在步骤s109中输出的求模结果。

为说明本发明方法的有效性,下面将本发明方法与常规复数向量求模方法和matlab结果进行实验对比。以下所有试验都是以将matlab计算结果作为真值进行对比的,假设y1为复数向量x通过matlab计算得到的真值,y2为对应方法计算得到的值,n为复数向量长度,最大绝对误差和最大绝对误差百分比分别为:

实验一:常规复数向量求模方法的测试结果如表1所示。

表1常规复数向量求模方法测试结果

通过表1可以看出,常规复数向量求模方法每个复数点平均耗时仍然约为62个时钟周期,对于信号处理来说,效率还是很低,不过,因为是最基本的实现方法,所以该方法精度很高,最差的最大绝对误差百分比为5.564378038394069e-07。

实验二:本发明方法中牛顿迭代次数t=0的测试结果如表2所示。

表2本发明方法中牛顿迭代次数t=0测试结果

牛顿迭代次数t=0,也即不进行迭代,只是利用rsqrsp求近似值。

通过表2可以看出,利用rsqrsp指令进行复数向量求模,效率极高,每个复数点平均耗时为2.72119~5.3125个时钟周期,而常规复数向量求模方法中每个复数点平均耗时约62个时钟周期,所以本方法相对于常规复数向量求模方法效率提升11.6706~22.7841倍。同时,从表2中的最大绝对误差百分比可以看出该算法精度较低,仅可用于对精度要求不高的计算中。

实验三:本发明方法中牛顿迭代次数t=1的测试结果如表3所示。

表3本发明方法中牛顿迭代次数t=1测试结果

通过表3可以看出,利用newton-phapson迭代一次后每个点平均耗时为9.0703125~13.59375,时间较t=0的方法有所增加,但相对于常规复数向量求模方法来说,效率还是提升了4.5609~6.8355倍,而最大绝对误差百分比已经达到了约1.5e-5,该精度可以满足大多数的信号处理算法。

实验四:本发明方法中牛顿迭代次数t=2的测试结果如表4所示。

表4本发明方法中牛顿迭代次数t=2测试结果

通过表4可以看出,利用newton-phapson迭代二次后每个点平均耗时为16.0698~20.5625,时间较t=1的方法有所增加,但相对于常规复数向量求模方法来说,效率还是提升了3.0152~3.8582倍,对比表4和表1中的最大绝对误差百分比可以看出,二者几乎一致,该精度已经可以满足几乎所有信号处理算法的需求,所以没有必要进行更多次数的迭代,也即牛顿迭代次数t最大值为2。

通过以上实验结果可以看出,本发明的方法可以通过牛顿迭代次数的选择实现高效的精度和耗时可调的tms320c6678复数向量求模方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1