#include "GF3CalibrationGeoCodingFunCUDA.cuh" #include #include #include #include #include #include #include #include #include #include #include "BaseConstVariable.h" #include "GPUTool.cuh" __device__ __host__ float Computrer_polartionConver_rpol_f(float inangle, float alpha) { float tang = 0.0; if (inangle <= 0.0) { tang = 0.0; } else if (inangle > 90.0) { tang = 90.0; } else { tang = inangle; } tang = tang * PI / 180.0; float tan_val = tanf(tang); float rpol = powf((1.0 + 2.0 * tan_val * tan_val), 2) / powf((1.0 + alpha * tan_val * tan_val), 2); return rpol; } __device__ __host__ double Computrer_polartionConver_rpol_d(double inangle, double alpha) { double tang = 0.0; if (inangle <= 0.0) { tang = 0.0; } else if (inangle > 90.0) { tang = 90.0; } else { tang = inangle; } tang = tang * PI / 180.0; double tan_val = tan(tang); double rpol = pow((1.0 + 2.0 * tan_val * tan_val), 2) / pow((1.0 + alpha * tan_val * tan_val), 2); return rpol; } __host__ __device__ float polartionConver_f(float insig, float inangle, float alpha , bool isvv ) { float rpol = Computrer_polartionConver_rpol_f(inangle, alpha); // dB转线性 float insig_linear = powf(10.0, insig / 10.0); float osig = 0.0; if (isvv) { // C: VV->HH osig = insig_linear * rpol; // 返回线性值 return osig; } else { // L: HH->VV osig = insig_linear / rpol; // 返回dB值 return 10.0 * log10f(osig); } } void GPUComputePolarizationConver_f(float* insig, float* inangle, float* alpha, bool isvv, int count, float* outsig) { } void GPUComputePolarizationConver_d(double* insig, double* inangle, double* alpha, bool isvv, int count, double* outsig) { } __host__ __device__ double polartionConver_d(double insig, double inangle, double alpha , bool isvv ) { double rpol = Computrer_polartionConver_rpol_d(inangle, alpha); // dB转线性 double insig_linear = pow(10.0, insig / 10.0); double osig = 0.0; if (isvv) { // C: VV->HH osig = insig_linear * rpol; // 返回dB值 return 10.0 * log10(osig); } else { // L: HH->VV osig = insig_linear / rpol; // 返回dB值 return 10.0 * log10(osig); } } /** 核函数部分 ******************************************************************************************************************************/ /** 对外调用函数部分 ******************************************************************************************************************************/