#ifndef _GPURFPC_H_ #define _GPURFPC_H_ #include "BaseConstVariable.h" #include "GPUTool.cuh" #include #include #include #include extern "C" struct CUDASigmaParam { float p1; float p2; float p3; float p4; float p5; float p6; }; extern "C" void SatelliteAntDirectNormal(float* RstX, float* RstY, float* RstZ, float antXaxisX, float antXaxisY, float antXaxisZ, float antYaxisX, float antYaxisY, float antYaxisZ, float antZaxisX, float antZaxisY, float antZaxisZ, float antDirectX, float antDirectY, float antDirectZ, float* thetaAnt, float* phiAnt, long len); extern "C" void AntPatternInterpGain(float* anttheta, float* antphi, float* gain, float* antpattern, float starttheta, float startphi, float dtheta, float dphi, int thetapoints, int phipoints, long len); extern "C" void calculationEcho(float* sigma0, float* TransAnt, float* ReciveAnt, float* localangle, float* R, float* slopeangle, float nearRange, float Fs, float pt, float lamda, long FreqIDmax, cuComplex* echoAmp, long* FreqID, long len); extern "C" void CUDACalculationEchoAmp( float* sigma0, float* TransAnt, float* ReciveAnt, float* R, float Pt, float* ampArr, long len ); extern "C" void CUDACalculationEchoPhase( float* R, float lamda, float* phaseArr, long len ); extern "C" void CUDACombinationEchoAmpAndPhase(float* R, float* echoAmp, float* echoPhase, float nearRange, float Fs,long plusepoints, cuComplex* echo,long* FreqID, long len ); extern "C" void CUDAInterpSigma( long* demcls, float* sigmaAmp, float* localanglearr, long len, CUDASigmaParam* sigma0Paramslist, long sigmaparamslistlen); // 计算坐标的 距离、增益 extern "C" void CUDARFPC_Caluation_R_Gain( float antX,float antY,float antZ, // 天线的坐标 float* targetX,float* targetY, float* targetZ, long TargetPixelNumber, // 地面坐标 long* demCls, float* demSlopeX, float* demSlopeY, float* demSlopeZ, // 地表坡度矢量 float antXaxisX, float antXaxisY, float antXaxisZ, // 天线坐标系的X轴 float antYaxisX, float antYaxisY, float antYaxisZ,// 天线坐标系的Y轴 float antZaxisX, float antZaxisY, float antZaxisZ,// 天线坐标系的Z轴 float antDirectX, float antDirectY, float antDirectZ,// 天线的指向 float Pt,// 发射能量 float* TransAntpattern, float Transtarttheta, float Transstartphi, float Transdtheta, float Transdphi, int Transthetapoints, int Transphipoints, // 发射天线方向图 float* ReceiveAntpattern, float Receivestarttheta, float Receivestartphi, float Receivedtheta, float Receivedphi, int Receivethetapoints, int Receivephipoints,//接收天线方向图 float NearR,float FarR, // 距离范围 CUDASigmaParam* sigma0Paramslist, long sigmaparamslistlen,// 插值图 float* outR, // 输出距离 float* outAmp // 输出增益 ); extern "C" void CUDA_PRF_CalFreqEcho( float* Rarr,float* amp,long pixelcount,// float* freqpoints,long freqnum, cuComplex* PRFEcho,long prfid ); #endif