Update geometry info , measrementInfo for startReconstruction.
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
#include "estimateOffset.h"
|
||||
#include "../../common/ceMatchedFilterHandling.h"
|
||||
#include "Function.h"
|
||||
#include "Function1D.h"
|
||||
#include "Function2D.h"
|
||||
#include "Matrix.h"
|
||||
#include "src/config/config.h"
|
||||
#include <cstddef>
|
||||
|
||||
using namespace Recon;
|
||||
using namespace Aurora;
|
||||
|
||||
double Recon::estimateOffset(const MeasurementInfo aExpInfo, const CEInfo& aCe, const Aurora::Matrix& aMatchedFilter)
|
||||
{
|
||||
double offset = 0;
|
||||
Matrix ce = aCe.ceRef;
|
||||
double ceOffSet = aCe.ceRefOffSet;
|
||||
Matrix ceMeasured;
|
||||
if(aCe.measuredCEAvailable)
|
||||
{
|
||||
if(aCe.measuredCEUsed)
|
||||
{
|
||||
ceMeasured = real(ifft(aMatchedFilter));
|
||||
}
|
||||
else
|
||||
{
|
||||
ceMeasured = real(ifft(reviseMatchedFilter(aCe.ce, true)));
|
||||
}
|
||||
}
|
||||
|
||||
offset = offset + reflectParams::offsetElectronic;
|
||||
if(!aCe.measuredCEUsed)
|
||||
{
|
||||
if(aCe.measuredCEAvailable && aCe.ceAvailable)
|
||||
{
|
||||
size_t column = ceMeasured.getDimSize(1);
|
||||
size_t ceRows = ce.getDimSize(0);
|
||||
double* offsetCEMeasuredData = Aurora::malloc(column);
|
||||
for(int i=0; i<column; ++i)
|
||||
{
|
||||
Matrix corrCE = xcorr(ceMeasured($,i).toMatrix(), ce);
|
||||
long row,column;
|
||||
max(corrCE, FunctionDirection::All,row,column);
|
||||
offsetCEMeasuredData[i] = row + 1;
|
||||
offsetCEMeasuredData[i] = offsetCEMeasuredData[i] - ceRows;
|
||||
}
|
||||
Matrix offsetCEMeasured = Matrix::New(offsetCEMeasuredData, column);
|
||||
offset = offset + median(offsetCEMeasured)[0] / reflectParams::aScanReconstructionFrequency;
|
||||
// 2代
|
||||
// if strcmpi(info.Hardware,'USCT3Dv2')
|
||||
// offset = offset - CEOffset;
|
||||
// CEOffset = 0;
|
||||
// end
|
||||
}
|
||||
else
|
||||
{
|
||||
double dacDelay = aExpInfo.dacDelay;
|
||||
double filterDisabled = aExpInfo.filterByPass;
|
||||
double dacDelayInS = dacDelay / 10000000;
|
||||
if(filterDisabled == 1)
|
||||
{
|
||||
offset += aCe.offsetFilterDisabled + dacDelayInS;
|
||||
}
|
||||
else
|
||||
{
|
||||
offset += aCe.offsetFilterEnabled + dacDelayInS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//只对三代处理,Digitalfilterdelay为0;
|
||||
// if (strcmp(info.Hardware,'USCT3Dv2')==1 && info.Bandpassundersampling==1) %%%3.3MHz Filter 208 Tabs
|
||||
// Digitalfilterdelay=-(0.8e-6);
|
||||
// %seconds
|
||||
// elseif(strcmp(info.Hardware,'USCT3Dv2')==1) %%%%10 MHz 32 Tabs
|
||||
// Digitalfilterdelay=-(4.67e-6 + 0.8e-6);
|
||||
// %seconds
|
||||
// elseif(strcmp(info.Hardware,'USCT3Dv3')==1)
|
||||
double digitalfilterdelay = 0;
|
||||
// else
|
||||
// Digitalfilterdelay = 0;
|
||||
// end
|
||||
|
||||
if (!aCe.measuredCEUsed)
|
||||
{
|
||||
offset += digitalfilterdelay;
|
||||
offset += ceOffSet;
|
||||
}
|
||||
|
||||
offset -= aExpInfo.EOffset;
|
||||
|
||||
return offset;
|
||||
}
|
||||
11
src/reflectionReconstruction/preprocessData/estimateOffset.h
Normal file
11
src/reflectionReconstruction/preprocessData/estimateOffset.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef ESTIMATE_OFFSET_H
|
||||
#define ESTIMATE_OFFSET_H
|
||||
|
||||
#include "../../common/getMeasurementMetaData.h"
|
||||
|
||||
namespace Recon
|
||||
{
|
||||
double estimateOffset(const MeasurementInfo aExpInfo, const CEInfo& aCe, const Aurora::Matrix& aMatchedFilter);
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user