修改了误差参数

pull/13/head
陈增辉 2025-03-26 10:14:42 +08:00
parent 25f2daee96
commit 7cb06427b6
4 changed files with 32 additions and 21 deletions

View File

@ -117,8 +117,5 @@ extern "C" GPUBASELIBAPI void shared_complexPtrToHostCuComplex(std::complex<doub
extern "C" GPUBASELIBAPI void HostCuComplexToshared_complexPtr(cuComplex* src, std::complex<double>* dst, size_t len);
#endif
#endif

View File

@ -468,13 +468,11 @@ void CUDA_RFPC_MainProcess(
/* 核函数 ****************************************************************************************************************************/
__device__ double SincTarg(double x) {
return 1 - (pow(x, 2) / 6) + (pow(x, 4) / 120) - (pow(x, 6) / 5040);
inline double SincTarg(double x) {
return 1 - (x * x / 6) + (x * x * x * x / 120) - (x * x * x * x * x * x / 5040);
}
__global__ void Kernel_Computer_R_amp_NoAntPattern(
SateState* antlist,
long PRFCount,
@ -539,9 +537,12 @@ __global__ void Kernel_Computer_R_amp_NoAntPattern(
RstY*antp.antDirectY+
RstZ*antp.antDirectZ) / (antDirectR* RstR);
diectAngle = acos(diectAngle);// 說僅秶
diectAngle = acosf(diectAngle);// »¡¶ÈÖÆ
diectAngle = diectAngle * GainWeight;
double ampGain = 2 * maxGain * (1 - (diectAngle * diectAngle / 6)
+ (diectAngle * diectAngle * diectAngle * diectAngle / 120)
- (diectAngle * diectAngle * diectAngle * diectAngle * diectAngle * diectAngle / 5040));
double ampGain = 2*maxGain*SincTarg(GainWeight*diectAngle);
ampGain = ampGain / (powf(4 * LAMP_CUDA_PI, 2) * powf(RstR, 4)); // 反射强度
double sigma = GPU_getSigma0dB(sigma0Params, localangle);
sigma = powf(10.0, sigma / 10.0);

View File

@ -978,6 +978,14 @@ ErrorCode RFPCProcessCls::RFPCMainProcess_GPU_NoAntPattern(size_t startprfid, si
pair.second.p5,
pair.second.p6
}));
printf("clsid:%d, params: %e,%e,%e,%e,%e,%e \n", pair.first,
pair.second.p1,
pair.second.p2,
pair.second.p3,
pair.second.p4,
pair.second.p5,
pair.second.p6
);
}
@ -1152,7 +1160,7 @@ ErrorCode RFPCProcessCls::SaveBlockSimulationEchoArr(cuComplex* d_echoData,size_
qDebug() << "write echo :\t " << "prfcount:\t" << prfcount << " freqnum:\t" << freqNum;
testOutComplexDoubleArr(QString("testoutEcho.dat"),fileEchoArr.get(), prfcount_read, freqNum);
//testOutComplexDoubleArr(QString("testoutEcho.dat"),fileEchoArr.get(), prfcount_read, freqNum);
this->EchoSimulationData->saveEchoArr(fileEchoArr, startprfid, prfcount_read);

View File

@ -78,18 +78,23 @@ SigmaDatabase::SigmaDatabase()
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(90, SigmaParam{ -26.8776515733889, 10.4251866500052, 8.43273666535992, 4.33165922141213, 8.68204389555939, - 2.51718779582920 }));
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(90, SigmaParam{ -20.1761798059391, 13.2752519275021, 2.74667225608397, 3.63052241744923, 8.99932188120922, 34.8246533269446 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(10, SigmaParam{ 28.15,-39.73,0.0986,2.863,4.356,-6.279 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(20, SigmaParam{ 36.13,-48.2,0.1299,-1.838,5.404,-4.015 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ 183.5,-194.6,0.0167,2.952,-4.1,6.026 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(40, SigmaParam{ 50.97,-62.9,0.0968,1.604,4.637,6.108 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ -10.31,15.96,37.73,-4.584,4.997,-3.569 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(60, SigmaParam{ -12.45,0.1561,-3.187,-2.482,8.244,0.3632 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ -19.23,0.3623,-2.209,9.649,0.1292,-0.264 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(100, SigmaParam{ 56.61,-62.29,0.01388,2.767,-3.943,5.995 }));
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(10, SigmaParam{ 28.15,-39.73,0.0986,2.863,4.356,-6.279 }));
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(20, SigmaParam{ 36.13,-48.2,0.1299,-1.838,5.404,-4.015 }));
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ 183.5,-194.6,0.0167,2.952,-4.1,6.026 }));
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(40, SigmaParam{ 50.97,-62.9,0.0968,1.604,4.637,6.108 }));
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ -10.31,15.96,37.73,-4.584,4.997,-3.569 }));
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(60, SigmaParam{ -12.45,0.1561,-3.187,-2.482,8.244,0.3632 }));
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ -19.23,0.3623,-2.209,9.649,0.1292,-0.264 }));
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(100, SigmaParam{ 56.61,-62.29,0.01388,2.767,-3.943,5.995 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(10, SigmaParam{ -3.296,-0.1284,2.792,-5.418,1.417,-0.7571 })); // DQ
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(20, SigmaParam{ -9.976,-0.00288,4.404,1.875,1.045,6.801 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ 3.172,-3.725,1.066,-6.938,-1.397,0.1646 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(40, SigmaParam{ 86.51,-93.16,0.0408,-0.4571,5.286,-0.07259 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ 9.03,-18.38,0.1604,-2.208,-6.042,3.596 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(60, SigmaParam{ 13.71,-24.14,0.1177,-2.107,6.382,-4.156 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ 136.6,-0.009549,3.246,143.9,0.0496,2.978 }));
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(90, SigmaParam{ -8.716,-3.019,-0.9396,-0.977,-6.411,2.33 }));
}
SigmaDatabase::~SigmaDatabase()