CN113300737B - 一种基于gpu并行的直接序列扩频信号检测方法 - Google Patents
一种基于gpu并行的直接序列扩频信号检测方法 Download PDFInfo
- Publication number
- CN113300737B CN113300737B CN202110379795.1A CN202110379795A CN113300737B CN 113300737 B CN113300737 B CN 113300737B CN 202110379795 A CN202110379795 A CN 202110379795A CN 113300737 B CN113300737 B CN 113300737B
- Authority
- CN
- China
- Prior art keywords
- cycle
- signal
- gpu
- spread spectrum
- direct sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/69—Spread spectrum techniques
- H04B1/707—Spread spectrum techniques using direct sequence modulation
- H04B1/7097—Interference-related aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于GPU并行的直接序列扩频信号检测方法,包括:获得原始接收信号的多时延切片向量;利用所述多时延切片向量获得所述原始接收信号的循环统计量计算公式;利用GPU多线程对所述原始接收信号的循环统计量计算公式进行并行计算,获得循环统计量结果;对所述循环统计量结果进行归一化处理,得到归一化的循环统计量;根据所述归一化的循环统计量检测所述接收信号中是否存在直扩信号。该方法利用循环平稳特性检测直扩信号的存在性的同时进行载频估计,并利用GPU多线程同时执行循环统计量计算核函数,具有抗干扰能力强、计算速度快、并行程度高、GPU利用率高的优点。
Description
技术领域
本发明属于通信技术领域,具体涉及一种基于GPU并行的直接序列扩频信号检测方法。
背景技术
直接序列扩频信号(简称直扩信号)具有频谱宽、功率谱密度低、隐蔽性好、保密性好及抗干扰能力强等诸多特性,在卫星通信、航天测控以及军事通信等领域得到广泛应用。由于直扩信号的带宽远大于基带信号带宽,功率谱密度很低,通常隐藏于噪声之中,直扩信号的信噪比很低,使得直扩信号检测一直是信号侦测领域的难点。现有技术中大多利用直扩信号的伪码周期进行直扩信号检测,但在信噪比较低的环境下检测效果不佳,受噪声影响严重;现有技术中基于平方倍频的方法对信噪比的要求较低,但在估计直扩信号的二倍载频时,存在镜像频率这一问题;此外,现有技术中基于循环统计量的方法具有很强的抗干扰能力,但基于循环统计量的方法计算量大,计算复杂度高,直扩信号检测的实时性差。
杨伟超等人提出了一种基于广义二次功率谱的直扩信号检测方法,该方法主要是根据接收信号的广义二次功率谱的相关特征,判断接收信号是否为直扩信号的方法。该方法虽然降低了噪声对检测性能的影响,但仍然存在不足之处:利用伪码周期在二次功率谱呈离散谱线的特性,只能检测出伪码周期,无法检测出直扩信号的载频。杨再秀等人提出了一种两阶段直扩信号捕获方法,该方法主要是基于分段相关和傅里叶变换技术实现,判断接收信号是否为直扩信号的方法。该方法虽然能够在更低的信噪比环境下实现直扩信号的捕获和参数估计,但仍存在不足之处:随着接收信号的采样时长越长,在第一阶段中信号相关值的计算量将会越大,信号相关值的计算耗时越长会导致检测的实时性越差。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于GPU并行的直接序列扩频信号检测方法。本发明要解决的技术问题通过以下技术方案实现:
本发明的一个方面提供了一种基于GPU并行的直接序列扩频信号检测方法,包括:
S1:获得原始接收信号的多时延切片向量;
S2:利用所述多时延切片向量获得所述原始接收信号的循环统计量计算公式;
S3:利用GPU多线程对所述原始接收信号的循环统计量计算公式进行并行计算,获得循环统计量结果;
S4:对所述循环统计量结果进行归一化处理,得到归一化的循环统计量;
S5:根据所述归一化的循环统计量检测所述接收信号中是否存在直扩信号。
在本发明的一个实施例中,所述S1包括:
S11:获得所述原始接收信号x(t)的二阶时变相关函数:
Rx(t;τ)=E{x(t)x(t+τ)}
其中,t表示时间,τ表示时延,E{·}表示取均值操作;
S12:根据所述二阶时变相关函数获得所述原始接收信号x(t)的循环自相关函数的一致估计式:
其中,α表示循环频率,T表示原始接收信号x(t)的截取长度,x(t+τ)
表示时延为τ的时延信号;
S13:利用所述循环自相关函数的一致估计式构造N个时延切片,并将N个时延切片拼接成多时延切片向量:
在本发明的一个实施例中,所述S2包括:
利用所述多时延切片向量构造循环统计量公式:
在本发明的一个实施例中,所述S3包括:
S31:对所述原始接收信号x(t)的末尾进行补零操作,获得补零后信号:
x′(t)=[x(1),x(2),...,x(T),0,0,...,0,0],
其中,补零的数量为N个时延值中的最大时延值τN;
S32:利用CUDA架构的cudaMemcpy函数将补零后信号x′(t)存入GPU全局内存中,共占用T+τN个内存单元;
S33:设备端接收到原始接收信号后,利用GPU多线程对所述循环统计量ΥR进行并行拆分计算,求得最终的循环统计量。
在本发明的一个实施例中,所述S33包括:
S331:定义核函数Dot_tao,在多线程运行Dot_tao时,每个线程中仅计算接收信号第t位元素x(t)与N个时延信号的第t位元素x(t+τi)相乘,计算公式为:
x(t)x(t+τi) i∈[1,N];
S332:将x(t)与N个x(t+τi)相乘,T个线程同时计算得到N组长为T的x(t)x(t+τi)相乘结果,命名为Dot_ans;
S333:在GPU全局内存中开辟长度为N*T个第一内存空间,并将所述第一内存空间的地址头指针命名为D1,每个线程根据每次运算时i和t的取值,将所述相乘结果对应保存至D1+i*N+t处;
S334:利用CUDA架构中的cufftExecC2C函数,对Dot_ans中的相乘结果同时进行快速傅里叶变换,得到N组长度为T的FFT结果并命名为FFT_ans,并将FFT_ans保存至内存D1至D1+N*T的GPU全局内存中;
S335:定义核函数Sum_tao,在多线程运行Sum_tao时,每个线程将FFT_ans中N组结果的所有第t位元素FFT_ans[t+i*T]进行累加并乘以求得最终的循环统计量,其中,每个线程中Add_tao计算公式为:
S336:在GPU全局内存中开辟长度为T个第二内存空间,并将所述第二内存空间的地址头指针命名为Rx1,每个线程根据每次运算时t的取值,将结果对应保存至Rx1+t处。
在本发明的一个实施例中,所述S4包括:
对所述循环统计量结果ΥR中的数据进行排序,排序后获取最大值ΥR MAX,并对ΥR中的所有元素除以ΥR MAX得到归一化的循环统计量ΥR′:
在本发明的一个实施例中,所述S5包括:
S51:判断所述归一化的循环统计量ΥR′中零循环频率的幅值是否为1,若否,则判定所述原始接收信号中不存在直扩信号;若是,则判定所述原始接收信号中存在直扩信号,并进入S52;
S52:获取所述归一化的循环统计量ΥR′中次大谱线对应的循环频率α,并计算载频f0的粗测结果:
α=±(2f0-p1fs)
其中,α为次大谱线对应的循环频率,f0表示信号载频,fs表示信号的采样频率,p1表示一个固定整数。
本发明的另一方面提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行上述实施例中任一项所述的基于GPU并行的直接序列扩频信号检测方法的步骤。
本发明的另一方面提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上述实施例中任一项所述基于GPU并行的直接序列扩频信号检测方法的步骤。
与现有技术相比,本发明的有益效果在于:
1、本发明基于GPU并行的直接序列扩频信号检测方法在无线通信中,利用循环平稳特性检测直扩信号的存在性的同时进行载频估计,克服了现有技术中抗干扰能力差、不能进行载频估计、工程可实现性弱的问题,使得本发明的直接序列扩频信号检测方法具有抗干扰能力强、可进行载频估计、工程应用价值高的优点。
2、本发明的直接序列扩频信号检测方法利用GPU多线程同时执行循环统计量计算核函数,克服了现有技术中求循环统计量耗时长的问题,使得本发明的直接序列扩频信号检测方法具有计算速度快、并行程度高、GPU利用率高的优点。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的一种基于GPU并行的直接序列扩频信号检测方法的流程图;
图2是接收信号与时延信号的GPU全局内存存储示意图;
图3是补零信号GPU全局内存存储示意图;
图4是点乘结果GPU全局内存存储示意图;
图5是利用本发明实施例的方法获得的不同SNR下直扩信号的循环统计量ΥR的仿真结果。
具体实施方式
为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种基于GPU并行的直接序列扩频信号检测方法进行详细说明。
有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
请参见图1,图1是本发明实施例提供的一种基于GPU并行的直接序列扩频信号检测方法的流程图。该方法包括以下步骤:
S1:获得原始接收信号的多时延切片向量。
本实施例的原始接收信号为航天测控信号,航天测控中的直接序列扩频信号,是人为调制产生的信号,因而均具有循环平稳特性。此外,直扩信号在接收端的信噪比较低。针对这一特点,在航天测控的直扩信号检测方面,本实施例拟采用基于循环平稳理论的信号检测方法。
具体地,设接收端接收到的原始接收信号x(t)中包含有直扩信号,则x(t)为循环平稳过程,其二阶时变相关函数为:
Rx(t;τ)=E{x(t)x(t+τ)}
其中,Rx(t;τ)表示信号x(t)的二阶时变相关函数,τ表示时延,E{·}表示取均值操作。
对上式的二阶时变相关函数进行傅里叶级数展开为:
其中,t表示时间,α表示循环频率,A表示所有循环频率的集合,τ表示时延,e(·)表示以自然常数e为底的指数操作,j表示虚数单位符号,上式中傅里叶系数Rx(α;τ)即原始接收信号的循环自相关函数。
获得原始接收信号x(t)的循环自相关函数的一致估计式:
其中,表示接收信号x(t)在时延为τ时的循环自相关函数的一致估计式,α表示循环频率,τ表示时延,T表示接收信号的截取长度,x(t)表示接收信号,x(t)的长度为T,x(t+τ)表示时延为τ的时延信号,x(t+τ)的长度为T。在本实施例中,t选取1-T的连续整数。
利用循环自相关函数的一致估计式,构造N个时延切片,根据下式将N个时延切片拼接成一个多时延切片向量:
这里所述的N个时延切片是指具有不同时延的N个信号切片,通过不同延迟下的循环相关函数一致估计式获得。进一步地,N个时延切片中的时延值从小到大排序,即τ1<τ2<...<τi<...<τN。
S2:利用所述多时延切片向量获得所述原始接收信号的循环统计量计算公式;
具体地,利用所述多时延切片向量构造循环统计量:
将上式展开得到原始接收信号x(t)的循环统计量计算公式:
其中,,FFT(·)表示快速傅里叶变换过程。x(t)与x(t+τi)的长度均为T,因此循环统计量ΥR的长度为T。
S3:利用GPU多线程对所述原始接收信号的循环统计量计算公式进行并行计算,获得循环统计量结果。
在本实施例中,将循环统计量的计算任务尽可能地拆分为可并行运算的子任务。具体地,根据步骤S2得到循环统计量计算公式,在计算机内存中(Host端内存)获取到原始接收信号x(t)和N个时延信号x(t+τi),通常情况下的GPU并行代码会直接使用CUDA(Compute Unified Device Architecturem,统一计算设备架构)中的cudaMemcpy函数,将Host端内存中的数据直接拷贝至GPU内存(Device端内存)中。请参见图2,图2是接收信号与时延信号的GPU全局内存存储示意图,原始接收信号x(t)和N个时延切片x(t+τi)共占用(N+1)*T个内存单元:
在本实施例中,利用多时延切片向量中的时延切片x(t+τi)与原始接收信号x(t)高度重合的特性,对原始接收信号x(t)的末尾进行补零操作,补零后信号记为x′(t):
x′(t)=[x(1),x(2),...,x(T),0,0,...,0,0]
补零的数量为多时延切片向量中N个时延值中的最大时延值τN,此时补零信号x′(t)长度为T+τN。由于时延的最大长度为T,因此补零信号x′(t)的最大长度为2T。
利用CUDA架构的cudaMemcpy函数将补零后信号x′(t)存入GPU全局内存中,共占用T+τN个内存单元。请参见图3,图3是补零信号GPU全局内存存储示意图。在本实施例中,补零后信号x′(t)中第一位数据x(1)在GPU全局内存中的内存地址命名为P1,即原始接收信号x(t)的地址头指针,通过对指针P1偏移τi个地址,并依次读取T个内存单元中的数据,即可实现读取时延值为τi的时延切片。
与直接存储N个时延信号相比,由于T>>τN,本实施例方法的内存占用近似为直接存储方式内存占用的1/(N+1);该存储方式的优点为GPU内存占用少,且内存占用不会随着切片数的增多而线性增多,补零后信号x′(t)最多消耗2T个内存单元,极大地降低了GPU内存占用。
Device端(设备端)接收到原始接收信号后,接下来对循环统计量的计算进行并行设计,根据步骤S2得到循环统计量ΥR的计算公式可知,循环统计量ΥR的长度为T,循环统计量ΥR中的第t位元素表示为ΥR[t],t的取值为[0,T]的连续整数:
利用循环统计量ΥR中每个ΥR[t]的计算具有相互独立性,以及计算每个ΥR[t]时,x(t)与多个x(t+τi)点乘时对应位置元素相乘的相互独立性,该方法将循环统计量ΥR的计算进行可并行化拆分。
具体地,首先,定义一个核函数并命名为Dot_tao,在多线程运行Dot_tao时,每个线程中仅计算接收信号第t位元素x(t)与N个时延信号的第t位元素x(t+τi)相乘,即每个线程中的Dot_tao计算如下式:
x(t)x(t+τi) i∈[1,N]。
接着,利用CUDA架构为核函数Dot_tao分配线程,根据循环统计量ΥR的长度T,共分配T个GPU线程,为了最大化GPU利用率,BlockSize(线程块大小)的大小恒定设置为1024,利用下式设置GridSize(线程网格大小)的大小:
GridSize=(T+1024-1)÷1024
在每个线程运行Dot_tao时,每个线程会获取到所在的线程块编号(BlockIdx)以及线程块内的线程编号(ThreadIdx),利用下式为每个线程标记其独有的全局线程编号ThreadId:
ThreadId=BlockIdx*BlockSize+ThreadIdx
在每个线程运行Dot_tao时,首先判断该线程的ThreadId是否在计算范围T内,若ThreadId>T,则该线程停止运行;若ThreadId<T,则在地址为P1+ThreadId的内存中获取数据x(t),在地址为P1+ThreadId+τi的内存中获取数据x(t+τi),计算x(t)与N个x(t+τi)相乘的结果。
T个线程同时计算得到N组长为T的x(t)x(t+τi)相乘结果,命名为Dot_ans。请参见图4,图4是点乘结果GPU全局内存存储示意图。在本实施例中,为了保存相乘结果Dot_ans,在GPU全局内存中开辟长度为N*T个第一内存空间,并将该第一内存空间的地址头指针命名为D1,每个线程根据每次运算时i和t的取值,将结果对应的保存至D1+i*N+t处。
随后,利用CUDA架构中的cufftExecC2C函数,对Dot_ans中N组长度为T的相乘结果同时进行快速傅里叶变换(Fast Fourier Transform,FFT),得到N组长度为T的FFT结果并命名为FFT_ans,并将FFT_ans保存至内存D1至D1+N*T的GPU全局内存中。
接着,定义一个核函数并命名为Sum_tao,在多线程运行Sum_tao时,每个线程将FFT_ans中N组结果的所有第t位元素FFT_ans[t+i*T]进行累加并乘以即每个线程中的Sum_tao计算如下式:
接着,利用CUDA架构为核函数Sum_tao分配线程,共分配T个GPU线程,为了最大化GPU利用率,BlockSize的大小恒定设置为1024,利用下式设置GridSize的大小:
GridSize=(T+1024-1)÷1024
在每个线程运行Sum_tao时,获取每个线程的BlockIdx和ThreadIdx,利用下式为每个线程标记其独有的全局线程编号ThreadId:
ThreadId=BlockIdx*BlockSize+ThreadIdx
在每个线程运行Sum_tao时,首先判断该线程的ThreadId是否在计算范围T内,若ThreadId>T,则该线程停止运行;若ThreadId<T,则在地址为D1+ThreadId+i*T的内存中获取数据FFT_ans[j+i*T],计算N个FFT_ans[j+i*T]的和并乘以求得最终的循环统计量。T个线程同时运行得到长为T的循环统计量ΥR,为了保存向量ΥR,在GPU全局内存中开辟长度为T个第二内存空间,并将所述第二内存空间的地址头指针命名为Rx1,每个线程根据每次运算时t的取值,将结果对应保存至Rx1+t处。
通常情况下,会将上述核函数Dot_tao和Sum_tao内的循环做进一步的并行化拆分,总线程占用将高达T*N个,实际应用中T的具体数值为百万数量级,随着切片数量的增多,核函数的线程占用将会线性增长,而本发明实施例的核函数Dot_tao、Sum_tao的线程占用量恒定为T,不会随着切片数的增多而线性增长,且拆分后各线程的计算量小且计算复杂度低,单个线程的性能不会受影响,整体耗时满足实时性要求。
S4:对所述循环统计量结果进行归一化处理,得到归一化的循环统计量。
直扩信号的循环统计量具有一系列离散谱线,而高斯白噪声的循环统计量无离散谱线出现。因此,当循环检验统计量结果中有离散的谱线出现时,表明接收到的信号包含有直扩信号。其中,直扩信号在零循环频率处取到最大幅值。为便于实现,可对循环检验统计量ΥR进行归一化处理,如果归一化后的ΥR在零循环频率处幅值为1,则可判定接收信号中包含直扩信号。
具体地,由步骤S3中得到循环统计量的结果ΥR,ΥR存储在GPU的全局内存中,利用CUDA架构中的sort_by_key函数,对ΥR中的数据进行排序,排序后获取ΥR的最大值ΥR MAX,并对向量ΥR中的所有元素除以ΥR MAX得到归一化的循环统计量ΥR′:
S5:根据所述归一化的循环统计量检测所述接收信号中是否存在直扩信号。
具体地,步骤S5包括:
S51:由步骤S4中得到归一化的循环统计计量ΥR′,若ΥR′中零循环频率的幅值不为1,即ΥR′向量中第一个值不为1,则判定所述原始接收信号中不存在直扩信号,结束流程;反之,则判定所述原始接收信号中存在直扩信号,并进入步骤S52;
S52:直扩信号的载频粗测。
获取步骤4中次大谱线对应的循环频率,即ΥR′向量中次大值所在位置,记为α,并根据下式给出载频f0的粗测结果:
其中,α为次大谱线对应的循环频率,f0表示信号载频,fs表示信号的采样频率,p1表示一个固定整数。
具体地,在实际计算过程中,可以根据信号载频的取值范围求出p1的取值,再利用p1和检测出次大谱线对应的循环频率α,获得信号载频f0更精确的范围。
以下通过仿真实验说明本发明实施例基于GPU并行的直接序列扩频信号检测方法的效果。
如果归一化后的循环统计量ΥR在零循环频率处幅值为1,则可判定接收信号中包含直扩信号。在完成了直扩信号的存在性检测后,根据次大谱线对应的循环频率,即可完成对测控信号载频的粗测,其关系式为:
其中,p1为整数。对于本实施例的仿真条件,fs=250MHz,信号载频f0=2.2-2.3GHz,可求得此情况下p1的取值为18。因而可以分析得到,2倍载频对应的循环频率为α=±(2f0-p1fs)=±100MHz。
请参见图5,图5是利用本发明实施例的方法获得的不同SNR下直扩信号的循环统计量ΥR的仿真结果。直扩信号参数为:采样频率fs=250MHz,信号时间为30ms,信号载频f0=2.2GHz,伪码速率fc=10MHz。其中横坐标为循环频率,纵坐标为循环统计量ΥR。具体地,在图5中,(a)为没有背景噪声的情况下,直扩信号的循环统计量ΥR与循环频率的对应关系。由图(a)可知,直扩信号的循环统计量ΥR具有一系列离散谱线,其中能量最强的谱线出现在零循环频率处,归一化处理后,零循环频率处的循环统计量值为1;次大谱线则出现在2倍载频对应的循环频率处,这与理论分析结果是一致的。图(f)为接收信号不含直扩信号,只有高斯白噪声情况下的循环统计量ΥR与循环频率的对应关系。由该图(f)可知,高斯白噪声的循环统计量ΥR无离散谱线出现,这是因为高斯白噪声不具有循环平稳性。因此,只需要根据循环统计量ΥR结果中是否有离散的谱线出现,即可判断接收到信号是否含有直扩信号。
另外,图5中(b)-(e)分别给出了在信噪比(SNR)分别为-20dB,-25dB,-26dB以及-27dB时,归一化循环统计量ΥR的仿真结果。由这几幅图可知,当SNR低至-26dB时,可实现测控信号的检测,并可以实现载频的初始估计;而在SNR低至-27dB时,在零循环频率处仍有明显的离散谱线,但其余的谱线均被噪声淹没,此时可检测到测控信号的存在。
本实施例基于GPU并行的直接序列扩频信号检测方法在无线通信中,利用循环平稳特性检测直扩信号的存在性的同时进行载频估计,克服了现有技术中抗干扰能力差、不能进行载频估计、工程可实现性弱的问题,使得本发明的直接序列扩频信号检测方法具有抗干扰能力强、可进行载频估计、工程应用价值高的优点。该直接序列扩频信号检测方法利用GPU多线程同时执行循环统计量计算核函数,克服了现有技术中求循环统计量耗时长的问题,使得本发明的直接序列扩频信号检测方法具有计算速度快、并行程度高、GPU利用率高的优点。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行上述实施例中所述直接序列扩频信号检测方法的方法步骤。本发明的再一方面提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上述实施例所述直接序列扩频信号检测方法的步骤。具体地,上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种基于GPU并行的直接序列扩频信号检测方法,其特征在于,包括:
S1:获得原始接收信号的多时延切片向量;
S2:利用所述多时延切片向量获得所述原始接收信号的循环统计量计算公式;
S3:利用GPU多线程对所述原始接收信号的循环统计量计算公式进行并行计算,获得循环统计量结果;
S4:对所述循环统计量结果进行归一化处理,得到归一化的循环统计量;
S5:根据所述归一化的循环统计量检测所述接收信号中是否存在直扩信号;
所述S1包括:
S11:获得所述原始接收信号x(t)的二阶时变相关函数:
Rx(t;τ)=E{x(t)x(t+τ)}
其中,t表示时间,τ表示时延,E{·}表示取均值操作;
S12:根据所述二阶时变相关函数获得所述原始接收信号x(t)的循环自相关函数的一致估计式:
其中,α表示循环频率,T表示原始接收信号x(t)的截取长度,x(t+τ)表示时延为τ的时延信号;
S13:利用所述循环自相关函数的一致估计式构造N个时延切片,并将N个时延切片拼接成多时延切片向量:
所述S2包括:
利用所述多时延切片向量构造循环统计量公式:
所述S3包括:
S31:对所述原始接收信号x(t)的末尾进行补零操作,获得补零后信号:
x′(t)=[x(1),x(2),...,x(T),0,0,...,0,0],
其中,补零的数量为N个时延值中的最大时延值τN;
S32:利用CUDA架构的cudaMemcpy函数将补零后信号x′(t)存入GPU全局内存中,共占用T+τN个内存单元;
S33:设备端接收到原始接收信号后,利用GPU多线程对所述循环统计量γR进行并行拆分计算,求得最终的循环统计量。
2.根据权利要求1所述的基于GPU并行的直接序列扩频信号检测方法,其特征在于,所述S33包括:
S331:定义核函数Dot_tao,在多线程运行Dot_tao时,每个线程中仅计算接收信号第t位元素x(t)与N个时延信号的第t位元素x(t+τi)相乘,计算公式为:
x(t)x(t+τi)i∈[1,N];
S332:将x(t)与N个x(t+τi)相乘,T个线程同时计算得到N组长为T的x(t)x(t+τi)相乘结果,命名为Dot_ans;
S333:在GPU全局内存中开辟长度为N*T个第一内存空间,并将所述第一内存空间的地址头指针命名为D1,每个线程根据每次运算时i和t的取值,将所述相乘结果对应保存至D1+i*N+t处;
S334:利用CUDA架构中的cufftExecC2C函数,对Dot_ans中的相乘结果同时进行快速傅里叶变换,得到N组长度为T的FFT结果并命名为FFT_ans,并将FFT_ans保存至内存D1至D1+N*T的GPU全局内存中;
S335:定义核函数Sum_tao,在多线程运行Sum_tao时,每个线程将FFT_ans中N组结果的所有第t位元素FFT_ans[t+i*T]进行累加并乘以求得最终的循环统计量,其中,每个线程中Add_tao计算公式为:
S336:在GPU全局内存中开辟长度为T个第二内存空间,并将所述第二内存空间的地址头指针命名为Rx1,每个线程根据每次运算时t的取值,将结果对应保存至Rx1+t处。
4.根据权利要求3所述的基于GPU并行的直接序列扩频信号检测方法,其特征在于,所述S5包括:
S51:判断所述归一化的循环统计量γR′中零循环频率的幅值是否为1,若否,则判定所述原始接收信号中不存在直扩信号;若是,则判定所述原始接收信号中存在直扩信号,并进入S52;
S52:获取所述归一化的循环统计量γR′中次大谱线对应的循环频率α,并计算载频f0的粗测结果:
α=±(2f0-p1fs)
其中,α为次大谱线对应的循环频率,f0表示信号载频,fs表示信号的采样频率,p1表示一个固定整数。
5.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1至4中任一项所述的基于GPU并行的直接序列扩频信号检测方法的步骤。
6.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至4任一项所述基于GPU并行的直接序列扩频信号检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110379795.1A CN113300737B (zh) | 2021-04-08 | 2021-04-08 | 一种基于gpu并行的直接序列扩频信号检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110379795.1A CN113300737B (zh) | 2021-04-08 | 2021-04-08 | 一种基于gpu并行的直接序列扩频信号检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113300737A CN113300737A (zh) | 2021-08-24 |
CN113300737B true CN113300737B (zh) | 2022-04-15 |
Family
ID=77319470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110379795.1A Active CN113300737B (zh) | 2021-04-08 | 2021-04-08 | 一种基于gpu并行的直接序列扩频信号检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113300737B (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577229B (zh) * | 2015-12-07 | 2018-04-13 | 中国电子科技集团公司第十研究所 | Cpu辅助gpu实现扩频信号快速捕获方法 |
CN106501822B (zh) * | 2016-11-16 | 2018-11-02 | 中国人民解放军国防科学技术大学 | 一种基于gpu的长码部分相关全局直接捕获方法 |
-
2021
- 2021-04-08 CN CN202110379795.1A patent/CN113300737B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113300737A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Estimating wind speed probability distribution by diffusion-based kernel density method | |
Altmann et al. | Recurrence time analysis, long-term correlations, and extreme events | |
Voltz et al. | Maximum likelihood time of arrival estimation for real-time physical location tracking of 802.11 a/g mobile stations in indoor environments | |
CN106533577B (zh) | 一种基于能量检测的非高斯噪声抑制方法 | |
Smith | Cluster ensemble Kalman filter | |
CN111781574B (zh) | 基于子空间正交投影的捷变频雷达目标参数估计方法 | |
CN110166080A (zh) | 相干多载波捕获方法及装置 | |
CN109061693A (zh) | 一种适用于p码捕获的改进pmf-fft方法 | |
CN113300737B (zh) | 一种基于gpu并行的直接序列扩频信号检测方法 | |
CN112949846A (zh) | 一种适用于直扩系统下的生成式欺骗干扰信号构造方法 | |
Lii et al. | Estimation for almost periodic processes | |
Behar et al. | Adaptive CFAR PI processor for radar target detection in pulse jamming | |
CN104202209B (zh) | 一种基于cuda的多体制信号频率快速捕获实现方法 | |
CN115021845B (zh) | 一种频谱感知方法、系统、介质、设备及终端 | |
CN108089212A (zh) | 基于互相关函数拆分重构的boc信号捕获方法及系统 | |
CN107171752A (zh) | 一种认知无线电的频谱感知方法及系统 | |
Guner et al. | Implementation aspects of Wigner-Hough Transform based detectors for LFMCW signals | |
CN116319190A (zh) | 基于gan的大规模mimo系统信道估计方法、装置、设备及介质 | |
CN114679356A (zh) | 一种不依赖于似然函数的信道全维参数提取方法 | |
Kolchev et al. | Use of hazard function for signal detection on ionograms | |
Cai et al. | A reassigned bilinear transformation and Gaussian kernel function-based approach for detecting weak targets in sea clutter | |
Ajorloo et al. | An approach to power allocation in MIMO radar with sparse modeling for coherence minimization | |
CN106054132B (zh) | 一种基于有效子带选择和检测统计量加权的ism方法 | |
Baudiquez et al. | The statistics of the cross-spectrum and the spectrum average: Generalization to multiple instruments | |
CN116347329B (zh) | 定位信号捕获方法及装置、计算设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |