一种频域值的计算及Zadoff-Chu序列生成、存储方法与流程

文档序号:26890650发布日期:2021-10-09 12:09阅读:388来源:国知局
一种频域值的计算及zadoff‑chu序列生成、存储方法
技术领域
:1.本发明涉及一种频域值的计算及zadoff‑chu序列生成、存储方法,属于通信
技术领域
:。
背景技术
::2.5g的prach信号是基于zadoff‑chu序列的离散傅里叶变换(dft)产生的。具体来说,是先产生zadoff‑chu序列:i=0,1,...,lra‑1,然后对它做循环移位xu,v(n)=xu((n+cv)modlra),然后再计算它的需要对每个u,v的值做dft(0‑lra‑1)其中lra(即zadoff‑chu序列的长度)的可能值是139,839,571,1151其中一个。3.fft是实现离散傅里叶变换的快速算法,广泛应用于各种数字信号处理系统,例如分析信号频谱特性,5g无线通信系统中的transformprecoding,ofdmmudulation,prach波形生成,以及接收端都会用到。它每次输入n个数,变换输出n个数,这里的n被称为fft的点数,也记为fftsize。例如5g系统需要支持所有n=12*rbnum的fft,其中0<rb<=273,在prach模块甚至可能用到高达n=48*4096的fft。4.如果直接使用fft计算,而且不同的l_ra的需要做不同点数的fft。因为fft的复杂度很大,每个模块面积都比较大,而且需要例化多个模块,硬件成本会很高。5.openair的实现方式利用了zadoff‑chu的数学特性,但是使用了取模操作,这个在硬件上会转换为类似于除法的过程,需要多个clk(时刻)才能算出一个idx(频域值)。为此,我们提出一种频域值的计算及zadoff‑chu序列生成、存储方法。技术实现要素:6.本发明的目的在于克服现有技术中的不足,提供一种频域值的计算及zadoff‑chu序列生成、存储方法,解决现有技术中通过openair的实现方式使用取模操作时,需要多个时刻才能算出一个频域值的问题。7.为达到上述目的,本发明是采用下述技术方案实现的:8.第一方面,本发明提供了一种频域值的计算方法,包括:9.从逆元表中查表得到u‑1,其中逆元表为提前预存u‑1值的表;10.根据u‑1初始化辅助变量;11.对辅助变量通过两级差分和迭代计算,获得各个时刻的频域值;12.其中u‑1为u的逆元,u是zadoff‑chu序列的参数。13.进一步的,所述两级差分包括:14.idx的一级差分值diffidx=f1(u,n)=f(u,n+1)‑f(u,n),其中idx为预存的旋转因子表的索引值,diffidx为频域值的一级差分值,f1(u,n)、f(u,n+1)、f(u,n)均代表辅助变量,其中n是用于遍历该序列的index值;15.查表得到u的逆元u‑1=f1(u,n+1)‑f1(u,n),其为idx的二级差分值;16.进一步的,所述迭代计算包括:17.初始化diffidx,diffidx=(a+1==l_ra)?0:(u‑1+l_ra+1)/2,其中l_ra为序列长度;18.循环k=0~l_ra-1,其中k为循环变量;19.idxpluscv=(k==0)?0:idx;20.根据idxpluscv查表得到x,其中x为旋转因子,cv为循环偏移值;21.再根据查表得到x_u[0],即可根据zadoff‑chu序列的数学特性计算x_u[k];[0022]随后更新差分变量如下:[0023]ifk>0[0024]diffidx=(diffidx+u‑1>=l_ra)?(diffidx+u‑1‑l_ra):(diffidx+u‑1)[0025]idx=(idx+diffidx>=l_ra)?(idx+diffidx‑l_ra):(idx+diffidx)[0026]end[0027]idx=(idx+cv>=l_ra)?(idx+cv‑l_ra):(idx+cv)[0028]然后进入下一个k。[0029]第二方面,本发明提供了一种zadoff‑chu序列生成方法,通过上述频域值的计算方法计算获得频域值,并将频域值代入离散傅里叶变换公式计算得到zadoff‑chu序列,所述离散傅里叶变换公式为[0030]第三方面,本发明提供了一种5g的prach信号生成方法,通过上述zadoff‑chu序列生成方法得到zadoff‑chu序列,并基于对zadoff‑chu序列的离散傅里叶变换产生5g的prach信号。[0031]第四方面,本发明提供了一种zadoff‑chu序列存储方法,通过上述zadoff‑chu序列生成方法得到zadoff‑chu序列,并存储半个周期的zadoff‑chu序列。[0032]与现有技术相比,本发明所达到的有益效果:[0033]本发明通过逆元表中查表得到u‑1,其中逆元表为提前预存的u‑1的值,并根据u‑1初始化辅助变量和频域值,再通过两级差分和迭代计算,在每一个时刻均能输出一个频域值,解决了现有技术中通过openair的实现方式使用取模操作时,需要多个时刻才能算出一个频域值的问题。另外,仅仅存储半个周期的zadoff‑chu序列,有助于降低硬件储存空间和硬件实现代价。附图说明[0034]图1是本发明实施例一提供的一种频域值的计算方法示意图。具体实施方式[0035]下面结合附图对本发明作进一步描述,以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。zadoff‑chu序列具有如下数学特性:的dft仅仅对xu(0)的值做dft,其中u‑1k和下文提到的idx均代表频域值,本发明通过两级差分,把原先openair实现方式的取模操作转换为与l_ra的比较大小的操作,可以在一个clk计算出一个频域值;另外利用xu(0~lra‑1)的对称性,仅仅存储它的一半,减少存储开销,需要说明的是,xu(0~lra‑1)即zadoff‑chu序列。[0036]具体的对称性是指:[0037][0038]所以可以仅仅存储xu(0),使u=0~(lra+1)/2,利用上述对称性可以把u=0~(lra‑1)的xu(0)全部恢复出来,把上述方法与zadoff‑chu的dft数学性质结合,形成一个完整的实现zadoff‑chu序列离散傅里叶变换的方法。首先,需要计算获得idx,并将idx代入公式中进行计算得到zadoff‑chu序列,其中,计算idx=mod(u‑1k,lra)的原理如下,其中lra与l_ra均为代表序列长度:[0039]记f(u,n,lra)=u*n*(n+1),0<=n<lra[0040]引入两个辅助变量f1(u,n,lra)和f2(u,n,lra):[0041]f1(u,n,lra)=f(u,n+1,lra)‑f(u,n,lra)=diffidx;[0042]f2(u,n,lra)=f1(u,n+1,lra)‑f1(u,n,lra)=u_inv;[0043]通过记录f2(u,n,lra)更新f1(u,n,lra),然后再通过f1(u,n,lra)更新f(u,n+1,lra),通过两级差分和迭代计算,获得各个时刻的频域值,从而避免了取模操作,计算频域值得过程也不需要乘法器。[0044]实施例一[0045]本发明的实施例一提供了一种频域值的计算方法,计算流程步骤如下:[0046]步骤一:从逆元表中查表得到u‑1,其中逆元表为提前预存u‑1值的表;[0047]步骤二:根据u‑1初始化辅助变量;[0048]idx的一级差分值diffidx=f1(u,n)=f(u,n+1)‑f(u,n),其中idx既是频域值,也是预存的旋转因子表的索引值;diffidx为频域值的一级差分值,f1(u,n)、f(u,n+1)、f(u,n)均代表辅助变量,其中n是用于遍历该序列的index值;[0049]查表得到u的逆元u‑1=f1(u,n+1)‑f1(u,n),其为idx的二级差分值;[0050]其中,diffidx初始化方法为:[0051]diffidx=(a+1==l_ra)?0:(u‑1+l_ra+1)/2,其中l_ra为序列长度;[0052]步骤三:循环k=0~l_ra-1,其中k是循环变量(0‑l_ra);[0053]步骤四:idxpluscv=(k==0)?0:idx;[0054]步骤五:根据idxpluscv查表得到x,其中x为旋转因子,cv为循环偏移值;再根据查表得到x_u[0],即可根据zadoff‑chu序列的数学特性计算x_u[k];[0055]步骤六:随后更新差分变量如下:[0056]ifk>0[0057]diffidx=(diffidx+u‑1>=l_ra)?(diffidx+u‑1‑l_ra):(diffidx+u‑1)[0058]idx=(idx+diffidx>=l_ra)?(idx+diffidx‑l_ra):(idx+diffidx)[0059]end[0060]idx=(idx+cv>=l_ra)?(idx+cv‑l_ra):(idx+cv)[0061]然后进入下一个k。[0062]实施例二[0063]本发明实施例二提供了一种zadoff‑chu序列生成方法,通过实施例一中的频域值的计算方法计算获得频域值,并将idx(即频域值u‑1k)代入公式中进行计算得到xu(0~lra‑1),即zadoff‑chu序列。[0064]实施例三[0065]本发明实施例三提供了一种5g的prach信号生成方法,通过实施例二中的zadoff‑chu序列生成方法得到zadoff‑chu序列,最终基于对zadoff‑chu序列的离散傅里叶变换(dft)产生5g的prach信号。[0066]实施例四[0067]本发明实施例四提供了一种zadoff‑chu序列存储方法,其特征在于,通过实施例二的zadoff‑chu序列生成方法得到zadoff‑chu序列,在上述计算完成后,为了减小xu的储存空间,本实施例中仅仅存储半个周期的即xuhalftable为如果u<=(lra+1)/2,则可以直接从xuhalftable里查表得到xu(0);如果u>(lra+1)/2,其对称位置q=lra‑u<=(lra+1)/2,利用上述对称性可以得到xu(0)=conj(xq(0))。[0068]对于每个k,其中idx由和xu(0)分别按照上述方法构造。[0069]本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd‑rom、光学存储器等)上实施的计算机程序产品的形式。[0070]本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0071]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0072]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0073]以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1