一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种信号的循环移位处理方法及装置与流程

2021-10-24 05:05:00 来源:中国专利 TAG:移位 信号处理 装置 信号 循环


1.本发明涉及信号处理技术领域,尤指一种信号的循环移位处理方法及装置。


背景技术:

2.ieee 802.11是一个无线局域网标准。该标准在多天线发射端的信号处理中,规定了信号在发射前要经过循环移位(cyclic shift)处理,以避免不必要的波束成形的出现。其原理是在不同的空间数据流进行发送时,叠加上不同的发送延迟。时域(time domain)上的时间延迟等效要在频域进行角度的旋转。
3.对于角度的旋转,目前流行的做法是引入cordic(coordinate rotation digital computer,坐标旋转数字计算)计算模块进行角度旋转的计算。
4.但是cordic算法是一个通用的角度计算方法,该方法需要较多的迭代次数进行结果逼近,导致数字信号处理的延迟较大。


技术实现要素:

5.本发明的目的之一是提供一种信号的循环移位处理方法及装置,用于解决目前采用cordic计算模块进行角度旋转的计算,收敛速度慢、信号处理延迟大的问题。
6.本发明提供的技术方案如下:
7.一种信号的循环移位处理方法,包括:获取一空间数据流在第k个子载波的第一信号和所述空间数据流的循环移位时间;根据所述循环移位时间从预存的表格中获取所述空间数据流在第k个子载波的角度旋转因子;将所述空间数据流在第k个子载波的第一信号和所述空间数据流在第k个子载波的角度旋转因子相乘,得到所述空间数据流在第k个子载波的第二信号;将所述空间数据流在所有子载波的第二信号相加,得到所述空间数据流经循环移位处理后的信号。
8.可选地,所述预存的表格的构建:
9.根据以下公式计算所述循环移位时间在[0~2π)内的所有旋转角度:
[0010][0011]
其中δ
f
为预设频率间隔,为第i个空间数据流的循环移位时间,k为子载波序号,k为数据子载波的最高编号;
[0012]
根据以下公式计算[0,2π)内的每个旋转角度对应的角度旋转因子:
[0013]
w
i,k
=exp(angle
i
(k));
[0014]
根据所有旋转角度的角度旋转因子,得到所述循环移位时间对应的表格。
[0015]
可选地,所述的根据所述循环移位时间从预存的表格中获取所述空间数据流在第k个子载波的角度旋转因子,包括:若所述循环移位时间为0,则所述空间数据流在所有子载波的角度旋转因子为1;若所述循环移位时间不为0,且每种循环移位时间都有独立的表格对应,则根据所述循环移位时间从预存的表格中选取目标表格,从所述目标表格中获取所
述空间数据流在第k个子载波的角度旋转因子。
[0016]
可选地,所述的从所述目标表格中获取所述空间数据流在第k个子载波的角度旋转因子,包括:
[0017]
当预设频率间隔为312.5khz,所述循环移位时间的绝对值为400ns时,将子载波序号模8的结果作为目标表格的索引,根据所述索引从所述目标表格中获取所述子载波序号对应的角度旋转因子;
[0018]
当预设频率间隔为312.5khz,且所述循环移位时间的绝对值为200ns时,将子载波序号模16的结果作为目标表格的索引,根据所述索引从所述目标表格中获取所述子载波序号对应的角度旋转因子;
[0019]
当预设频率间隔为312.5khz,所述循环移位时间的绝对值为600ns时,将子载波序号模16的结果作为目标表格的索引,根据所述索引从所述目标表格中获取所述子载波序号对应的角度旋转因子。
[0020]
可选地,预设频率间隔为312.5khz,

200ns、

400ns、

600ns的循环移位时间对应同一张目标表格,且该目标表格为采用循环移位时间为(

200ns)得到的表格;
[0021]
若所述循环移位时间为400ns时,将子载波序号乘以2再模16的结果作为目标表格的索引;若所述循环移位时间为600ns时,将子载波序号乘以3模16的结果作为目标表格的索引;根据所述索引从所述目标表格中获取所述子载波序号对应的角度旋转因子。
[0022]
可选地,所述目标表格仅记录了预设频率间隔为312.5khz、循环移位时间为(

200ns),子载波序号为0~7时的角度旋转因子;当若所述循环移位时间为(

200ns)时,计算子载波序号模16的结果;若所述结果不超过7,则将所述结果作为目标表格的索引,根据所述索引获取所述目标表格中对应单元的取值,将该值作为所述子载波序号对应的角度旋转因子;若所述结果大于7,则将所述结果减8后的结果作为目标表格的索引,根据所述索引获取所述目标表格中对应单元的取值,对该值进行取反运算,将取反后的结果作为所述子载波序号对应的角度旋转因子。
[0023]
可选地,所述的将所述空间数据流在第k个子载波的第一信号和所述空间数据流在第k个子载波的角度旋转因子相乘,包括:
[0024]
分别得到所述空间数据流在第k个子载波的角度旋转因子的实部的二进制编码和虚部的二进制编码;所述第一信号的实部/虚部与所述角度旋转因子的实部的相乘,通过所述第一信号的实部/虚部与所述角度旋转因子的实部的二进制编码的移位相加实现;所述第一信号的实部/虚部与所述角度旋转因子的虚部的相乘,通过所述第一信号的实部/虚部与所述角度旋转因子的虚部的二进制编码的移位相加实现。
[0025]
本发明还提供一种信号的循环移位处理装置,包括:
[0026]
数据获取模块,用于获取一空间数据流在第k个子载波的第一信号和所述空间数据流的循环移位时间;
[0027]
角度旋转因子计算模块,用于根据所述循环移位时间从预存的表格中获取所述空间数据流在第k个子载波的角度旋转因子;
[0028]
循环移位处理模块,用于将所述空间数据流在第k个子载波的第一信号和所述空间数据流在第k个子载波的角度旋转因子相乘,得到所述空间数据流在第k个子载波的第二信号;将所述空间数据流在所有子载波的第二信号相加,得到所述空间数据流经循环移位
处理后的信号。
[0029]
可选地,还包括:表格构建模块,用于根据以下公式计算一循环移位时间在[0,2π)内的所有旋转角度:
[0030][0031]
其中δ
f
为预设频率间隔,为第i个空间数据流的循环移位时间,k为子载波序号,k为数据子载波的最高编号;
[0032]
根据以下公式计算[0,2π)内的每个旋转角度对应的角度旋转因子:
[0033]
w
i,k
=exp(angle
i
(k));
[0034]
根据所有旋转角度的角度旋转因子,得到所述循环移位时间对应的表格。
[0035]
可选地,所述角度旋转因子计算模块,还用于若所述循环移位时间为0,则所述空间数据流在所有子载波的角度旋转因子为1;若所述循环移位时间不为0,且每种循环移位时间都有独立的表格对应,则根据所述循环移位时间从预存的表格中选取目标表格,从所述目标表格中获取所述空间数据流在第k个子载波的角度旋转因子。
[0036]
通过本发明提供的一种信号的循环移位处理方法及装置,至少能够带来以下有益效果:
[0037]
1、本发明通过表格的方式预先存储每种循环移位时间对应的所有角度旋转因子,在对基带信号进行循环移位处理时,只需要查表获取角度旋转因子,避免了传统的cordic算法,提高了循环移位的处理速度,进而提高了基带信号处理的速度,同时大大减少硬件资源开销。
[0038]
2、本发明通过将多种循环移位时间对应的表格合并为一张表格,进一步减少了预存的表格数量与规模,从而在不影响循环移位的处理速度下,进一步减少了系统存储资源的消耗。
[0039]
3、本发明通过将循环移位处理中涉及的乘法运算用移位相加替代,进一步节省了硬件资源开销。
附图说明
[0040]
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种信号的循环移位处理方法及装置的上述特性、技术特征、优点及其实现方式予以进一步说明。
[0041]
图1是本发明的一种信号的循环移位处理方法的一个实施例的流程图;
[0042]
图2是本发明的一种信号的循环移位处理方法的另一个实施例的流程图;
[0043]
图3是本发明的一种信号的循环移位处理装置的一个实施例的结构示意图;
[0044]
图4是本发明的一种信号的循环移位处理装置的另一个实施例的结构示意图;
[0045]
图5是本发明的一种具体应用场景实施例的流程图。
具体实施方式
[0046]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图,并获得其他的实施方式。
[0047]
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘制了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0048]
本发明的一个实施例,如图1所示,一种信号的循环移位处理方法,包括:
[0049]
步骤s200获取第i个空间数据流在第k个子载波的第一信号和该空间数据流的循环移位时间;
[0050]
步骤s300根据循环移位时间从预存的表格中获取该空间数据流在第k个子载波的角度旋转因子;
[0051]
步骤s400将该空间数据流在第k个子载波的第一信号和该空间数据流在第k个子载波的角度旋转因子相乘,得到该空间数据流在第k个子载波的第二信号;
[0052]
步骤s500将该空间数据流在所有子载波的第二信号相加,得到该空间数据流经循环移位处理后的信号。
[0053]
具体地,以遵循802.11标准的wifi基带信号处理为例,按照802.11标准要求,为了避免出现不必要的波束,信号在发射前需要经过循环移位处理。我们将待循环移位处理的基带信号称为第一信号,循环移位处理后的基带信号称为第二信号。
[0054]
发射端可以同时发送多个空间数据流,每个空间数据流又可以映射到多个子载波上,所以每个空间数据流在每个子载波上都有各自的第一信号和第二信号。
[0055]
802.11标准制定了各种场景下空间数据流的循环移位时间。如表1所示:
[0056]
表1
[0057][0058]
根据表1,假设空口同时发送3条数据流,则第二条空间数据流的循环移位时间为(

400ns)。
[0059]
根据802.11标准,第i个空间数据流在第k个子载波的角度旋转因子为:其中exp是以e为底的指数函数,δ
f
为预设频率间隔,为第i个空间数据流的循环移位时间,k为子载波序号。
[0060]
传统采用cordic算法计算角度旋转因子,但cordic算法迭代时间长,为了提高角度旋转因子的计算速度,采用表格的方式预先存储每种循环移位时间对应的所有角度旋转因子。由于子载波数目是有限的,所以每种循环移位时间对应的所有角度旋转因子也是有限的。
[0061]
可选地,一种循环移位时间对应一种表格,若系统支持多种循环移位时间,则系统对应存在多种表格。在循环移位处理时,根据循环移位时间从所有预存的表格中选取目标表格,再从目标表格中获取空间数据流在每个子载波的角度旋转因子。具体的,可以根据子载波序号得到目标表格的索引,根据该索引获取目标表格中对应单元的取值,将该值作为子载波序号对应的角度旋转因子。
[0062]
也可以,多种循环移位时间对应一种表格,这样可以节省系统的存储空间。比如,循环移位时间为(

400ns)时,存在8种角度旋转因子;循环移位时间为(

200ns)时,存在16种角度旋转因子,这16种角度旋转因子包含了前面8种角度旋转因子,这样,(

400ns)也可以采用(

200ns)的对应的表格。由于采用了同样的表格,在根据子载波序号得到目标表格的索引时,不同的循环移位时间对应的计算方法会有所不同。
[0063]
通过查表获得第i个空间数据流在第k个子载波的角度旋转因子后,将其与第i个空间数据流在第k个子载波上的第一信号为s
i
(t,k)相乘,得到第i个空间数据流在第k个子载波的第二信号。将第i个空间数据流在所有子载波的第二信号相加,得到第i个空间数据流经循环移位处理后的基带信号。
[0064]
若不需要循环移位处理,则第i个空间数据流的基带信号为:k为数据子载波的最高编号。若需循环移位处理,则第i个空间数据流的基带信号为:
[0065]
当同时发射多个空间数据流时,每个空间数据流都按上述方式进行循环移位处理,此处不再重述。
[0066]
本实施例,通过表格的方式预先存储每种循环移位时间对应的所有角度旋转因子,在对基带信号进行循环移位处理时,只需要查表获取角度旋转因子,避免了传统的cordic算法,提高了循环移位的处理速度。
[0067]
在前述实施例基础上,如图2所示,一种信号的循环移位处理方法增加了:
[0068]
步骤s100构建系统支持的循环移位时间对应的表格。
[0069]
表格记录了每种循环移位时间对应的所有角度旋转因子。
[0070]
802.11标准制定了各种场景下空间数据流的循环移位时间,如表1所示,则系统支持的循环移位时间为

200ns、

400ns、

600ns。
[0071]
以系统支持一种循环移位时间为例,介绍对应表格的构建。对于多种循环移位时间,构建方式是类似的。
[0072]
步骤s100包括:
[0073]
步骤s110根据以下公式计算一循环移位时间在[0,2π)内的所有旋转角度:
[0074][0075]
其中,angle
i
(k)为第i个空间数据流在第k个子载波的旋转角度在[0,2π)内的角度值,δ
f
为预设频率间隔,为第i个空间数据流的循环移位时间,k为子载波序号,k为数据子载波的最高编号。
[0076]
步骤s120根据以下公式计算[0,2π)内的每个旋转角度对应的角度旋转因子:
[0077]
w
i,k
=exp(angle
i
(k));
[0078]
其中,w
i,k
为第i个空间数据流在第k个子载波的角度旋转因子。
[0079]
步骤s130根据得到的所有旋转角度的角度旋转因子,得到该循环移位时间对应的表格。
[0080]
表格的具体表现形式可以有多种。比如,由两种子表格构成,子表格1反应了子载波序号

旋转角度的对应关系,子表格2反应了旋转角度

角度旋转因子的对应关系,根据子表格1和2,就可以得到子载波序号

角度旋转因子的对应关系。还可以为:就一种表格,该表格反应了子载波序号

角度旋转因子的对应关系。优选后一种方式,后一种方式占用的存储资源少。
[0081]
在前述实施例基础上,步骤s300可以进一步细化为:
[0082]
若空间数据流的循环移位时间为0,则该空间数据流在所有子载波的角度旋转因子为1;若该循环移位时间不为0,则根据循环移位时间从预存的表格中获取该空间数据流在第k个子载波的角度旋转因子。
[0083]
从第i个空间数据流在第k个子载波的角度旋转因子的计算公式可以看出,若循环移位时间为0,则角度旋转因子始终为1。利用这一点,我们可以缩小表格,减少系统存储资源的消耗。
[0084]
若每种循环移位时间对应一种表格,则预存的表格包含了多种表格。根据循环移位时间从预存的表格中选取目标表格,再从目标表格中获取空间数据流在第k个子载波的角度旋转因子。
[0085]
在前述实施例基础上,可对步骤s400进一步优化,将其中涉及的乘法运算用移位相加的方式实现。
[0086]
乘法器,硬件开销比较大。在已知某个乘数的值的情况下,使用移位相加的方式等效替代乘法器,可以进一步节省硬件资源开销。
[0087]
具体地,空间数据流在第k个子载波的第一信号和空间数据流在第k个子载波的角度旋转因子相乘(=两个复数相乘)中涉及的乘法运算可通过以下方式得到:
[0088]
分别得到空间数据流在第k个子载波的角度旋转因子的实部的二进制编码和虚部的二进制编码;
[0089]
该第一信号的实部/虚部与该角度旋转因子的实部的相乘,通过该第一信号的实部/虚部与该角度旋转因子的实部的二进制编码的移位相加实现;
[0090]
该第一信号的实部/虚部与该角度旋转因子的虚部的相乘,通过该第一信号的实部/虚部与该角度旋转因子的虚部的二进制编码的移位相加实现。
[0091]
本发明的一个实施例,如图3所示,一种信号的循环移位处理装置,包括:
[0092]
数据获取模块100,用于获取一空间数据流在第k个子载波的第一信号和该空间数据流的循环移位时间;
[0093]
角度旋转因子计算模块200,用于根据循环移位时间从预存的表格中获取该空间数据流在第k个子载波的角度旋转因子;
[0094]
循环移位处理模块300,用于将该空间数据流在第k个子载波的第一信号和该空间数据流在第k个子载波的角度旋转因子相乘,得到该空间数据流在第k个子载波的第二信
号;将该空间数据流在所有子载波的第二信号相加,得到该空间数据流经循环移位处理后的信号。
[0095]
具体地,以遵循802.11标准的wifi基带信号处理为例,按照802.11标准要求,为了避免出现不必要的波束,信号在发射前需要经过循环移位处理。我们将待循环移位处理的基带信号称为第一信号,循环移位处理后的基带信号称为第二信号。
[0096]
发射端可以同时发送多个空间数据流,每个空间数据流又可以映射到多个子载波上,所以每个空间数据流在每个子载波上都有各自的第一信号和第二信号。
[0097]
802.11标准制定了各种场景下空间数据流的循环移位时间。根据802.11标准,第i个空间数据流在第k个子载波的角度旋转因子为:其中exp是以e为底的指数函数,δ
f
为预设频率间隔,为第i个空间数据流的循环移位时间,k为子载波序号。
[0098]
传统采用cordic算法计算角度旋转因子,但cordic算法迭代时间长,为了提高角度旋转因子的计算速度,采用表格的方式预先存储每种循环移位时间对应的所有角度旋转因子。
[0099]
可选地,一种循环移位时间对应一种表格,若系统支持多种循环移位时间,则系统对应存在多种表格。在循环移位处理时,根据循环移位时间从所有预存的表格中选取目标表格,再从目标表格中获取空间数据流在每个子载波的角度旋转因子。具体的,可以根据子载波序号得到目标表格的索引,根据该索引获取目标表格中对应单元的取值,将该值作为子载波序号对应的角度旋转因子。
[0100]
也可以,多种循环移位时间对应一种表格,这样可以节省系统的存储空间。
[0101]
通过查表获得第i个空间数据流在第k个子载波的角度旋转因子后,将其与第i个空间数据流在第k个子载波上的第一信号为s
i
(t,k)相乘,得到第i个空间数据流在第k个子载波的第二信号。将第i个空间数据流在所有子载波的第二信号相加,得到第i个空间数据流经循环移位处理后的基带信号。
[0102]
本实施例,通过表格的方式预先存储每种循环移位时间对应的所有角度旋转因子,在对基带信号进行循环移位处理时,只需要查表获取角度旋转因子,避免了传统的cordic算法,提高了循环移位的处理速度。
[0103]
在图3所示实施例基础上,如图4所示,一种信号的循环移位处理装置增加了表格构建模块400。
[0104]
表格构建模块400,用于构建系统支持的循环移位时间对应的表格。表格记录了每种循环移位时间对应的所有角度旋转因子。
[0105]
表格构建模块400包括:
[0106]
表格构建模块400,还用于根据以下公式计算循环移位时间在[0,2π)内的所有旋转角度:
[0107]
其中,angle
i
(k)为第i个空间数据流在第k个子载波的旋转角度在[0,2π)内的角度值,δ
f
为预设频率间隔,为第i个空间数据流的循环移位时间,k为子载波序号,k为数据子载波的最高编号。
[0108]
表格构建模块400,还用于根据以下公式计算[0,2π)内的每个旋转角度对应的角度旋转因子:w
i,k
=exp(angle
i
(k));
[0109]
其中,w
i,k
为第i个空间数据流在第k个子载波的角度旋转因子。
[0110]
表格构建模块400,还用于根据得到的所有旋转角度的角度旋转因子,得到该循环移位时间对应的表格。
[0111]
在图3所示实施例基础上,角度旋转因子计算模块200,还用于若空间数据流的循环移位时间为0,则该空间数据流在所有子载波的角度旋转因子为1;若该循环移位时间不为0,则根据循环移位时间从预存的表格中获取该空间数据流在第k个子载波的角度旋转因子。
[0112]
若预存的表格包含了多种表格,则角度旋转因子计算模块200,还用于根据循环移位时间从预存的表格中选取目标表格,再从目标表格中获取空间数据流在第k个子载波的角度旋转因子。
[0113]
在图3所示实施例基础上,可对循环移位处理模块300进一步优化,将其中涉及的乘法运算用移位相加的方式实现。
[0114]
乘法器,硬件开销比较大。在已知某个乘数的值的情况下,使用移位相加的方式等效替代乘法器,可以进一步节省硬件资源开销。
[0115]
循环移位处理模块300,还用于分别得到空间数据流在第k个子载波的角度旋转因子的实部的二进制编码和虚部的二进制编码;该第一信号的实部/虚部与该角度旋转因子的实部的相乘,通过该第一信号的实部/虚部与该角度旋转因子的实部的二进制编码的移位相加实现;该第一信号的实部/虚部与该角度旋转因子的虚部的相乘,通过该第一信号的实部/虚部与该角度旋转因子的虚部的二进制编码的移位相加实现。
[0116]
本发明还提供一种具体应用场景实施例,如图5所示,将前述的信号的循环移位处理方法及装置应用于wifi基带信号处理中。
[0117]
以标准802.11n在40m信道带宽下的data字段的公式为例,第i
ss
个空间数据流经循环移位处理后的信号如下所示:
[0118][0119]
其中,为第i
ss
个空间数据流在第k个子载波上的待循环移位处理的信号;为第i
ss
个空间数据流在第k个子载波的角度旋转因子;第i
ss
个空间数据流在第k个子载波的旋转角度为
[0120]
δ
f
,表示频率间隔,δ
f
=312.5khz;
[0121]
表示第i
ss
个空间流的循环移位时间;如表1所示,有

400ns、

200ns、

600ns 3种循环移位时间;
[0122]
k为数据子载波的最高编号,在本例中k=58。
[0123]
需要说明的是,在其他多天线情况下,上述字段的具体表达或取值会有所不同,比如,δ
f
、k等,但是角度旋转因子的计算方法是相同的,循环移位处理的方法
是类似的。
[0124]
步骤1:统计一个周期内的旋转角度并分类
[0125]
(1)第一条空间数据流不进行循环移位。
[0126]
(2)第二条空间数据流进行

400ns的循环移位;
[0127]
rot_angle2(k)=2πk*312.5khz*(

400ns)=

2πk/8。
[0128]
角度旋转的周期是2π,因此可能出现的旋转角度约束到一个周期[0~2π)为:0,2π/8,4π/8,6π/8,8π/8,10π/8,12π/8,14π/8。
[0129]
(3)第三条空间数据流进行

200ns的循环移位;
[0130]
rot_angle3(k)=2πk*312.5khz*(

200ns)=

πk/8。
[0131]
角度旋转地周期是2π,因此可能出现的旋转角度约束到一个周期[0~2π)为:0,π/8,2π/8,2π/8,3π/8,4π/8,5π/8,6π/8,7π/8,8π/8,9π/8,10π/8,11π/8,12π/8,13π/8,14π/8,15π/8。
[0132]
(4)第四条空间数据流进行

600ns的循环移位;
[0133]
rot_angle4(k)=2πk*312.5khz*(

600ns)=

3πk/8。
[0134]
角度旋转地周期是2π,因此可能出现的旋转角度约束到一个周期[0~2π)为:0,π/8,2π/8,2π/8,3π/8,4π/8,5π/8,6π/8,7π/8,8π/8,9π/8,10π/8,11π/8,12π/8,13π/8,14π/8,15π/8。
[0135]
综上,所有可能出现的角度是:0,π/8,2π/8,2π/8,3π/8,4π/8,5π/8,6π/8,7π/8,8π/8,9π/8,10π/8,11π/8,12π/8,13π/8,14π/8,15π/8。
[0136]
步骤2:计算一个周期内的旋转角度等效的复数值
[0137]
根据欧拉公式和三角函数公式:
[0138]
exp(0)=1;
[0139]
exp(π/8)=cos(π/8) isin(π/8)
[0140][0141]
exp(3π/8)=cos(3π/8) isin(3π/8)=sin(π/8) icos(π/8)
[0142]
exp(4π/8)=cos(4π/8) isin(4π/8)=i
[0143]
exp(5π/8)=cos(5π/8) isin(5π/8)=

sin(π/8) icos(π/8)
[0144][0145]
exp(7π/8)=cos(7π/8) isin(7π/8)=

cos(π/8) isin(π/8)
[0146]
exp(8π/8)=cos(8π/8) isin(8π/8)=
‑1[0147]
exp(9π/8)=cos(9π/8) isin(9π/8)=

cos(π/8)

isin(π/8)=

exp(π/8)
[0148][0149]
exp(11π/8)=cos(11π/8) isin(11π/8)=

sin(π/8)

icos(π/8)=

exp(3π/8)
[0150]
exp(12π/8)=cos(12π/8) isin(12π/8)=

i=

exp(4π/8)
[0151]
exp(13π/8)=cos(13π/8) isin(13π/8)=sin(π/8)

icos(π/8)=

exp(5π/8)
[0152][0153]
exp(15π/8)=cos(15π/8) isin(15π/8)=cos(π/8)

isin(π/8)=

exp(7π/8)
[0154]
综上,可能出现的复数的实部的绝对值和虚部的绝对值如下:
[0155]
sin(π/8),cos(π/8),1和0。
[0156]
所有可能出现的角度旋转因子都是上面几个绝对值的简单加减组合。
[0157]
步骤3:总结归纳构造表格,查找表格获取旋转复数值(即角度旋转因子)。
[0158]
从上面的推算可以看出,角度旋转因子与k值和i
ss
值有关。
[0159]
记b=sin(π/8),c=cos(π/8)。
[0160]
一:i
ss
=1,第一条数据流的循环移位时间为0,角度旋转因子=1,无需查表。
[0161]
二:i
ss
=2,第二条数据流的循环移位时间为

400ns,该循环移位时间对应的表格为:
[0162]
表2

a
[0163][0164]
三:i
ss
=3,第三条数据流的循环移位时间为

200ns,该循环移位时间对应的表格为:
[0165]
表2

b
[0166][0167][0168]
四:i
ss
=4,第四条数据流的循环移位时间为

600ns,该循环移位时间对应的表格为:
[0169]
表2

c
[0170][0171]
若针对每种循环移位时间构建对应的表格,如上所示,则在循环移位处理时,获取第i
ss
个空间数据流的循环移位时间,根据该循环移位时间从所有预存的表格中选取对应的表格(即目标表格),再从目标表格中获取该空间数据流在第k个子载波的角度旋转因子。
[0172]
以第2个空间数据流为例,其循环移位时间为

400ns,找到表2

a,计算k mod8,将该结果作为表2

a的索引,根据该索引得到表2

a中对应单元的取值,将该值作为第2个空间数据流在第k个子载波的角度旋转因子。
[0173]
以第3个空间数据流为例,其循环移位时间为

200ns,找到表2

b,计算k mod16,将该结果作为表2

b的索引,根据该索引得到表2

b中对应单元的取值,将该值作为第3个空间数据流在第k个子载波的角度旋转因子。
[0174]
以第4个空间数据流为例,其循环移位时间为

600ns,找到表2

c,计算k mod16,将该结果作为表2

c的索引,根据该索引得到表2

c中对应单元的取值,将该值作为第4个空间数据流在第k个子载波的角度旋转因子。
[0175]
我们进一步发现,(

400ns)对应的角度旋转因子包含在(

200ns)对应的角度旋转
因子中,(

200ns)对应的角度旋转因子与(

600ns)对应的角度旋转因子相同,只是表中排列的顺序不同,因此表2

a、表2

b、表2

c可以进一步合为一张表,这样可以节省系统的存储资源。
[0176]
假设上述3种循环移位时间都采用表2

b:
[0177]
第2个空间数据流的循环移位时间为(

400ns),则计算((2k)mod 16),将该结果作为表2

b的索引,根据该索引得到表2

b中对应单元的取值,将该值作为第2个空间数据流在第k个子载波的角度旋转因子。
[0178]
第3个空间数据流的循环移位时间为(

200ns),则计算(k mod 16),将该结果作为表2

b的索引,根据该索引得到表2

b中对应单元的取值,将该值作为第3个空间数据流在第k个子载波的角度旋转因子。
[0179]
第4个空间数据流的循环移位时间为(

600ns),则计算((3k)mod 16),将该结果作为表2

b的索引,根据该索引得到表2

b中对应单元的取值,将该值作为第3个空间数据流在第k个子载波的角度旋转因子。
[0180]
实际上,表2

b中索引为8的角度旋转因子等于索引为0的值的取反,索引为9的值等于索引为1的值的取反,其他情况依次类推,所以表2

b也可以只记录索引为0~7的角度旋转因子,当索引=8~15时,查找表2

b中(索引

8)对应的角度旋转因子,然后再取反,得到索引为8~15的角度旋转因子。
[0181]
步骤4:乘法器等效优化
[0182]
在循环移位处理中,需要将待循环移位处理的基带信号(是复数信号)和查找到的角度旋转因子(也是复数)进行乘法运算,即
[0183]
乘法器的缺点是对于硬件的开销比较大。而对于已知某个乘数的值的情况,可以使用移位相加的方式来实现,可以进一步节省硬件资源开销。
[0184]
对角度旋转因子的实部和虚部进行定点化,采用二进制编码,假设使用11bit,其中最高bit位是符号位,低10bit为实部或虚部的绝对值。
[0185]
如:cos(π/8)=0.9239,定点化为1024*0.9239≈946=2^9 2^8 2^7 2^5 2^4 2^1;
[0186]
sin(π/8)=0.3827,定点化为1024*0.3827≈392=2^8 2^7 2^3=;
[0187]
定点化为1024*0.7071≈724=2^9 2^7 2^6 2^4 2^2;
[0188]
其中,cos(π/8)可以进行进一步优化946=2^10

2^6

2^4 2^1;以减少加法器和移位器的使用;
[0189]
则所有的乘法运算转换成数据的移位相加的操作。例如:输入的复数数据的实部和虚部分别用in_i和in_q表示,如果数据是第三条流的第1个子载波,则根据查表获得旋转需要叠加的复数值为:cos(π/8) isin(π/8)。
[0190]
则经过循环移位之后的数据为:
[0191]
(in_i i*in_q)(cos(π/8) i*sin(π/8))=
[0192]
(in_i*cos(π/8)

in_q*sin(π/8)) i*(in_q*cos(π/8) in_i*sin(π/8))
[0193]
以实部中的in_i*cos(π/8)为例,利用移位相加进行乘法器提供代的过程如下:in_i*cos(π/8)=in_i<<10

in_i<<6

in_i<<4 in_i<<1。
[0194]
其他的如in_q*sin(π/8),in_q*cos(π/8),in_i*sin(π/8)计算类似,在此不赘述。
[0195]
本实施例,在循环移位的实现上,使用查找表格替代cordic模块的角度旋转计算方法,提高了数字信号处理的速度,节省了硬件资源开销;使用优化的移位相加方式替代乘法器,进一步节省了硬件资源开销。
[0196]
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜