基于贪婪CORDIC算法的非平稳信道衰落孪生技术研究
2021-12-21赵子坤毛通宝水宜水陈小敏朱秋明
赵子坤,毛通宝,吴 侹,水宜水,陈小敏,朱秋明
(1.南京航空航天大学电磁频谱空间认知动态系统工业与信息化部重点实验室,南京 211106;2.中国电子科技集团公司第七研究所,广州 510310)
引 言
无线信道作为通信链路的传播载体,利用孪生技术将物理信道的各种属性映射到虚拟空间,近年来被广泛应用于通信链路和网络性能评估[1]。现有信道孪生技术将物理信道映射成数字信道[2],主要有两种方法,分别为现场采集和实验室复播方法[3]与信道建模和实验室模拟复现方法[4]。然而,现场采集和实验室复播方法硬件资源开销大、应用场景有限,外场测试又存在孪生效率低、成本高的弊端。通过对信道衰落特性的深入了解,在实验室中进行信道建模和模拟复现是一种有效的替代方案,具有低成本、可视化和可控性等优点,并且基于实验室无线模拟平台信道孪生同软件方法相比有更好的实时性,应用较为灵活。目前国内外成熟的商用信道模拟器,通常只适用于传统平稳信道的模拟,不适用于动态场景下非平稳信道的模拟。因此,深入研究非平稳信道衰落的硬件孪生技术对于模拟真实通信场景下的通信链路有重要意义[5]。
早期研究发现,信号传播过程中的路径损耗可以建模为自由空间模型,由散射支路叠加引起的多径衰落通常可建模为Nakagami分布[6],而由建筑物、山脉等因素导致的阴影衰落通常可建模为正态分布。文献[7⁃8]基于谐波叠加(Sum of sinusoids,So S)方法在现场可编程门阵列(Field programmable gate ar⁃ray,FPGA)平台上实现了单输入单输出(Single input single output,SISO)信道模拟器,可实时模拟复现莱斯衰落。然而在实际中,模拟器需要为多个链路生成信道以满足当前或未来通信系统的需求。为了满足多通道的需求,文献[9]给出了一种单输入多输出(Single input multiple output,SIMO)信道模拟器实现方案。上述信道模拟器都是基于广义平稳(Wide sense stationary,WSS)假设条件,而实际通信场景的信道呈现非平稳特性。若采用上述模拟方法,会导致信道衰落输出相位不连续,多普勒频率不准确。为保证相位输出连续,文献[10]采用改进调频叠加(Sum of frequency modulation,So FM)模型给出了一个2×2多输入多输出(Multiple input multiple output,MIMO)信道模拟器的实现方案。此外,与SISO相比,SI⁃MO或MIMO的信道模拟器需要更多硬件成本。因此,硬件资源消耗与系统实时性的权衡成为设计信道仿真器的关键问题,而信道衰落产生的关键就是实现复指数信号的实时计算。
目前,复指数运算最常用的硬件产生方法是查找表(Look up table,LUT)方法。基于LUT方法的4×4 MIMO信道仿真器,其实时性好,但会消耗大量随机存取存储器(Random access memory,RAM)资源[11]。坐标旋转数字计算(Coordinate rotation digital computer,CORDIC)是一种低成本硬件算法,可以在不消耗存储资源的情况下实现三角函数、对数函数和先验函数等的实时计算,应用于信号处理、图像处理的奇异值分解等领域[12⁃14]。文献[12]通过近似目标角度实现了CORDIC算法,但仍然需要消耗少量的RAM资源。为了进一步提高资源利用率,文献[13]采用异步流水线架构来实现CORDIC算法,但由于迭代次数过多,算法延迟较大。为了减少CORDIC算法不必要的迭代次数,提高系统实时性,文献[14]提出了一种高基CORDIC算法来降低系统延迟,但硬件电路结构比较复杂,不易实现。
为了解决上述问题,本文基于SoFM模型给出了非平稳信道复合衰落序列的模拟方案,基于贪婪CORDIC计算方法在FPGA平台上实现了复指数的实时计算。通过引入域折叠技术、贪婪角度记录单元、并行流水线结构,大大减少硬件资源的使用,提高了系统实时性。同时,基于时分复用多速率分级结构,进一步优化了硬件资源消耗。
1 信道模型
在无线信号的传输过程中,到达接收端的信号通常由多条具有不同时延和到达角度的路径叠加组成,通常包括视距路径和受到反射、折射以及障碍物衍射等影响的非视距路径,每条路径信号的幅度呈现快速起伏的随机衰落。为进一步简化无线信道模型,在不考虑信道噪声的条件下,信道的单位冲激响应可表示为[15]
式中:N表示多径数目;rn(t)、τn和ϕn(t)分别表示各条路径的幅值、时延和初始相位;αn(t)表示信号传播过程中的路径损耗,通常短时间内保持不变,属于大尺度衰落;γn(t)表示不可分辨散射支路叠加形成的多径衰落,属于小尺度衰落,通常可建模为Nakagami分布;βn(t)表示由建筑物和山脉等因素导致的阴影衰落,通常可建模为对数正态分布[16]
式中:ξn,β表示阴影衰落的标准偏差,实测数据表明ξn,β∈[1.5,7]d B[17];αn,β表示阴影衰落的均值,即为传输路径损耗值。
式中:βn表示各簇信号信道衰落的平均功率,即阴影衰落值;mn为信道衰落参数,实测数据表明mn∈[0.7,10];信道衰落的恶劣程度可根据mn值来评估,当mn=1时,式(3)退化为瑞利衰落,mn=∞则代表无衰落。
2 非平稳衰落信道高效硬件模拟实现
2.1 非平稳信道衰落序列随机模拟
由式(1~3)易知,实现非平稳信道衰落序列孪生的关键是产生时变的随机信道衰落βn(t)和γn(t)。根据随机变量性质可知,两者均可通过高斯随机过程进行非线性变换得到。其中,阴影衰落过程可建模为
式中:σn,0(t)表示均值为0,方差为1的高斯变量,αn,β为阴影衰落均值,多径衰落[18]可进一步表示为
式中:σn,i(t),i=1,2,…,2m,与σn,0(t)分布相同,m表示独立高斯变量的个数。基于上述分解思想,非平稳信道衰落序列的随机模拟的关键是产生多组服从均值为0,方差为1的高斯分布随机序列。前期研究表明,常用高斯随机变量的产生模型,只适用于平稳信道衰落序列模拟。然而,实际中大多数场景的信道衰落都呈现非平稳特性,因此,采用改进的调频谐波叠加(Sum of frequency modulation,So FM)方法[10]生成高斯随机变量σn(t),进一步完善使其便于硬件实现,其离散化模型表示为
式中:M表示调频谐波数量;φn,m,fn,m和θn,m分别表示第n条径第m条谐波的时变相位,多普勒频率和初始相位,初始相位服从U~(0,2π]的均匀分布。为了进一步验证So FM模型输出幅值分布,根据随机信号理论可以证明,第m支路复调频信号实部的均值和方差分别为0和1/2M,幅值分布[17]表示为
基于上述证明,非平稳信号衰落的序列模拟[19⁃20]的关键在于产生So FM模型中的大量调频谐波,其中,主要涉及时变相位φn,m的复指数的实时计算。目前,在硬件实现中,复指数计算最常用的是LUT方法,该方法硬件易于实现且实时性好,但是会消耗大量的RAM资源。CORDIC算法是另一种经典的低硬件成本方法,传统CORDIC算法基于迭代思想,占用较少的RAM资源,但硬件延迟较高。为了进一步提高硬件实时性,减少硬件资源消耗,需要开发更为高效的复指数计算方法。
2.2 基于贪婪CORDIC的复指数运算
经典CORDIC算法[21]的核心思想是将所需的角度划分为一组固定角度的集合,通过有限数目的旋转,实现时变相位映射为一组角度集合的线性组合过程。
图1给出了初始二维向量A(x0,y0),将其逆时针旋转角度θ后得到B(x1,y1)的示意图,其变换关系可用矩阵表示为
图1 坐标旋转示意图Fig.1 Coordinate rotation diagram
注意到,传统CORDIC算法需要迭代16次[22],系统整体实时性低,迭代延迟长。为进一步提高算法的效率,本文基于贪婪计算方法对经典CORDIC算法进行了改进。首先采用角度域折叠技术,缩小目标角度的旋转范围,来降低复指数计算复杂度;其次采用并行流水线的架构,以确保信号在一个时钟周期内有效输出,并结合贪婪算法来优化流水线单元级数,解决多次迭代造成的有效信号延迟过长的问题,以减少不必要的硬件资源消耗。
角度域折叠技术将目标角度的三角函数计算转换到较小的角度范围内进行操作,具体是将直角坐标系中4个象限等分为16个角度域,从而将大角度映射到目标小角度。以[0,π]内角度域的划分为例,如图2所示,其中第一象限可以等分为4个域,即Ⅰ域[0,π/8)、Ⅱ域[π/8,π/4)、Ⅲ域[π/4,3π/8)、Ⅳ域[3π/8,π/2),每个域的间隔为π/8,且目标角度φn,m在Ⅰ域中的映射为φ∈[0,π/8]。
图2 角度域划分及目标角度映射Fig.2 Angle domain division and target angle mapping relationship
映射关系具体如下:
由于同一坐标系各个象限之间存在角度映射关系,其他象限的角度都可以通过角度映射到第一象限上,进而映射到Ⅰ域中,实现角度域的折叠。以第一象限为例,在算法层面可以通过图3所示的二进制编码来实现映射角度域划分,其中S[i]用来记录不同区间。
图3 角度域编码Fig.3 Angle domain coding
为了解决多次迭代造成的信号延迟较长的问题,笔者结合贪婪算法实现对并行流水线结构[23]的优化。贪婪角度记录算法具体流程如图4所示。在算法初始化阶段,对于R⁃bit的定点化位宽,生成一组初始相位集ϕ(i)=arctan(2-()i+2),i∈[0,R-1],ϕ(i)为迭代次数所对应的角度值,θ(m)为迭代过程中的角度最小值且其初始值φn,m在I域中的映射为φ。采用流水线架构生成输出码c1(im)和c2(im),通过它们计算比例因子Ki、符号函数bi以及迭代单元移位值ωi,可以有效地减少角度迭代次数,降低复杂复指数计算所需要的硬件资源,缩短硬件等待时间。
图4 贪婪角度记录算法流程Fig.4 Flow chart of greedy angle recording algorithm
对于硬件实现而言,在FPGA中每次迭代均使用加法和移位操作来执行,即
式中:bi表示函数的符号方向,值为±1;迭代中移位操作的值ωi由c2(im)决定;为了保证算法精度及防止溢出,需设置初始值x0=Ki,y0=0,其中Ki为迭代所需角度的余弦值累积,等式为
式中:x0和y0为初始值,xn和yn分别为映射到I域中旋转角度的余弦值和正弦值。
映射角度的三角函数值可以通过角度域之间及三角函数的变换关系来实现。在硬件实现层面,目标角度φn∈[0,π/2]通过若干比较器和加/减法器可对应划分为第一象限的4个角度域,之后再利用已知角度三角函数的特性实现映射角度恢复,可以高效快速地计算出精度较高的正余弦值。
2.3 基于时分复用的信道衰落硬件模拟
为了进一步提高非平稳信道衰落序列的实现效率,本文基于时分复用思想给出了一种实现方案,如图5所示。该方案基于贪婪CORDIC复指数计算方法与基于时分复用的多速率分级设计相结合。根据中心极限定理,随着产生衰落的复谐波数目越多,输出的信道衰落就越接近理论分布。本文利用该方法产生M个复谐波,由于串行架构并且DA的时钟是100 MHz,在较低采样率Tf1=1.562 5 MHz下实现多普勒频率和初始相位实时叠加,得到时变相位φn,m,并将它送入贪婪CORDIC复指数运算模块计算时变相位的复指数值。累加器的输出时钟与DA时钟匹配是100 MHz,最后通过积分梳状滤波器(Cascaded integrator⁃comb filter,CIC)进行速率匹配变换,将数据速率内插到系统时钟Tf2=100 MHz后获得内插信号σn(t)。最后,通过σn(t)产生{βn(t),γn(t)}得到复合衰落rn(t)。
图5 基于时分复用的信道衰落模拟Fig.5 Channel fading simulation based on time division multiplexing
3 硬件实测及结果分析
3.1 硬件资源消耗
为了验证本文设计的非平稳信道通用衰落硬件模拟方法性能,笔者基于Xilinx公司的xc7k325tffg900芯片进行复指数运算模块硬件实现,数据位宽设为16。表1列出了LUT方法和本文改进CORDIC算法之间硬件资源消耗的比较值,LUT方法需消耗150个36 Kb的RAM资源,而改进后的CORDIC算法仅需消耗13个,RAM资源的占用率大大下降,总资源利用率也从17.89%减少到6.71%。因此,改进后的CORDIC算法大大减少大规模复指数运算的硬件资源消耗。
表1 不同方法硬件性能比较Table 1 Hardware performance comparison of different methods
进一步地,选取数目为32 768个时变相位作为输入角度,且均匀分布在[0,2π]范围。复指数运算效率主要体现在迭代处理上,因此,图6(a)统计了贪婪CORDIC算法不同输入角度对应的迭代误差,其中最小迭代误差为0.000 17%,最大迭代误差为0.083 4%,平均迭代误差约为0.013 6%,满足实际复指数实时运算要求。在图6(b)中,比较了经典CORDIC方法、文献[16]方法以及本文贪婪CORDIC方法的迭代延迟分布,结果表明,本文算法平均迭代延迟更少,约为5.5个时钟周期,比经典CORDIC方法减少65.625%。此外,最大迭代延迟为8个时钟周期,不同输入角度迭代延迟的概率密度函数(Probability density function,PDF)近似于高斯分布。综合图6(a)和(b),本文算法有效地减少了迭代延迟且具有较小的迭代误差,更适合大规模复指数的实时运算。
图6 贪婪CORDIC算法迭代误差和延迟Fig.6 Iterative error and delay of greedy CORDIC algorithm
3.2 实测结果分析
为了评估贪婪CORDIC算法的有效性和非平稳信道衰落模拟的可靠性,通过逻辑分析仪(Chip⁃scope)工具将输出衰落包络的数据导出到MATLAB中进行统计分析。图7(a)给出了实际测量不同位宽情况下输出衰落幅度的统计分布。由图7可以看出,位宽W=16的PDF与理论值拟合度更高。图7(b)比较了3组位宽的PDF误差。结果表明,随着位宽的增加,实测PDF与理论PDF的误差更小,从而验证了该方法对非平稳信道衰落的有效性。
图7 基于贪婪CORDIC算法的输出衰落Fig.7 Output fading based on greedy CORDIC algorithm
4 结束语
本文提出了一种基于调频信号叠加模型的非平稳信道衰落序列孪生方案,该方案基于贪婪CORDIC方法实现大规模复指数的实时运算,通过并行流水线结构、角度域折叠技术和角度记录单元,大大减少了硬件存储资源的消耗,与LUT方法相比,总资源利用率从17.89%减少到6.71%,硬件延迟时间也比传统的CORDIC算法更短且迭代误差较小。此外,还分析比较了不同位宽下输出衰落幅度的统计分布,结果表明,硬件实时模拟输出衰落幅值概率密度分布与理论值吻合。