专利名称:基于fpga的pc机虚拟信号处理方法
技术领域:
本发明涉及一种信号处理方法,尤其涉及一种基于FPGA的PC机虚拟信号处理方 法,属于雷达信号处理领域。
背景技术:
在测波雷达系统中,雷达信号处理采用视频直接采样技术体制,视频信号被AD采 样后送入FPGA进行预处理,然后通过千兆网接口输入PC机进行相关信号处理。这种方法 具有硬件设计简单,系统灵活性高的优点,但同时也给PC机的数字信号处理能力带来了一 定难度的挑战。测波雷达工作频段为X波段,与海面船舶常用的导航雷达频率几乎相同,容 易受到同频信号干扰,架设于海岸时又容易受到地物杂波干扰,加之发射需使用短脉冲及 高重复频率的要求导致信号采样频率的提高以及信号处理内容的大幅增加,因此,为给浪 流分析系统提供高分辨率的数据信号,除需提高硬件电路的设计要求外,对雷达的软件信 号处理也提出了较高的要求。对于雷达信号处理系统,传统的设计方法为由FPGA完成数据强度修正、数据抽 取、FIR滤波、相干积累、抗同频干扰、抗地物干扰等所有信号处理工作,将处理结果通过 PCI或其它接口送PC机进行回波显示。此方案虽然已大量运用于成熟的雷达设备,但对 FPGA的资源要求较多,硬件的规模和调试均存在挑战。
发明内容
本发明为简化测波雷达系统的硬件设计,而提出一种简便、高效的基于FPGA的PC 机虚拟雷达信号处理方法。该方法包括如下步骤(一 )信号预处理a)FPGA采集雷达的方位、舰首和触发信号,解析雷达的工作状态;b)FPGA在触发信号的同步下采集雷达的视频信号,开辟RAM存储空间,形成当前 帧数据流;c) FPGA根据视频信号分辨率要求进行数字抽取,并构建低通滤波器进行FIR滤 波;(二)后级信号处理d)FPGA通过千兆以太网将预处理后的视频信号送入PC机;e)PC机对接收信号进行强度修正;f)PC机对修正后的信号进行方位和距离的相干积累处理;g)PC机对相干积累后的信号进行抗地物干扰处理;h)PC机对抗地物干扰处理后的信号进行同频干扰抑制;(三)信号处理完成后由终端进行海态回波显示。本发明是以FPGA为主体,以PC机为数据处理平台,尽量简化了 FPGA的工作内容,
3充分发挥了 PC机的运算能力,使整个信号处理系统在满足指标要求的前提下,既能合理降 低FPGA硬件资源规模,又能有效提高PC机的运算效率,从而大大简化了雷达信号处理的实 现难度,具有广阔的应用前景。
图1为本发明的方法流程示意图。
具体实施例方式本发明的方法流程如图1所示,包括如下技术步骤(一 )信号预处理a)通过VHDL语言编程,FPGA采集雷达的方位、舰首和触发信号,解析雷达的工作 状态;b)FPGA在触发信号的同步下采集雷达的视频信号,开辟RAM存储空间,形成当前 帧数据流;c) FPGA根据视频信号分辨率要求进行数字抽取,并构建低通滤波器进行FIR滤 波;(二)PC机通过C++编程,实现后级信号处理d)预处理后的视频信号经FPGA内嵌的千兆网接口送入PC机;e) PC机对接收信号进行强度修正;f)PC机对修正后的信号进行方位和距离的相干积累处理;g)PC机对相干积累后的信号进行抗地物干扰处理;h)PC机对抗地物干扰处理后的信号进行同频干扰抑制;(三)信号处理完成后由终端进行海态回波显示。本方法实施中的几个关键点介绍如下1.数字滤波器仿真设计用MATLAB软件的FDAT00L工具箱,仿真设计所需的各级FIR滤波器,每一级FIR 抽取滤波的输出采样率要大于FIR滤波器的截止频率的两倍,这样才能保证整个数字抽取 滤波系统不会发生频率混叠。仿真完成后,用MATLAB生成各级FIR滤波器系数文件供后继 工作使用。实施例中我们仿真设计通带为10MHz、阻带为15MHz的64阶FIR滤波器。2. FPGA的数字抽取滤波实现在FPGA工程中插入fir_COmpiler CORE,导入FIR滤波系数文件,选择滤波器 类型为抽取滤波,抽取率为2,输入采样率40MHz,时钟频率40MHz,其他选项按默认,点击 Finish,生成该IP CORE,并将该CORE添加入FPGA工程中。这样就生成了 FIR模块,封装好 的FIR模块如下component firlport (elk: IN std_logic ;din:IN std_logic_VECT0R(15 downto 0);rfd:0UT std_logic ;
rdy:0UT std_logic ;doutOUT std_logic_VECT0R(39 downto 0));end component ;FPGA完成数字抽取滤波后,将预处理后的视频数据打包,通过千兆网接口发送给 PC机。3. PC机相干积累的实现PC机通过以太网接口接收FPGA发送过来的数据后,为增强用于显示信号的信噪 比,首先进行方位和距离的相干积累处理。部分C++程序如下m_pstCorrMTPDataStruct- > dAzimuth+ = pDat- > wCurAzimuth+fDe1ta+0. 4 ; //+pDat- > wCurAziCount*1. 0f/pDat- > wPreAziCount ;nUpdatelnterval++ ;if (nRayCount % g_RadarScanParameter. wAziAcumPlus = = 0) // 如果中贞数达到
了积累的值,开始进行信号处理{m_pstCorrMTPDataStruct- > dAzimuth = m_pstCorrMTPDataStruct- > dAzimuth/g_RadarScanParameter. wAziAcumPlus ;if (angle < m_pstCorrMTPDataStruct- > dAzimuth) m_ pstCorrMTPDataStruct- > dAzimuth = angle ;pDrvv- > m_RadarDspProcess. DSPMain(m_pstCorrMTPDataStruct, g_ stRadarParaStruct, &g_pstRayRecord) ;//参数1为接收到的处理的数据,第二个参数为雷达
信号处理参数pDrvv- > m_dAzimuth = m_pstCorrMTPDataStruct- > dAzimuth ;for(int i = 0 ;i < pDrvv- > m_nRadLen ;i++){if ((g_pstRayRecord. HUnZ [i] = = RAY_REC0RD_N0_DATA) || (g_
pstRayRecord. HUnZ[i]*0. Olf < g_stRadarParaStruct. fThresholdCCOR))// 如果强度错
误或者强度小于软件设置的杂波门限{
5
g_RealScanDataManage. m_RealScanRay[nDir]. CurrentRayRecord. HCor Z[i] = 1 ;//255 ;//经过地物杂波消除的dBZ值
g—RealScanDataManage. m—RealScanRay [nDir] · CurrentRayRecord. HUn Z[i] = 1 ;//255 ;//未经过地物杂波消除的dBZ值
g—RealScanDataManage. m—RealScanRay[nDir]· CurrentRayRecord.V[i]= 0 ;//-128 ;//速度值,计数单位为0. 01m/s,正值表示远离雷达的速度,
负值表示朝向雷达的速度}else{............4. PC机的抗地物干扰实现PC机完成相干积累后,调用ClutterFilterO函数,进行地物杂波滤波。部分C++程序如下//////////////////////////////////////////////////////////////////名称ClutterFilterH功能对地物杂波进行滤波,采用FT变换至频域,滤除零速附近的通道,再IFT 至时域bool CPDRadarDSP:ClutterFilter (){//对输入数据的长度进行检查,防止数组越界,采用ASSERT的方法ASSERT(m_pstCorrMTPDataStruct- > dwCorrLength < = C0RR_MTP_MAX_ LENGTH);ASSERT(m_pstCorrMTPDataStruct- > dwDataLength < = MTP_DATA_MAX_ LENGTH);//////////////////////////DWORD i, j ;DWORD &dwDataLength = m_pstCorrMTPDataStruct- > dwDataLength ;// 得到数 据的长度DWORD &dwCorrLength = m_pstCorrMTPDataStruct- > dwCorrLength ;// 得至Ij才目 关的脉冲数目if (m_stRadarParaStruct. byClutterFilterSel == 0)// 如果用户选择不滤波{for(i = 0 ;i < dwCorrLength ;i++){ippsCopy_32fc(m_pstCorrMTPDataStruct- > stMTPData[i]. fcIQData, m_pstCorrMTPDataStruct- > stMTPData[i]. fcIQFIR, dwDataLength);}}else{Ipp32fc*pfcFFTIn = ippsMalloc_32fc (dwCorrLength) ;// 用于 FFT 输入的数组Ipp32fc*pfcFFT0ut = ippsMalloc_32fc (dwCorrLength) ;//用于FFT输出的数组H下面进行FT变换至频域,滤除地物杂波//1.定义进行变换所需的结构IppsDFTSpec_C_32fc*pfcDFTSpec ;ippsDFTInitAlloc_C_32fc(&pfcDFTSpec, dwCorrLength,IPP_FFT_DIV_BY_SQRTN, ippAlgHintFast) ;//对 DFT 进行初始化int nBufferSize ;ippsDFTGetBufSize_C_32fc(pfcDFTSpec, &nBufferSize);Ipp8u*pBuffer = ippsMalloc_8u (nBufferSize) ;//开辟进行变换 所需的内存for(j = 0 ;j < dwDataLength ;j++){//2.从原始数据中取出位于相同距离单元,不同触发的数据
0113]...............
0114]5. PC机的抗同频干扰实现
0115]PC机完成地物干扰抑制后,调用ClutterFilterO函数,进行同频干扰抑制。
0116]部分C++程序如下
0117]//////////////////////////
0118]//根据用户设定,对异步干扰信号进行滤除
0119]Ipp32f fInterferenceFilter_AmpSub ;//相邻脉冲的幅度差m_stRadarParaStruct. bInterferenceFiIter = FALSE ;if(m_stRadarParaStruct. bInterferenceFiIter){//首先对第1个相关进行反异步处理for(j = 0 ;j < dwDataLength ;j++){H计算当前周期的值与后一个周期的幅度差if(m_pstCorrMTPDataStruct- > stMTPData
. fAmpData[j] < m_ PstCorrMTPDataStruct- > stMTPData[1], fAmpData[j]){fInterferenceFilter_AmpSub = 0.0 ;}else{fInterferenceFilter_AmpSub = m_pstCorrMTPDataStruct_ > stMTPData
, fAmpData[j]-m_pstCorrMTPDataStruct- > stMTPData [1] ·
fAmpData[j];
7
}//对幅度差进行判断,若超过门限,则认为是异步干扰,将其消除if(fInterferenceFilter_AmpSub > m_pstCorrMTPDataStruct- > stMTPData
, fAmpData[j]*m_stRadarParaStruct. f I η t er fer en c eF i 11 er Ga t e+m_ stRadarParaStruct. fNoise氺3){////当前距离单元是异步干扰信号,输出m_pstCorrMTPDataStruct- > stMTPData
. fAmpData[j] = 0 ;m_pstCorrMTPDataStruct- > stMTPData
. fcIQData[j]. re = 0 ;m_pstCorrMTPDataStruct- > stMTPData
. fcIQData[j]. im = 0 ;}}//End of for(j = 0 ;j < dwDataLength ;j++)
0148]//然后,对其余相关脉冲,与前1个比较,进行反异步处理
0149]for(i = 1 ;i < dwCorrLength ;i++)
0150]............
0151]经过以上步骤,即实现了基于FPGA的PC机虚拟雷达信号处理。
8
权利要求
一种基于FPGA的PC机虚拟信号处理方法,其特征在于包括如下步骤(一)信号预处理a)FPGA采集雷达的方位、舰首和触发信号,解析雷达的工作状态;b)FPGA在触发信号的同步下采集雷达的视频信号,开辟RAM存储空间,形成当前帧数据流;c)FPGA根据视频信号分辨率要求进行数字抽取,并构建低通滤波器进行FIR滤波;(二)后级信号处理d)FPGA通过千兆以太网将预处理后的视频信号送入PC机;e)PC机对接收信号进行强度修正;f)PC机对修正后的信号进行方位和距离的相干积累处理;g)PC机对相干积累后的信号进行抗地物干扰处理;h)PC机对抗地物干扰处理后的信号进行同频干扰抑制;(三)信号处理完成后由终端进行海态回波显示。
2.根据权利要求1所述的基于FPGA的PC机虚拟信号处理方法,其特征在于所述FIR 滤波的过程中,每一级FIR抽取滤波的输出采样率大于FIR滤波器截止频率的两倍。
全文摘要
本发明公开了一种基于FPGA的PC机虚拟信号处理方法,属于雷达信号处理领域。该方法首先由FPGA开辟RAM对数字雷达视频信号进行存储,实现前级数字抽取、FIR滤波的预处理工作,然后将预处理后的信号通过千兆以太网送入PC机,由PC机完成后级信号强度修正、相干积累、抗地物杂波干扰、同频干扰抑制的处理工作,处理完成后由终端进行回波显示。本发明简化了FPGA的工作内容,充分发挥了PC机的运算能力,大大简化了雷达信号处理的实现难度。
文档编号G01S7/02GK101980045SQ20101050958
公开日2011年2月23日 申请日期2010年10月18日 优先权日2010年10月18日
发明者丁友峰, 周亮, 孙勇, 施春荣 申请人:南京鹏力科技有限公司