成像时,校正回波随距离衰减的

pull/10/head
陈增辉 2025-04-07 15:22:53 +08:00
parent d125abf0d4
commit 99a2d7af0f
3 changed files with 8 additions and 4 deletions

View File

@ -14,6 +14,4 @@ bool GPSPointsNumberEqualCheck(QString& ImageLLPath, QString& InEchoGPSDataPath)
void InterploateAtiByRefDEM(QString& ImageLLPath, QString& ImageDEMPath, QString& outImageLLAPath, QString& InEchoGPSDataPath); void InterploateAtiByRefDEM(QString& ImageLLPath, QString& ImageDEMPath, QString& outImageLLAPath, QString& InEchoGPSDataPath);
#endif #endif

View File

@ -349,8 +349,6 @@ void QCreateInSARImagePlaneXYZRDialog::LookTableSimulationDopplerProcess(QString
Xp4, Yp4, Zp4, Xv4, Yv4, Zv4, Xp4, Yp4, Zp4, Xv4, Yv4, Zv4,
Xp5, Yp5, Zp5, Xv5, Yv5, Zv5, Xp5, Yp5, Zp5, Xv5, Yv5, Zv5,
dopplerRefrenceTime, r0, r1, r2, r3, r4); dopplerRefrenceTime, r0, r1, r2, r3, r4);
// GPU -> ÄÚ´æ // GPU -> ÄÚ´æ
DeviceToHost(host_R.get(), device_R.get(), sizeof(double) * rowcount * demimg.width); DeviceToHost(host_R.get(), device_R.get(), sizeof(double) * rowcount * demimg.width);
qDebug() << "GPU computer finished!!: " << rid << "~" << rowcount + rid << "\t:" << demimg.height; qDebug() << "GPU computer finished!!: " << rid << "~" << rowcount + rid << "\t:" << demimg.height;
@ -383,3 +381,6 @@ void QCreateInSARImagePlaneXYZRDialog::onaccepted()
QMessageBox::information(this, u8"info", u8"completed!!!"); QMessageBox::information(this, u8"info", u8"completed!!!");
} }

View File

@ -82,6 +82,7 @@ __global__ void processPulseKernel(
//printf("processPulseKernel xmat !!\n"); //printf("processPulseKernel xmat !!\n");
double R = sqrt(dx * dx + dy * dy + dz * dz); double R = sqrt(dx * dx + dy * dy + dz * dz);
double ampcorrect = (powf(4 * LAMP_CUDA_PI, 2) * powf(R, 4));
double dR = R - R0; double dR = R - R0;
if (dR < r_start || dR >= (r_start + dr * (nR - 1))) return; if (dR < r_start || dR >= (r_start + dr * (nR - 1))) return;
@ -107,6 +108,10 @@ __global__ void processPulseKernel(
phCorr.x = rc_interp.x * cos_phase - rc_interp.y * sin_phase; phCorr.x = rc_interp.x * cos_phase - rc_interp.y * sin_phase;
phCorr.y = rc_interp.x * sin_phase + rc_interp.y * cos_phase; phCorr.y = rc_interp.x * sin_phase + rc_interp.y * cos_phase;
// amp correction
phCorr.x = ampcorrect * phCorr.x;
phCorr.y = ampcorrect * phCorr.y;
// Accumulate // Accumulate
im_final[idx].x += phCorr.x; im_final[idx].x += phCorr.x;
im_final[idx].y += phCorr.y; im_final[idx].y += phCorr.y;