发明名称 基于GPU架构的分段归一化最小均方误差杂波对消方法
摘要 本发明公开了一种基于GPU架构的分段归一化最小均方误差杂波对消方法,主要解决传统基于CPU架构的自适应杂波对消处理难于实现并行和实时处理的问题。其实现步骤为:在CPU主机端对杂波对消的参数进行初始化,将杂波对消的数据分成两段,分别传输至不同的图形处理器GPU显存中;两块GPU对归一化最小均方误差NLMS杂波对消处理涉及到的所有运算进行并行加速,分别得到各自进行杂波对消后的数据;并把两段杂波对消后的数据传输至内存中,CPU将两段对消后的数据拼接成一段完整的数据继续后续的处理。本发明具有硬件平台搭建简单、稳定性好、运算速度快、精度高、数据扩展性强、易于开发的优点,可用于实际工程中杂波对消实时处理。
申请公布号 CN103226648B 申请公布日期 2016.01.20
申请号 CN201310090569.7 申请日期 2013.03.20
申请人 西安电子科技大学 发明人 王俊;武勇;汤涛;夏斌
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 一种基于GPU架构的分段归一化最小均方误差杂波对消方法,其特征在于包括如下步骤:(1)在CPU主机端对归一化最小均方误差NLMS滤波器的参数进行初始化:(1a)将雷达目标信号、杂波信号和噪声信号作为归一化最小均方误差NLMS滤波器主通道的接收信号sig;将杂波信号和噪声信号作为归一化最小均方误差NLMS滤波器辅助通道的接收信号ref,这两种信号sig、ref的数据长度S根据接收信号的采样率设定,并根据杂波强度设定杂波对消阶数的值C;(1b)把归一化最小均方误差NLMS滤波器主通道信号sig分为两段,记为sig1、sig2,把辅助通道信号ref分为两段,记为ref1、ref2;sig1、sig2、ref1、ref2数据长度均为S1,sig1和sig2及ref1和ref2重叠的数据长度均为L;(1c)在CPU主机端分配杂波对消所需的内存、显存资源;(1d)设归一化最小均方误差NLMS杂波对消分段后,杂波对消权向量w1<sub>C×1</sub>、w2<sub>C×1</sub>的初始值均为[0 0 … 0 0]<sub>C×1</sub>;(1e)设杂波对消初始时刻迭代初值l<sub>1</sub>、l<sub>2</sub>均为0;(1f)设归一化最小均方误差NLMS杂波对消分两段后,误差信号初始值分别为:e1=sig1、e2=sig2;(1g)在CPU主机端,把主通道信号sig、辅助通道信号ref的数据加载到CPU内存中;(2)在CPU主机端上创建两个杂波对消的工作线程;(3)选择两块能支持计算统一设备架构CUDA的图形处理器GPU,并将两块图形处理器GPU与两个工作线程进行连接;(4)分别确定调用一次图形处理器GPU内核函数所能计算出的数据点数M,调用GPU内核函数的次数N及分段后的数据长度S1;(5)每个CPU工作线程在图形处理器GPU设备端加载各自分段后的主通道、辅助通道信号数据,分别存入sig1、ref1、sig2、ref2中,即:sig1=sig[1 2 … S1‑1 S1]<sub>S1×1</sub>,ref1=ref[1 2 … S1‑1 S1]<sub>S1×1</sub>,sig2=sig[S1‑L+1 S1‑L+2 … S‑1 S]<sub>S1×1</sub>,ref2=ref[S1‑L+1 S1‑L+2 … S‑1 S]<sub>S1×1</sub>;(6)在两块图形处理器GPU设备端上,分别调用内核函数进行归一化最小均方误差NLMS杂波对消处理:(6a)设两个内核函数的线程格grid均为(1,1),线程块block均为(C,1),其中(1,1)表示内核函数由一个线程块block组成,(C,1)表示线程块block由C个图形处理器GPU线程组成;(6b)在两块图形处理器GPU设备端上,分别设置各自迭代初值为:k<sub>1</sub>=0、k<sub>2</sub>=0;(6c)在第一块图形处理器GPU设备端上,获取k<sub>1</sub>+l<sub>1</sub>×M时刻的主通道信号<img file="FDA0000800462060000021.GIF" wi="286" he="106" />和辅助通道参考信号<img file="FDA0000800462060000022.GIF" wi="115" he="90" />(6d)在第二块图形处理器GPU设备端上,获取k<sub>2</sub>+l<sub>2</sub>×M时刻的主通道信号<img file="FDA0000800462060000023.GIF" wi="316" he="107" />和辅助通道参考信号<img file="FDA0000800462060000024.GIF" wi="129" he="92" />(6e)在两块图形处理器GPU设备端上,利用k<sub>1</sub>+l<sub>1</sub>×M时刻和k<sub>2</sub>+l<sub>2</sub>×M时刻的主通道信号<img file="FDA0000800462060000025.GIF" wi="640" he="108" />和辅助通道参考信号<img file="FDA0000800462060000026.GIF" wi="275" he="88" />分别计算这两个时刻的误差信号<img file="FDA0000800462060000027.GIF" wi="529" he="102" />(6f)在两块图形处理器GPU设备端上,利用k<sub>1</sub>+l<sub>1</sub>×M时刻和k<sub>2</sub>+l<sub>2</sub>×M时刻的辅助通道参考信号<img file="FDA0000800462060000028.GIF" wi="272" he="93" />分别计算步长因子μ1、μ2;(6g)在两块图形处理器GPU设备端上,利用k<sub>1</sub>+l<sub>1</sub>×M时刻和k<sub>2</sub>+l<sub>2</sub>×M时刻的误差信号<img file="FDA0000800462060000031.GIF" wi="522" he="102" />和步长因子μ1、μ2,分别更新杂波对消权向量w1<sub>C×1</sub>、w2<sub>C×1</sub>;(6h)在两块图形处理器GPU设备端上,分别更新各自的迭代值:k<sub>1</sub>=k<sub>1</sub>+1,k<sub>2</sub>=k<sub>2</sub>+1;(7)重复迭代步骤(6c)~步骤(6h)共M次,在两块GPU设备端上,分别得到M点杂波对消后的误差信号数据,并存入e1、e2中的对应位置;(8)在CPU主机端两个工作线程中分别更新各自的迭代值:l<sub>1</sub>=l<sub>1</sub>+1、l<sub>2</sub>=l<sub>2</sub>+1;(9)重复迭代步骤(6)~步骤(8)共N次,在每个GPU设备端上,得到进行杂波对消后的误差信号e1、e2;(10)将e1、e2的数据传输至CPU主机端内存中;(11)设置CPU与GPU同步,等待两块GPU显存中的数据全部传输完成后,在CPU主机端上,将误差信号e1、e2拼接成长度为S的误差信号e并保存,保存后释放进行杂波对消所分配的内存、显存资源。
地址 710071 陕西省西安市太白南路2号