一种PRACH基带信号生成的实现结构及实现方法与流程

文档序号:16199344发布日期:2018-12-08 06:27阅读:815来源:国知局
一种PRACH基带信号生成的实现结构及实现方法与流程

本发明涉及通信领域,尤其涉及一种prach(physicalrandomaccesschannel,物理随机接入信道)基带信号生成的实现结构及实现方法。

背景技术

lte协议中,prach信道上时间连续的随机接入信号s(t)由下式定义:

其中t表示时间,0≤t<tseq+tcp,tseq、tcp取值与前导格式有关,见表1。k0表示prach占用的rb起始位置,k表示占用带宽内的rb索引,k表示随机接入前导与上行数据之间的子载波间隔差别,βprach表示prach信号发射功率系数,n表示zc序列索引,tcp表示循环前缀长度,fra表示随机接入子载波间隔,表示资源块中随机接入前导的频域位置,nzc表示zc序列长度,其取值与前导格式有关,其取值见表2。

表1随机接入前导参数

表2随机接入参数

zc序列定义如下:

xu,v(n)=xu((n+cv)modnzc)(2)

cv是计算前导时的时域偏移量,为与v有关的一个变量,此处将其看做是一个独立的变量,取值范围为0≤cv≤nzc-1。

基带信号离散形式

在公式(1)中,省略βprach,并设采样时间为ts=1/30.72mhz,将t=its代入s(t)中,有

其中tcp=ncpts。

格式0--3

将δfra=1250代入公式(2)中并省去ts有

其中

公式(6)为一dft变换。

格式4

将δfra=7500代入公式(2)中并省去ts有,

其中

公式(8)为一dft变换。

由公式(5)和公式(7)可知,该离散信号基带信号分为dft变换、idft变换、载波搬移以及添加cp等过程,其生成流程如图1所示。图1中,对于格式0--3,m=839,n=24576,完成prach基带信号生成需要一个839点的dft变换和一个24576点的idft变换。对于格式4,m=139,n=4096,完成prach基带信号生成需要一个139点的dft变换和一个4096点的idft变换。

dft/idft变换是很复杂的运算,直接使用公式变换时复数乘法运算量与点数平方成正比,因此对于上述点数的dft/idft变换尤其是格式0--3时的dft/idft变换不宜直接计算,使用dft/idft变换快速算法库利图基(cooley-tukey)算法可以大大降低dft/idft变换的计算量,但库利图基(cooley-tukey)算法是一般信号dft/idft变换的快速算法,若在生成prach信道的基带信号时直接使用该算法,则没有充分利用zc序列的特殊性;而且dft运算是素数点dft运算(839点或139点),不宜使用库利图基(cooley-tukey)算法进行分解;idft在格式0--3时是24576点,在格式4时是4096点,尤其在格式0--3时是大点数idft运算,使用库利图基(cooley-tukey)算法仍有很大运算量。



技术实现要素:

本发明所要解决的技术问题是:针对现有技术存在的问题,本发明提供一种prach基带信号生成的实现结构及实现方法,dft(discretefouriertransform,离散傅里叶变换)计算时充分利用zc序列的特殊性,idft(inversediscretefouriertransform,离散傅里叶逆变换)计算时充分利用其输入信号存在大量零值的特点,简化信号生成过程中dft和idft的计算,进而简化整个信号生成过程。

本发明提供的一种prach基带信号生成的实现结构,该结构为现场可编程门阵列fpga结构,包括dft实现结构和idft实现结构,dft实现结构包括只读存储器rom1、rom2和rom3,相位一索引号计算模块、相位二索引号计算模块、加法器一、求模模块和乘法器,rom1的输出端分别与相位一索引号计算模块和rom3的输入端连接,加法器一的输入为相位一索引号计算模块和相位二索引号计算模块的输出,加法器一的输出端与求模模块的输入端连接,求模模块的输出端与rom2的输入端连接,乘法器的输入为rom2和rom3的输出;只读存储器rom1、rom2和rom3的输入均为读地址;

rom1用于存储1/umodnzc的值,rom2用于存储的值,rom3用于存储xu(0)的值,其中,u为rom1的输入,nzc为zc序列的长度,

相位一索引号计算模块用于计算z(k)序列的相位索引号;相位二索引号计算模块的输入为计算前导时的时域偏移量cv,用于计算序列的相位索引号,其中,相位索引号是指公式中的θ,求模模块用于对nzc求模;

idft实现结构包括使能模块、只读存储器次rom1和次rom2、次相位一索引号计算模块、次相位二索引号计算模块、次乘法器一、ifft运算模块和次乘法器二,使能模块包括计数器2和随机存储器ram,计数器2的输出端与ram的输入端连接,次相位一索引号计算模块的输出端与次rom1的输入端连接,次相位二索引号计算模块的输出端与次rom2的输入端连接,次乘法器一的输入为使能模块的输出和次rom1的输出,次乘法器一的输出端与ifft运算模块的输入端连接,次乘法器二的输入为ifft的输出和次rom2的输出;ram、次rom1和次rom2的输入均为读地址;

使能模块中的计数器2表示0到nzc-1周期计数,ram用于存储zc序列经傅里叶变换dft后的数据,使能模块在输入信号为1时执行,输入信号为0时不执行且输出为0,其中,nzc为zc序列的长度;

次rom1用于存储的值,次rom2用于存储的值,其中,n为idft的长度,n′为每个子idft的长度,n′=2c,a=0,1,2,...,n-1,b=0,1,2,...,n′-1;当n=24576时,c=10,当n=4096时,c=8;

次相位一索引号计算模块用于计算复指数序列的相位索引号,次相位二索引号计算模块用于计算序列的相位索引号,其中,k=0,1,2,...,n′-1,p=0,1,2,...,n/n′-1,m=0,1,2,...,n′-1,ncp为循环前缀点数,为资源块中随机接入前导的频域位置,k为随机接入前导与上行数据之间的子载波间隔差别,k0为prach占用的rb起始位置;

ifft运算模块用于对次乘法器一的输出yp(k)进行处理得到的值。

进一步,dft实现结构的相位一索引号计算模块包括相位索引号差计算子模块、初始相位索引号计算子模块、加法器二和相位索引号计算子模块,相位索引号差计算子模块和初始相位索引号计算子模块的输入均为rom1的输出,加法器二的输入为相位索引号差计算子模块和初始相位索引号计算子模块的输出,加法器二的输出端与相位索引号计算子模块的输入端连接;

相位索引号差计算子模块用于计算zz(k)序列的相位索引号差,初始相位索引号计算子模块用于计算zz(k)序列的相位索引号初始值,相位索引号计算子模块用于对加法器二的输出进行处理得到z(k)序列的相位索引号,其中,

进一步,dft实现结构的求模模块包括减法器、判断器和选择器,选择器有三个输入端,减法器的输出端与判断器的输入端连接,判断器的输出端与选择器的顶端输入端连接,选择器的第一个数输入和第二个数输入分别为减法器的输出和减法器的输入;

减法器用于将其输入值减去nzc;判断器用于判断减法器的输出是否大于等于0,是则输出为1,否则输出为0;选择器的顶端输入为1时输出第一个数,为0时输出第二个数。

进一步,dft实现结构的相位二索引号计算模块和相位索引号差计算子模块均为一阶反馈结构,该一阶反馈结构包括一个加法器、一个求模模块和一个延时器,该加法器的输入为该一阶反馈结构的输入和延时器的输出,该加法器的输出端与该求模模块的输入端连接,该求模模块的输出端与延时器的输入端连接,延时器用于延时一个时钟周期。

进一步,dft实现结构的相位索引号计算子模块包括一个求模模块和一个一阶反馈结构,相位索引号计算子模块的输入即为该求模模块的输入,该求模模块的输出端与该一阶反馈结构的输入端连接。

进一步,dft实现结构的初始相位索引号计算子模块包括两个加法器、一个求模模块、一个乘法器、一个取整器、一个求模器和一个选择器,该选择器具有三个输入端,第一个加法器的输出端与该求模模块的输入端连接,该求模模块的输出端分别与该乘法器和该求模器的输入端连接,该乘法器的输出端与该取整器的输入端连接,该取整器的输出端与第二个加法器的输入端连接,该求模器的输出端与该选择器的顶端输入端连接,该选择器的第一个数输入和第二个数输入分别为第二个加法器的输出和第二个加法器的输入;

第一个加法器用于将初始相位索引号计算子模块的输入值加1;该乘法器用于将其输入值乘以0.5;该求模器用于将其输入值对2求模;第二个加法器用于将其输入值加420;该选择器的顶端输入取值只能为1或0,为1时输出第一个数,为0时输出第二个数。

进一步,当n=24576时,idft实现结构的次相位一索引号计算模块包括次加法器、次减法器、次求模模块和s101模块,次加法器的输出端与次求摸模块的输入端连接,次求模模块的输出端与s101模块的一个输入端连接,次减法器的输出端与s101模块的另一输入端连接;次求模模块用于对n求模,s101模块用于将两个无符号整数x和y的乘积对n求模,其中,y=ncp-p;

当n=4096时,idft实现结构的次相位一索引号计算模块包括次加法器、次减法器、次子截位器一、次子乘法器一和次子截位器二,次加法器的输出端与次子截位器一的输入端连接,次子乘法器一的输入为次子截位器一的输出和次减法器的输出,次子乘法器一的输出端与次子截位器二的输入端连接;次子截位器一和次子截位器二分别用于将次加法器的输出数和次子乘法器一的输出数的低12位截取并保持高低位顺序不变表示为一个无符号整数。

进一步,idft实现结构还包括计数器1、次截位器一、次截位器二和次判断器,次相位二索引号计算模块包括次子乘法器二和次子截位器三,计数器1的输出端分别与次截位器一和次截位器二的输入端连接,次截位器一的输出端分别与次判断器、次相位一索引号计算模块的次加法器和次相位二索引号计算模块的次子乘法器二的输入端连接,次判断器的输出为使能模块的输入,次截位器二的输出端与次相位一索引号计算模块的次减法器的输入端连接,次相位二索引号计算模块的次子乘法器二的输出端与其次子截位器三的输入端连接;

计数器1为0到n-1周期计数,用一个w位比特数表示;次截位器一用于将计数器1的输出数的低c位截取并保持高低位顺序不变表示为一个无符号整数;次截位器二用于将计数器1的输出数的高w-c位截取并保持高低位顺序不变表示为一个无符号整数;次判断器用于判断次截位器一的输出数是否小于等于nzc-1,是则输出为1,否则输出为0;其中,当n=24576时,w=16,当n=4096时,w=12;

次相位一索引号计算模块的次加法器用于将次截位器一的输出与有符号整数进行求和,其次减法器用于将次截位器二的输出与无符号整数ncp进行相减,其中,用一个14位比特数表示,当n=24576时,ncp用一个15位比特数表示,x和y均用一个15位比特数表示,当n=4096时,ncp用一个9位比特数表示;

次相位二索引号计算模块的次子乘法器二用于将次截位器一的输出与有符号整数进行相乘,其次子截位器三用于将次子乘法器二的输出数的低c位截取并保持高低位顺序不变表示为一个无符号整数。

进一步,idft实现结构的次相位一索引号计算模块的次求模模块包括次子判断器、次子加法器和次选择器,该次选择器具有三个输入端,次加法器的输出端分别与次子判断器和次子加法器的输入端连接,且为次选择器的第二个数输入,次子判断器的输出端与次选择器的顶端输入端连接,次选择器的第一个数输入为次子加法器的输出;

次子判断器用于判断次加法器的输出是否小于0,是则输出为1,否则输出为0;次子加法器用于将次加法器的输出与24576相加;次选择器的顶端输入取值只能为1或0,为1时输出第一个数,为0时输出第二个数。

本发明另一方面提供的一种prach基带信号生成的实现方法,该方法通过现场可编程门阵列fpga硬件平台实现,包括只读存储器rom1、rom2和rom3,以及使能模块、只读存储器次rom1和次rom2,使能模块包括计数器2和随机存储器ram,计数器2的输出端与ram的输入端连接,使能模块在输入信号为1时执行,输入信号为0时不执行且输出为0,rom1用于存储1/umodnzc的值,rom2用于存储的值,rom3用于存储xu(0)的值,ram用于存储zc序列经傅里叶变换dft后的数据,次rom1用于存储的值,次rom2用于存储的值,其中,u为rom1的输入,nzc为zc序列的长度,n为idft的长度,n′为每个子idft的长度,n′=2c,a=0,1,2,...,n-1,b=0,1,2,...,n′-1;当n=24576时,c=10,当n=4096时,c=8,各存储器的输入均为读地址,该实现方法包括包括dft实现步骤和idft实现步骤,

dft实现步骤包括:通过相位一索引号计算模块计算z(k)序列的相位索引号,相位一索引号计算模块的输入为rom1的输出,其中,相位索引号是指公式中的θ,

通过相位二索引号计算模块计算序列的相位索引号,相位二索引号计算模块的输入为计算前导时的时域偏移量cv;

通过加法器一将相位一索引号计算模块和相位二索引号计算模块的输出进行求和;

通过求模模块将加法器一的输出对nzc求模;

分别获取rom2和rom3中相应地址存储的值,并通过乘法器将rom2的输出与rom3的输出相乘,rom2的输入为求模模块的输出,rom3的输入为rom1的输出;

idft实现步骤包括:当使能模块的输入信号为1时,使能模块中的计数器2从0到nzc-1周期计数并输出计数值,其中,nzc为zc序列的长度;

通过次相位一索引号计算模块计算复指数序列的相位索引号,其中,k=0,1,2,...,n′-1,p=0,1,2,...,n/n′-1,ncp为循环前缀点数,为资源块中随机接入前导的频域位置,k为随机接入前导与上行数据之间的子载波间隔差别,k0为prach占用的rb起始位置;

分别获取ram和次rom1相应地址存储的值,并通过次乘法器一将ram的输出和次rom1的输出相乘;

通过ifft运算模块对次乘法器一的输出yp(k)进行处理得到的值,其中,m=0,1,2,...,n′-1;

通过次相位二索引号计算模块计算序列的相位索引号;

获取次rom2中相应地址存储的值,并通过次乘法器二将ifft运算模块的输出与次rom2的输出相乘。

与现有技术相比,本发明充分利用zc序列的特殊性和idft运算时输入信号存在大量零值的特点,整个dft运算只需要一个复数乘法以及一些加法(减法)、比较、选择等简单运算和3个rom寄存器,整个idft运算只需要两个复数惩罚(不包括s101模块中的乘法)、一个1024点或256点ifft运算以及一些截位、加法(减法)、比较、选择等简单运算和3个rom/ram寄存器,整体结构简单,计算量小,易于在fpga上实现。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1为本发明背景技术中的基带信号生成流程图;

图2为本发明实施例给出的839点dft实现结构图;

图3为本发明实施例给出的139点dft实现结构图;

图4为本发明实施例给出的24576点idft实现结构图;

图5为本发明实施例给出的s101模块实现结构图;

图6为本发明实施例给出的s101模块中s201模块和s202模块实现结构图;

图7为本发明实施例给出的s101模块中s203模块和s204模块实现结构图;

图8为本发明实施例给出的s101模块中s205模块实现结构图;

图9为本发明实施例给出的s101模块中s206模块和s207模块实现结构图;

图10为本发明实施例给出的s101模块中s208模块实现结构图;

图11为本发明实施例给出的s101模块中s209模块实现结构图;

图12为本发明实施例给出的s101模块中s210模块实现结构图;

图13为本发明实施例给出的s208模块中s301模块和s302模块实现结构图;

图14为本发明实施例给出的4096点idft实现结构图。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

为了便于说明,记公式中的θ为相位索引号。

本发明的dft算法原理如下。

公式(6)和公式(8)是dft变换公式,只是nzc取值不同,合并在一起分析。将公式(2)代入公式(6)中有

其中

将公式(3)代入公式(10),有

由于

故公式(11)可简化为:

代入公式(9)中,有

由公式(13)和公式(9)知,zc序列的dft运算,可以简化为一个常值xu(0)与另一个zc序列相乘。为了进一步减少计算量,xu(0)可以事先计算好,存放在rom3中。复指数序列的值也存放在一个rom2中,通过计算其地址输出序列,与xu(0)相乘,得到最后dft结果。可通过相位一索引号计算模块和相位二索引号计算模块分别计算序列和序列的相位索引号,然后将这两个序列的相位索引号相加,由于其和值有可能大于zc序列的长度nzc,故还需要通过一个求模模块将该和值对nzc求模,求模后的值作为rom2的输入,从rom2中读取序列的值,再与rom3中的xu(0)值相乘,即可得到x(k)。由于在计算复指数地址中存在对839的求模运算,采用递归的方式可以避免求模运算,且不存在乘法运算,只有加法、比较、选择等简单运算。

在公式(13)中,令

由公式(17)可知,zz(k)序列相位以1/umodnzc线性递增,而z(k)每次递增的相位正好为zz(k)的相位,因此可用两个一阶反馈系统级联完成zc序列的生成。为了避免计算1/umodnzc,可以将该值也使用一个rom1储存起来。可通过一个相位索引号差计算子模块对rom1中的1/umodnzc值进行处理得到zz(k)序列的相位索引号差,并通过一个初始相位索引号计算子模块对rom1中的1/umodnzc值进行处理得到zz(k)序列的相位索引号初始值,然后将相位索引号初始值与相位索引号差相加即可得到zz(k)序列的相位索引号,zz(k)序列的相位索引号经过一个相位索引号计算子模块处理即可得到z(k)序列的相位索引号。

优选地,求模模块包括减法器、判断器和选择器,选择器有三个输入端,减法器的输出端与判断器的输入端连接,判断器的输出端与选择器的顶端输入端连接,选择器的第一个数输入和第二个数输入分别为减法器的输出和减法器的输入;减法器用于将其输入值减去nzc;判断器用于判断减法器的输出是否大于等于0,是则输出为1,否则输出为0;选择器的顶端输入为1时输出第一个数,为0时输出第二个数。

优选地,相位二索引号计算模块和相位索引号差计算子模块均为一阶反馈结构,该一阶反馈结构包括一个加法器、一个求模模块和一个延时器,该加法器的输入为该一阶反馈结构的输入和延时器的输出,该加法器的输出端与该求模模块的输入端连接,该求模模块的输出端与延时器的输入端连接,延时器用于延时一个时钟周期。

优选地,相位索引号计算子模块包括一个求模模块和一个一阶反馈结构,相位索引号计算子模块的输入即为该求模模块的输入,该求模模块的输出端与该一阶反馈结构的输入端连接。

优选地,初始相位索引号计算子模块包括两个加法器、一个求模模块、一个乘法器、一个取整器、一个求模器和一个选择器,该选择器具有三个输入端,第一个加法器的输出端与该求模模块的输入端连接,该求模模块的输出端分别与该乘法器和该求模器的输入端连接,该乘法器的输出端与该取整器的输入端连接,该取整器的输出端与第二个加法器的输入端连接,该求模器的输出端与该选择器的顶端输入端连接,该选择器的第一个数输入和第二个数输入分别为第二个加法器的输出和第二个加法器的输入;第一个加法器用于将初始相位索引号计算子模块的输入值加1;该乘法器用于将其输入值乘以0.5;该求模器用于将其输入值对2求模;第二个加法器用于将其输入值加420;该选择器的顶端输入取值只能为1或0,为1时输出第一个数,为0时输出第二个数。

本发明实施例给出的839点dft实现结构如图2所示,图2中,u为输入,取值为1-838,rom1为长度838的存储器,用于存储1/umodnzc的值,nzc=839;rom2为长度839的复数存储器,用于存储的值,m=0,1,2,...,838;rom3为长度838的复数存储器,用于存储xu(0)的值,

三个rom的输入均为读地址,rom大小为838时,地址从1开始,大小为839时,地址从0开始。选择器有三个输入,顶端输入取值只能为1或0,为1时输出第一个数,为0时输出第二个数,延时器d表示延时一个时钟周期。由图2可以看出,整个结构只需要一个复数乘法器。

本发明实施例给出的139点dft实现结构如图3所示,图3中,u为输入,取值为1-138,rom1为长度138的存储器,用于存储1/umodnzc的值,nzc=139;rom2为长度139的复数存储器,用于存储的值,m=0,1,2,...,138;rom3为长度138的复数存储器,用于存储xu(0)的值,

三个rom的输入均为读地址,rom大小为138时,地址从1开始,大小为139时,地址从0开始。选择器有三个输入,顶端输入取值只能为1或0,为1时输出第一个数,为0时输出第二个数,延时器d表示延时一个时钟周期。由图3可以看出,整个结构只需要一个复数乘法器。

本发明的idft算法原理和实现结构具体如下。

对于格式0--3,idft运算点数均为24576点。在公式(5)中,令

为一整数,则公式(5)变为:

i=24m+p,m=0,1…1023,p=0,1…23

其中

p取值为0,1....23,由公式(20)知,格式0--3的idft变换算法可以分解成24个1024点idft运算。因此24576点idft可以由一个1024点idft串行运行24次,每次输入序列由dft输出的839点序列补零到1024点序列与一复指数序列相乘得到,每次输出序列与旋转因子相乘,得到的结果放置在大小为24576的ram对应位置24m+p上(图中未画出该ram)。而1024点idft使用快速算法库利图基(cooley-tukey)算法进行计算,复指数序列通过计算rom地址输出该序列。可通过次相位一索引号计算模块和次相位二索引号计算模块分别计算这两个复指数序列的相位索引号,并将其分别作为相应rom的输入。

优选地,次相位一索引号计算模块可通过一求模模块将一加法器的输出对n求模;通过s101模块将加法器的输出x和一减法器的输出y这两个无符号整数的乘积对n求模,两个数可均用15位比特数表示,进而得到复指数序列的相位索引号,其中,y=ncp-p。s101模块实现时可采用图5所示的结构,而s101模块中的s201-s210模块及s301-s302模块可分别采用图6-13所示的结构。在一些实施例中,该求模模块可包括子判断器、子加法器和选择器,该选择器具有三个输入端,加法器的输出端分别与子判断器和子加法器的输入端连接,且为选择器的第二个数输入,子判断器的输出端与选择器的顶端输入端连接,选择器的第一个数输入为子加法器的输出;子判断器用于判断加法器的输出是否小于0,是则输出为1,否则输出为0;子加法器用于将加法器的输出与24576相加;选择器的顶端输入取值只能为1或0,为1时输出第一个数,为0时输出第二个数。

fpga具体实现结构如图4所示,图4中,计数器1为0到24575周期计数,可用一个16位比特数表示,次截位器一将该数的第0到第9位即低10位截取(高低位顺序不变,下同)并表示为一个无符号整数,次截位器二将该数的第10到第15位即高6位截取并表示为一个无符号整数。计数器2表示0到838周期计数,ram中存放的数据为dft(discretefouriertransform,离散傅里叶变换)输出的数据,共839个数。次rom1中存放的数值为次rom2中存放的数值为ram、次rom1和次rom2的输入均为读地址,ifft长度为1024点。使能模块在输入信号为1时执行,输入信号为0时不执行,且输出为0,可通过一判断器判断其输入是否小于等于838,是则输出为1,否则输出为0,并将该判断器的输出作为使能模块的输入,从而实现将dft输出的839点序列补零到1024点序列。优选地,次相位二索引号计算模块通过一子乘法器二将截位器一的输出与有符号整数进行相乘,并通过一子截位器三将子乘法器二的输出数的低10位截取并保持高低位顺序不变表示为一个无符号整数,进而得到序列的相位索引号。图4中,为一有符号整数,可用14位比特数表示;ncp表示循环前缀点数,为一无符号整数,可用15位比特数表示。

以下介绍s101模块(x*y)mod24576的fpga实现算法。

s101模块表示两个无符号整数相乘后对24576求模运算。本发明提供一种简单且适宜在fpga上实现的算法。设两个输入分别为x,y,输出为p,则

p=(x*y)mod24576(21)

在lte系统中,x,y,p均可用15比特位宽表示,通过截位,将x,y表示如下:

x=8192*x1+x2,y=8192*y1+y2(22)

x2=128*x21+x22,y2=128*y21+y22(23)

x21=8*x211+x212,y21=8*y211+y212(24)

x22=64*x221+x222,y22=64*y221+y222(25)

x222=8*x2221+x2222,y222=8*y2221+y2222(26)

其中

x1,x2,y1,y2,x21,x22,y21,y22,x211,x212,y211,y212,x221,x222,y221,y222,x2221,x2222,y2221,y2222均为无符号整数,其位宽及意义如表3所示

表3参数位宽

将公式(22)到公式(26)代入公式(21)中有:

p=(x*y)mod24576

=((8192*x1+x2)*(8192*y1+y2))mod24576

=((x1*y1*2+x1*y2+x2*y1)mod3*8192+x2*y2)mod24576

=(8192*p1+p2)mod24576(27)

其中

p1=(x1*y1*2+x1*y2+x2*y1)mod3

=(x1mod3*(y1+y2)mod3+y1mod3*(x1+x2)mod3)mod3(28)

p2=(x2*y2)mod24576

=(128*x21+x22)*(128*y21+y22)mod24576

=(8192*p21+128*p22+p23)mod24576(29)

其中p21=(2*x21*y21)mod3,p22=(x21*y22+y21*x22)mod192,p23=x22*y22

p22=(x21*y22+y21*x22)mod192

=(x21*(64*y221+y222)+y21*(64*x221+x222))mod192

=(64*p221+p222)mod192(30)

其中p221=(x21*y221+y21*x221)mod3,p222=(x21*y222+y21*x222)mod192

p222=(x21*y222+y21*x222)mod192

=((8*x211+x212)*(8*y2221+y2222)+(8*y211+y212)*(8*x2221+x2222))mod192

=(64*(x211*y2221+y211*x2221)mod3+

8*(x211*y2222+x212*y2221+y211*x2222+y212*x2221)+

x212*y2222+y212*x2222)mod192(31)

因此

p=(x*y)mod24576

=(p1*8192+p2)mod24576

=(p1*8192+8192*p21+128*p22+p23)mod24576

=(p1*8192+8192*p21+128*((64*p221+p222)mod192)+p23)mod24576

=(8192*(p1+p21)mod3+8192*p221mod3+128*p222mod192+p23)mod24576

=(8192*(p1+p21+p221+x211*y2221+y211*x2221)mod3+

1024*(x211*y2222+x212*y2221+y211*x2222+y212*x2221)mod24+

128*(x212*y2222+y212*x2222)mod192+

p23)mod24576(32)

令m=x211*y2222+x212*y2221+y211*x2222+y212*x2221=8*m1+m2,m为8比特无符号整数,m1为5比特无符号整数,m2为3比特无符号整数,则

mmod24=(8*m1+m2)mod24=8*m1mod3+m2(33)

综合有

p=(x*y)mod24576

=(p1*8192+p2)mod24576

=(p1*8192+8192*p21+128*p22+p23)mod24576

=(p1*8192+8192*p21+128*((64*p221+p222)mod192)+p23)mod24576

=(8192*(p1+p21)mod3+8192*p221mod3+128*p222mod192+p23)mod24576

=(8192*(p1+p21+p221+x211*y2221+y211*x2221+m1)mod3+

1024*m2+

128*(x212*y2222+y212*x2222)+

p23)mod24576

=qmod24576(34)

其中

q=(8192*(p1+p21+p221+x211*y2221+y211*x2221+m1)mod3+

1024*m2+128*(x212*y2222+y212*x2222)+p23(35)

由公式(35)易知q≤40065,故

因此只需要计算q值,便可以简单的计算出p值。而在q值计算过程中,除了mod3运算外,其他均为普通的加法和乘法运算。下面介绍mod3运算在fpga上实现的算法原理。

不失一般性,设w=(a*u+b*v)mod3,且a,u,b,v均为8比特无符号整数,a={a0,a1,a2,a3,a4,a5,a6,a7},a0,a1,a2,a3,a4,a5,a6,a7分别表示a的最低比特位、次低比特位...最高比特位。将a表示为

a=a1+4*a2+16*a3+64*a4(37)

则a1={a0,a1},a2={a2,a3},a3={a4,a5},a4={a6,a7}。

amod3=(a1+4*a2+16*a3+64*a4)mod3=(a1+a2+a3+a4)mod3,将a1+a2+a3+a4看做一个4比特无符号整数,反复使用公式(37)可最终计算出amod3。同理可计算出bmod3,umod3,vmod3,(amod3*umod3)mod3,(bmod3*vmod3)mod3的值。

其中k=(amod3*umod3)mod3+(bmod3*vmod3)mod3。

对于格式4,idft运算点数为4096点。

在公式(7)中,令

为一整数,则公式(7)变为:

i=16m+p,m=0,1…255,p=0,1…15

其中

sp(m)=s(16m+p),

p取值为0,1....15,由公式(41)知,格式4的idft变换算法可以分解成16个256点idft。因此4096点idft可以由一个256点idft串行运行16次,每次输入序列由dft输出的139点序列补零到256点序列与一复指数序列相乘得到,每次输出序列与旋转因子相乘,得到的结果放置在大小为4096的ram对应位置16m+p上(图中未画出该ram)。而256点idft使用快速算法库利图基(cooley-tukey)算法进行计算,复指数序列通过计算rom地址输出该序列。可通过次相位一索引号计算模块和次相位二索引号计算模块分别计算这两个复指数序列的相位索引号,并将其分别作为相应rom的输入。

优选地,次相位一索引号计算模块通过一子截位器一将一加法器的输出数的低12位截取并保持高低位顺序不变表示为一个无符号整数;通过一子乘法器一将子截位器一的输出和一减法器的输出相乘;通过一子截位器二将子乘法器一的输出数的低12位截取并保持高低位顺序不变表示为一个无符号整数,从而得到复指数序列的相位索引号。

fpga具体实现结构如图14所示,图14中,计数器1为0到4095周期计数,可用一个12位比特数表示,次截位器一将该数的第0到第7位即低8位截取(高低位顺序不变,下同)并表示为一个无符号整数,次截位器二将该数的第8到第11位即高4位截取并表示为一个无符号整数,其余截位器类似。计数器2表示0到138周期计数,ram中存放的数据为dft输出的数据,139个数。次rom1中存放的数值为次rom2中存放的数值为ram、次rom1和次rom2的输入均为读地址,ifft长度为256点。使能模块在输入信号为1时执行,输入信号为0时不执行,且输出为0,可通过一判断器判断其输入是否小于等于138,是则输出为1,否则输出为0,并将该判断器的输出作为使能模块的输入,从而实现将dft输出的139点序列补零到256点序列。优选地,次相位二索引号计算模块通过一子乘法器二将截位器一的输出与有符号整数进行相乘,并通过一子截位器三将子乘法器二的输出数的低8位截取并保持高低位顺序不变表示为一个无符号整数,进而得到序列的相位索引号。选择器有三个输入,顶端输入取值只能为1或0,为1时输出第一个数,为0时输出第二个数。图14中,为一有符号整数,用14位比特数表示;ncp表示循环前缀点数,为一无符号整数,用9位比特数表示。

本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

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