System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及信号处理,特别涉及一种基于fpga的数字信号处理方法、系统、设备及介质。
技术介绍
1、在电子技术的工程应用领域,如音频、图形图像、视频的数字信号处理过程中,需要对数据使用定点化处理,其中,定点化处理包括对无符号定点数的开平方根计算。例如,在现场可编程门阵列(fieldprogrammable gatearray,fpga)的数字信号处理过程中,无符号定点数的开平方根计算是一种被普遍使用的基本运算单元。随着当前fpga中数字信号处理的过程对基本运算单元的计算速度与计算精度的要求越来越高,该计算过程实施起来也越加困难。
2、为了确保上述计算速度与计算精度,fpga通常采用查找表法或牛顿迭代法来实现无符号定点数的开平方根计算。其中:
3、查找表法将待开平方数据作为查找表只读存储器(read-onlymemory,rom)的寻址地址,平方根数据存储在相应地址中,此方法通过直接寻址的方式直接得到结果,需要占用大量的fpga逻辑存储资源。
4、牛顿迭代法采用二项式逐次逼近的方式计算平方根,每次迭代需要完成除法、加法、移位各一次,计算过程较慢,同时此方法的计算速度对于初值的依赖程度较高,不恰当的初值可能会导致计算速度的下降。
技术实现思路
1、本申请实施例的目的在于提供一种基于fpga的数字信号处理方法、设备及介质,可以在保证fpga中数据处理速度和精度的基础上,减小fpga逻辑存储资源的占用。
2、为解决上述技术问题,本申请的实
3、获取fpga数字信号处理过程中fpga上预设运算单元中的待开平方根的无符号定点数;
4、基于cordic算法的双曲向量模式对所述无符号定点数进行开平方根处理,并根据开平方根结果执行fpga数字信号处理过程中剩余运算单元的包括无符号定点数开平方根处理的运算内容,完成fpga数字信号处理;
5、其中,所述cordic算法的双曲向量模式,通过以下迭代公式计算得到无符号定点数的开平方根结果:
6、
7、式中:
8、dn=sign(xnyn),sign()表示符号函数,当输入大于或等于0时输出结果为1,否则为-1;
9、迭代次数为待开平方根的无符号定点数的位宽;
10、迭代过程的初始值为x1=a+w,y1=a-w,使整个迭代过程通过fpga的加法器与减法器实现;a表示待开平方根的无符号定点数;w表示预设常数,且w=round((2m/(2k))2),round()表示四舍五入函数,k=0.82816,m=1,2,3,4…,mmax=ceil(b/2),b取值为无符号定点数a的位宽,ceil()表示向上取整函数,使得在每次迭代过程中w固定增加4倍,在fpga中存储w的最大值wmax一个数值,减小fpga逻辑存储资源的占用。
11、在一些可选的实施例中,所述w的取值范围根据cordic算法的双曲向量模式的收敛区间确定,且不同取值的w适用于不同取值范围的无符号定点数a;其中,cordic算法的双曲向量模式的收敛区间为y1/x1∈[-0.8069,0.8069]。
12、在一些可选的实施例中,所述定点数a的开平方根结果
13、式中,n表示迭代次数,xn表示cordic算法的双曲向量模式的收敛结果,且xn=k(x12-y12)1/2,且t的值等于2的m整数次幂。
14、在一些可选的实施例中,所述基于cordic算法的双曲向量模式对所述无符号定点数进行开平方根处理,包括:
15、在通过cordic算法的双曲向量模式的迭代公式获得收敛结果xn后,对收敛结果xn向右移位m位,得到无符号定点数a的开平方根结果。
16、在一些可选的实施例中,在所述基基于cordic算法的双曲向量模式对所述无符号定点数进行开平方根处理之前,还包括:
17、确认所述待开平方根的无符号定点数的值为非0。
18、本申请的实施例还提供了一种基于fpga的数字信号处理系统,包括:
19、数据获取模块,用于获取fpga数字信号处理过程中fpga上预设运算单元中的待开平方根的无符号定点数;
20、数据计算模块,用于基于cordic算法的双曲向量模式对所述无符号定点数进行开平方根处理,并根据开平方根结果执行fpga数字信号处理过程中剩余运算单元的包括无符号定点数开平方根处理的运算内容,完成fpga数字信号处理;
21、其中,所述cordic算法的双曲向量模式,通过以下迭代公式计算得到无符号定点数的开平方根结果:
22、
23、式中:
24、dn=sign(xnyn),sign()表示符号函数,当输入大于或等于0时输出结果为1,否则为-1;
25、迭代次数为待开平方根的无符号定点数的位宽;
26、迭代过程的初始值为x1=a+w,y1=a-w,使整个迭代过程通过fpga的加法器与减法器实现;a表示待开平方根的无符号定点数;w表示预设常数,且w=round((2m/(2k))2),round()表示四舍五入函数,k=0.82816,m=1,2,3,4…,mmax=ceil(b/2),b取值为无符号定点数a的位宽,ceil()表示向上取整函数,使得在每次迭代过程中w固定增加4倍,在fpga中存储w的最大值wmax一个数值,减小fpga逻辑存储资源的占用。
27、本申请的实施例还提供了一种计算机设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器中存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述基于fpga的数字信号处理方法。
28、本申请的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述基于fpga的数字信号处理方法。
29、本申请的实施例提供的基于fpga的数字信号处理方法,至少具有以下有益效果:
30、在fpga上进行数字信号处理时,对其中的预设运算单元中的无符号定点数基于cordic算法的双曲向量模式来计算开平方根结果,通过将该cordic算法的双曲向量模式的迭代过程的初始值定义为x1=a+w,y1=a-w,使得整个迭代过程只需要fpga的加法器与减法器就可以实现,计算复杂度较低,效率较高。并且,迭代过程中唯一预设的自定义常数w,通过其公式可知,w每次固定增加4倍,则在进行fpga实现时,无需对上述所有w值进行存储,只需要在fpga中存储w的最大值wmax一个数值即可,减小了fpga逻辑存储资源的占用。
本文档来自技高网...【技术保护点】
1.一种基于FPGA的数字信号处理方法,其特征在于,应用于FPGA,所述方法包括:
2.根据权利要求1所述的基于FPGA的数字信号处理方法,其特征在于,所述W的取值范围根据CORDIC算法的双曲向量模式的收敛区间确定,且不同取值的W适用于不同取值范围的无符号定点数A;其中,CORDIC算法的双曲向量模式的收敛区间为y1/x1∈[-0.8069,0.8069]。
3.根据权利要求1所述的基于FPGA的数字信号处理方法,其特征在于,所述无符号定点数A的开平方根结果
4.根据权利要求3所述的基于FPGA的数字信号处理方法,其特征在于,所述基于CORDIC算法的双曲向量模式对所述无符号定点数进行开平方根处理,包括:
5.根据权利要求1所述的基于FPGA的数字信号处理方法,其特征在于,在所述基于CORDIC算法的双曲向量模式对所述无符号定点数进行开平方根处理之前,还包括:
6.一种基于FPGA的数字信号处理系统,其特征在于,包括:
7.一种计算机设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至5中任一项所述的基于FPGA的数字信号处理方法。
...【技术特征摘要】
1.一种基于fpga的数字信号处理方法,其特征在于,应用于fpga,所述方法包括:
2.根据权利要求1所述的基于fpga的数字信号处理方法,其特征在于,所述w的取值范围根据cordic算法的双曲向量模式的收敛区间确定,且不同取值的w适用于不同取值范围的无符号定点数a;其中,cordic算法的双曲向量模式的收敛区间为y1/x1∈[-0.8069,0.8069]。
3.根据权利要求1所述的基于fpga的数字信号处理方法,其特征在于,所述无符号定点数a的开平方根结果
4.根据权利要求3所述的基于fpga的数字信号处理方法,其特征在于,所述基于cordic算法的双曲向量模式对所述无符号定点数进行开平方根处理,包括:
5.根据权利要...
【专利技术属性】
技术研发人员:高新义,李楠,王毅璇,刘娅辛,
申请(专利权)人:西安华瑞恒泰信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。