一种基于嵌入式GPU的宽带并行信道化接收方法转让专利

申请号 : CN202010548596.4

文献号 : CN111786688B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李国军田飞翔叶昌荣王遵立罗一平林金朝

申请人 : 重庆邮电大学

摘要 :

本发明涉及通信技术领域,特别涉及一种基于嵌入式GPU的宽带并行信道化接收方法,包括:构建OpenCL平台,平台包括工作项和工作组;对读入OpenCL平台的宽带信号进行抽取,抽取间隔为信道数,抽取之后原先读入的一维数据形成一个二维矩阵,二维矩阵的行数为信道数;将每一行的数据分配给一个工作组来处理,每个工作组将该工作组内的输入数据乘以第一因子;各个信道上的数据与该分支上的多相滤波器系数进行滤波处理;对滤波后的数据乘以第二因子;对形成的二维矩阵按列进行FFT运算以获得各个信道上输出的数据;本发明同时处理多个信道的计算任务,提高了任务处理的效率。

权利要求 :

1.一种基于嵌入式GPU的宽带并行信道化接收方法,其特征在于,包括以下步骤:构建OpenCL平台,OpenCL平台由一个宿主机和多个OpenCL设备组成,一个OpenCL设备内包括多个计算单元,一个计算单元包括多个工作组,每个计算单元包括多个处理元素,每个处理元素为一个工作项;

对读入OpenCL平台的宽带信号进行抽取,抽取间隔为信道数,抽取之后原先读入的一维数据形成一个二维矩阵,二维矩阵的行数为信道数;

将每一行的数据分配给一个工作组来处理,每个工作组将该工作组内的输入数据乘以m

因子(‑1) ,m为该数据所在的列数;

各个信道上的数据与该信道分支上的多相滤波器系数进行滤波处理;

对滤波后的数据乘以因子 其中p为该分支的信道号,D为信道数;

对形成的二维矩阵按列进行FFT运算以获得各个信道上输出的数据。

2.根据权利要求1所述的一种基于嵌入式GPU的宽带并行信道化接收方法,其特征在N

于,在读入宽带信号时,对信号采用三级信道化处理,若每次读入2个信号点,经过第一级N

信道化处理产生16个信道,每个信道包括2/16个信号点;经过第二集信道化处理产生256N

个信道,每个信道包括2 /256个信号点;经过第三级信道化处理,产生2048个信道,每个信N

道包括2/2048个信号点,N为整数。

3.根据权利要求2所述的一种基于嵌入式GPU的宽带并行信道化接收方法,其特征在于,对读入的宽带信号进行抽取,将宽带信号x(n)划分成K路信号,每路信号首先通过下变频处理搬移到基带,通过低通滤波器进行低通滤波处理,在通过抽取器进行抽取处理改变数据速率以最终获得该路信号,抽取的第k路信号表示为:其中,yk(m)表示抽取的第k路信号;xp(m)是第k路输入信号中第p个分支进行抽取后的结果,hp(m)是第k路输入信号中第p个多相滤波结构分支滤波器;*表示卷积。

4.根据权利要求2所述的一种基于嵌入式GPU的宽带并行信道化接收方法,其特征在于,滤波处理是将分支上的输入信号与该分支上的多相分量进行卷积,每个分支的处理由多个工作组进行处理,每个工作组分配多个工作项,每个工作项执行一个输出的计算,分支上的多相分量为该分支对应的信道。

5.根据权利要求2所述的一种基于嵌入式GPU的宽带并行信道化接收方法,其特征在于,对形成的二维矩阵按列进行FFT运算包括:对第一级信道进行16点FFT运算时,分配128个工作组,每个工作组分配16个工作项;完成运算后进行工作组内同步;

对第二级信道进行16点FFT运算时,分配16个工作组,每个工作组分配16个工作项;完成运算后进行工作组内同步;

对第三级信道进行8点FFT运算时,分配1个工作组,每个工作组分配16个工作项;完成运算后进行工作组内同步并输出运算结果。

说明书 :

一种基于嵌入式GPU的宽带并行信道化接收方法

技术领域

[0001] 本发明涉及通信技术领域,特别涉及一种基于嵌入式GPU的宽带并行信道化接收方法。

背景技术

[0002] 通信中,为实现对宽带信号中的多路信号进行并行接收,国内外研究者提出了多[1]
种高效的数字信道化结构 ,能对整个取样带宽的宽带信号进行信道化处理,同一时刻获
得多路信号,从而实现全概率接收。为实现高效的数字信道化结构,目前,研究者大多采用
DSP平台以及FPGA实现,但是这两种实现方式不具有可移植性,并且开发成本高。
[0003] 随着GPU的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,利用GPU完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算称为基于
GPU的通用计算(General Purpose computing on graphics processing units,GPGPU)。
对于具有极高的运算密度、并发线程数量较大和频繁的存储器访问的领域,这种问题如果
能顺利迁移到GPU为主的运算环境中,将为我们带来更高效的解决方案。
[0004] 基于目前的研究现状,本文提出了一种基于嵌入式低功耗GPU并行处理的方式来[4]
实现多相DFT的信道化结构,采取OpenCL框架 进行并行化编程。OpenCL标准中抽象和接口
允许程序员使应用程序无缝地运行在一个或多个厂商的多种异构设备上,具备很好的移植
性。OpenCL在X86体系基本都有集成,不仅仅是Mac、Ubuntu、Windows、Android等操作系统。

发明内容

[0005] 针对目前宽带数字信道化接收机大多采用DSP以及FPGA平台实现,具有可移植性差,不便于携带,开发成本高等缺点,本发明提出一种基于嵌入式GPU的宽带并行信道化接
收方法,如图1,包括以下步骤:
[0006] 构建OpenCL平台,OpenCL平台由一个宿主机和多个OpenCL设备组成,一个OpenCL设备内包括多个计算单元,一个计算单元包括多个工作组,每个计算单元包括多个处理元
素,每个处理元素为一个工作项;
[0007] 对读入OpenCL平台的宽带信号进行抽取,抽取间隔为信道数,抽取之后原先读入的一维数据形成一个二维矩阵,二维矩阵的行数为信道数;
[0008] 将每一行的数据分配给一个工作组来处理,每个工作组将该工作组内的输入数据m
乘以因子(‑1) ,m为该数据所在的列数;
[0009] 各个信道上的数据与该分支上的多相滤波器系数进行滤波处理;
[0010] 对滤波后的数据乘以因子 其中p为该分支的信道号,D为信道数;
[0011] 对形成的二维矩阵按列进行FFT运算以获得各个信道上输出的数据。
[0012] 进一步的,在读入宽带信号时,对信号采用三级信道化处理,若每次读入2N个信号N
点,经过第一级信道化处理产生16个信道,每个信道包括2/16个信号点;经过第二集信道
N
化处理产生256个信道,每个信道包括2 /256个信号点;经过第三级信道化处理,产生2048
N
个信道,每个信道包括2/2048个信号点。
[0013] 进一步的,对读入的宽带信号进行抽取,将宽带信号x(n)划分成K路信号,每路信号首先通过下变频处理搬移到基带,通过低通滤波器进行低通滤波处理,在通过抽取器进
行抽取处理改变数据速率以最终获得该路信号,抽取的第k路信号表示为:
[0014]
[0015] 其中,yk(m)表示抽取的第k路信号;xp(m)是第k路输入信号中第p个分支进行抽取后的结果,hp(m)是第k路输入信号中第p个多相滤波结构分支滤波器;*表示卷积。
[0016] 进一步的,输入的宽带信号x(n)与分支上的信号xp(m)、以及低通滤波器hLP(m)与分支滤波器hp(m)之间的关系表示为:
[0017] xp(n)=x(nD‑p)
[0018] hp(n)=hLP(nD+p),p=0,1,…D‑1.
[0019] 其中,D表示信道数。
[0020] 进一步的,滤波处理是将分支上的输入信号与该分支上的多相分量进行卷积,每个分支的处理由多个工作组进行处理,每个工作组分配多个工作项,每个工作项执行一个
输出的计算,表示为:
[0021]
[0022] 其中,x[n]表示第n个工作项的输入;h[n‑k]表示第n个工作项的信道;y[n]表示第n个工作项的输出。
[0023] 进一步的,对形成的二维矩阵按列进行FFT运算包括:
[0024] 对第一级信道进行16点FFT运算时,分配128个工作组,每个工作组分配16个工作项;完成运算后进行工作组内同步;
[0025] 对第二级信道进行16点FFT运算时,分配16个工作组,每个工作组分配16个工作项;完成运算后进行工作组内同步;
[0026] 对第三级信道进行8点FFT运算时,分配1个工作组,每个工作组分配16个工作项;完成运算后进行工作组内同步并输出运算结果。
[0027] 进一步的,FFT运算采用蝶形运算,即将输入数据按奇偶分组,并利用旋转因子的可约性与周期性得到FFT运算结果,表示为:
[0028]
[0029]
[0030] 其中,其中,X1(k)、X2(k)为输入序列x(k)进行奇偶分组后N/2点DFT后得到的序列,为旋转因子,N为待处理的信号点。
[0031] 本发明可在智能手机、平板电脑等可移动嵌入式设备上实现,具有可移动、低功耗等特点;另外,本发明利用多相DFT信道化结构中各信道可独立处理的特点,可通过OpenCL
框架进行并行化编程,设置GPU中多个工作组并行地执行,同时处理多个信道的计算任务,
以提高处理效率,并且OpenCL框架能够运行在GPU、CPU、DSP、FPGA以及异构加速处理单元
上,支持Mac、Ubuntu、Windows、Android等操作系统,具备很好的移植性。

附图说明

[0032] 图1为本发明一种基于嵌入式GPU的宽带并行信道化接收方法的流程图;
[0033] 图2为传统的基于低通滤波器组的数字信道化结构;
[0034] 图3为本发明采用的多相DFT信道化结构;
[0035] 图4为本发明采用的OpenCL平台结构示意图;
[0036] 图5为本发明输入信号经过三级信道化处理的变化过程;
[0037] 图6为本发明工作组内16点FFT处理流程;
[0038] 图7为本发明实施例中SDRplay采集到的宽带信号频谱;
[0039] 图8为本发明实施例中信道化处理后第700个信道上信号的频谱;
[0040] 图9为本发明实施例中信道化处理后第1324个信道上信号的频谱。

具体实施方式

[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0042] 本发明提供一种基于嵌入式GPU的宽带并行信道化接收方法,如图1,包括以下步骤:
[0043] 构建OpenCL平台,OpenCL平台由一个宿主机和多个OpenCL设备组成,一个OpenCL设备内包括多个计算单元,一个计算单元包括多个工作组,每个计算单元包括多个处理元
素,每个处理元素为一个工作项;
[0044] 对读入OpenCL平台的宽带信号进行抽取,抽取间隔为信道数,抽取之后原先读入的一维数据形成一个二维矩阵,二维矩阵的行数为信道数;
[0045] 将每一行的数据分配给一个工作组来处理,每个工作组将该工作组内的输入数据m
乘以因子(‑1) ,m为该数据所在的列数;
[0046] 各个信道上的数据与该分支上的多相滤波器系数进行滤波处理;
[0047] 对滤波后的数据乘以因子 其中p为该分支的信道号,D为信道数;
[0048] 对形成的二维矩阵按列进行FFT运算以获得各个信道上输出的数据。
[0049] 实施例1
[0050] 传统的数字信道化结构是基于低通滤波器组的数字信道化结构,如图2,该结构将宽带信号x(n)划分成K路信号,每路信号首先通过下变频处理搬移到基带,然后通过低通滤
波器进行低通滤波处理,最后在通过抽取器进行抽取处理改变数据速率以最终获得该路信
号。基于低通滤波器组的数字信道化结构表示为:
[0051]
[0052] 其中,hLP(n)表示低通滤波器。
[0053] 展开上式可以得到:
[0054]
[0055] 若:
[0056] xp(m‑i)=x(mD‑iD‑p),
[0057] hp(i)=hLP(iD+p)
[0058] 可以得到:
[0059]
[0060] 进一步取
[0061]
[0062] 则
[0063]
[0064]
[0065] 将上述两式代入基于低通滤波器组的数字信道化结构即可得到多相DFT信道化结构的数学表示,表示为:
[0066]
[0067] 其中,xp(m)是输入信号进行抽取后的结果,hp(m)是多相滤波结构分支滤波器,根据上式可的得到如图3所示的多相DFT信道化结构。
[0068] 其中分支上的信号xp(n)与输入信号x(n),以及分支滤波器hp(n)与原型低通滤波器hLP(n)之间的关系为:
[0069] xp(n)=x(nD‑p)
[0070] hp(n)=hLP(nD+p),p=0,1,…D‑1
[0071] 所以,进入分支上的数据与分支滤波器系数是各输入信号和原型低通滤波器系数延时抽取得来的,大大降低了计算量,提高了处理效率,易于工程实现。
[0072] 实施例2
[0073] 如图4,在OpenCL平台模型中,一个OpenCL设备内包含多个计算单元,每个计算单元又包含多个处理元素,这些处理元素也称为工作项,OpenCL的计算任务就是由这些彼此
相互独立的处理元素执行。根据线程的访问权限不同,每个处理元素可访问四种不同权限
的存储空间:私有存储器、局部存储区、常量存储器和全局存储器,他们在程序中的使用方
式很大程度上决定了程序的性能,一般来讲,它们的大小和访问速度是不同的。
[0074] 本实施例设计的宽带数字信道化接收机指标为将带宽为6.144MHz的宽带信号按3KHz进行划分,一共划分为2048个信道。由于信道数较多,如果只采用单级信道化处理,会
需要很大的滤波器阶数,不利于提高计算效率。故本文设计了三级信道化处理,第一级和第
二级产生16个信道,第三级产生8个信道,这样每一级的滤波器系数可大大降低,从而提高
了处理效率。
[0075] 在实际处理中,程序从宽带信号中每次读入2048个信号点,经过第一级信道化处理,产生16个信道,每个信道包含128个信号点。然后对每个信道进行第二级信道化处理,产
生256个信道,每个信道包含8个信号点,最后对每个信道进行第三级信道化处理,产生2048
个信道,每个信道包含1个信号点。输入信号经过三级信道化处理的变化过程如图5所示。当
然不发明每次读入信号点不限于2048个,可以是2的整数幂个信号点,例如4096个。
[0076] 在多相DFT信道化结构中,每一分支上的滤波处理实质上就是该分支上的输入信号与该分支上的多相分量进行卷积计算。卷积的公式为:
[0077]
[0078] 在使用OpenCL平台实现各个分支的滤波时,每一个分支地处理由一个工作组执行,针对本文提出的并行处理算法,设计了16个工作组,每个工作组分配128个工作项,每个
工作项执行一个输出的计算,如工作项0执行:
[0079]
[0080] 工作项1执行:
[0081]
[0082] 以此类推,通过此方法,可使信道化结构中多个分支的滤波处理同时并行地执行,大大降低了滤波的延迟,提高了处理效率。
[0083] 实施例3
[0084] 在多相DFT信道化结构中,需要取各个信道上的信号点进行DFT来获得该信道上对[7]
应信道化处理的结果,本文利用快速傅里叶变换FFT 来代替DFT处理以提高计算效率。
[0085] 将DFT的输入数据按奇偶分组,并利用旋转因子的可约性与周期性可以推导出FFT表达式,表示为:
[0086]
[0087]
[0088] 其中,X1(k)、X2(k)为输入序列x(k)进行奇偶分组后N/2点DFT后得到的序列, 为旋转因子,N为待处理的信号点。通过分解,可以有效减少DFT的运算量。由于N是2的正整数
次幂, 点DFT可以继续进行分解,直到分解为2点的DFT为止,这种运算称为蝶形运算。
[0089] 本发明采用的是三级信道化处理,第一级信道将读入信号划分为16个信道,第二级信道对每个第一级信道的信号点进行进一步划分,第三级信道同理。由于本文第一级和
第二级信道化设计的信道数为16,故前两级信道化需要进行16点FFT处理,16点FFT蝶形图
如图6所示。
[0090] 在OpenCL平台上实现第一级信道化的16点FFT时,首先分配128个工作组,每个工作组分配16个工作项;其次在各个工作组内的16点FFT处理由16个工作项并行地执行。每次
执行完FFT处理后均需要执行工作组内同步操作。
[0091] 对于第二级和第三级信道化的16点FFT和8点FFT运算,分别需要分配16个工作组和1个工作组,每个工作组仍分配16个工作项执行计算任务。
[0092] 工作组同步的目的是让该工作组内的所有工作项都完成各自的计算任务,都到达同步点之后再继续执行下一步的计算任务。以此来保证算法有序的执行。通过OpenCL平台
由多个工作项并行地执行FFT的处理过程,可大大提高FFT地处理效率,从而提高了系统的
实时性。
[0093] 实施例4
[0094] 本文设计的指标为将6.144MHz的宽带信号按3KHz进行划分,共获得2048路信号。在测试中,本文选择短波频段进行测试,短波的频率范围为3~30MHz,满足本文的对带宽的
要求,可通过软件无线电设备SDRplay来获得真实的宽带信号。
[0095] 软件无线电设备SDRplay可以将宽带高频信号整体搬移到零中频,从而获得宽带信号。在本文的测试过程中,首先将SDRplay采集的中心频率设置为10MHz,采集的带宽设置
为6.144MHz,从而可以获得6.928MHz~13.072MHz这段宽带信号,然后SDRplay对该段宽带
信号进行整体下变频处理,将其搬移到‑3.072MHz~3.072MHz。
[0096] 在宽带信号采集过程中,通过信号发生器产生2个调频信号,载波频率分别为9.028MHz、10.9MHz,通过功率放大器以及短波天线将这两个信号发射出去。通过软件无线
电设备SDRplay采集到的宽带信号频谱如图7。
[0097] 图7中可观察到被搬移到零中频的宽带信号,在‑0.972MHz和0.9MHz上有两个幅度较高的信号,这两个信号是9.028MHz和10.9MHz上两个测试信号被搬移到零中频的结果。这
段零中频宽带信号将作为本文设计的信道化接收机的输入信号,按照频率划分信道,‑
0.972MHz和0.9MHz分别为第700个、第1324个信道的起始频率。本文选取的GPU型号为AMD 
Radeon RX 580,在该GPU上实现信道化处理,可得到这两个信道上的信号,其频谱如图8。
[0098] 使用宽带接收机SDRplay采集宽带信号时,将采集时间设置为200ms,其中第一级信道化处理时长32ms,第二级信道化处理时长45ms,第三级信道化处理时长120ms,三级信
道化总处理时长197ms,即本发明进行信道化处理所消耗的时长小于信号本身时长,故可满
足实时性的要求。
[0099] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换
和变型,本发明的范围由所附权利要求及其等同物限定。