Add down sampling while use ce to make CeMeasured and delete receiverIndices & TASIndices with no CeMeasured.
This commit is contained in:
@@ -521,6 +521,8 @@ void MatlabCreatorConvertFp16Private::createCEMeasuredMat(std::shared_ptr<Parser
|
||||
size_t measurementIDDims[2] ={1,measurementID.size()};
|
||||
matvar_t* measurementIDVar = Mat_VarCreate("MeasurementID",MAT_C_CHAR,MAT_T_INT8,2,measurementIDDims,const_cast<char*>(measurementID.c_str()),0);
|
||||
|
||||
if(aParser->hasCEMeasured())
|
||||
{
|
||||
//receiverIndices
|
||||
ReceiverIndicesPointer receiverIndices = metaData.getReceiverIndices();
|
||||
double* writeDataOfReceiverIndices = new double[receiverIndices.getLength()];
|
||||
@@ -537,6 +539,12 @@ void MatlabCreatorConvertFp16Private::createCEMeasuredMat(std::shared_ptr<Parser
|
||||
matvar_t* tasIndicesVar = Mat_VarCreate("TASIndices",MAT_C_DOUBLE,MAT_T_DOUBLE,2,tasIndicesDims,writeDataOfTasIndices,0);
|
||||
delete[] writeDataOfTasIndices;
|
||||
|
||||
Mat_VarWrite(matfp,receiverIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,tasIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarFree(receiverIndicesVar);
|
||||
Mat_VarFree(tasIndicesVar);
|
||||
}
|
||||
|
||||
//CEMeasured
|
||||
CEMeasuredData cEMeasured = aParser->getAllCEMeasuredData();
|
||||
double* ceMeasuredData;
|
||||
@@ -544,13 +552,19 @@ void MatlabCreatorConvertFp16Private::createCEMeasuredMat(std::shared_ptr<Parser
|
||||
if(cEMeasured.isNull())
|
||||
{
|
||||
CEPointer ce = aParser->getCEData().getCE();
|
||||
ceMeasuredData = new double[ce.getLength() * RECEIVE_ELEMENT_COUNT];
|
||||
for(size_t i=0; i<RECEIVE_ELEMENT_COUNT; ++i)
|
||||
size_t downSamplingSize = ce.getLength() / 4;
|
||||
double* downSamplingCeMeasuredData = new double[downSamplingSize * RECEIVE_ELEMENT_COUNT];
|
||||
for(size_t i=0; i<downSamplingSize; ++i)
|
||||
{
|
||||
std::copy(ce.get(), ce.get()+ce.getLength(), ceMeasuredData);
|
||||
ceMeasuredData += RECEIVE_ELEMENT_COUNT;
|
||||
downSamplingCeMeasuredData[i] = ce.get()[4*i];
|
||||
}
|
||||
cEMeasuredDims[0] = ce.getLength();
|
||||
ceMeasuredData = downSamplingCeMeasuredData;
|
||||
for(size_t i=0; i<RECEIVE_ELEMENT_COUNT-1; ++i)
|
||||
{
|
||||
downSamplingCeMeasuredData += downSamplingSize;
|
||||
std::copy(ceMeasuredData, ceMeasuredData+downSamplingSize, downSamplingCeMeasuredData);
|
||||
}
|
||||
cEMeasuredDims[0] = downSamplingSize;
|
||||
cEMeasuredDims[1] = RECEIVE_ELEMENT_COUNT;
|
||||
}
|
||||
else
|
||||
@@ -578,15 +592,11 @@ void MatlabCreatorConvertFp16Private::createCEMeasuredMat(std::shared_ptr<Parser
|
||||
matvar_t* ceSFVar = Mat_VarCreate("CE_SF",MAT_C_DOUBLE,MAT_T_DOUBLE,2,ceSFDims,&ceSF,0);
|
||||
|
||||
Mat_VarWrite(matfp,measurementIDVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,receiverIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,tasIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,cEMeasuredVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,ceOffSetVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,ceSFVar,MAT_COMPRESSION_NONE);
|
||||
|
||||
Mat_VarFree(measurementIDVar);
|
||||
Mat_VarFree(receiverIndicesVar);
|
||||
Mat_VarFree(tasIndicesVar);
|
||||
Mat_VarFree(cEMeasuredVar);
|
||||
Mat_VarFree(ceOffSetVar);
|
||||
Mat_VarFree(ceSFVar);
|
||||
|
||||
@@ -485,6 +485,8 @@ void MatlabCreatorPrivate::createCEMeasuredMat(std::shared_ptr<Parser> aParser,
|
||||
size_t measurementIDDims[2] ={1,measurementID.size()};
|
||||
matvar_t* measurementIDVar = Mat_VarCreate("MeasurementID",MAT_C_CHAR,MAT_T_INT8,2,measurementIDDims,const_cast<char*>(measurementID.c_str()),0);
|
||||
|
||||
if(aParser->hasCEMeasured())
|
||||
{
|
||||
//receiverIndices
|
||||
ReceiverIndicesPointer receiverIndices = metaData.getReceiverIndices();
|
||||
double* writeDataOfReceiverIndices = new double[receiverIndices.getLength()];
|
||||
@@ -501,6 +503,12 @@ void MatlabCreatorPrivate::createCEMeasuredMat(std::shared_ptr<Parser> aParser,
|
||||
matvar_t* tasIndicesVar = Mat_VarCreate("TASIndices",MAT_C_DOUBLE,MAT_T_DOUBLE,2,tasIndicesDims,writeDataOfTasIndices,0);
|
||||
delete[] writeDataOfTasIndices;
|
||||
|
||||
Mat_VarWrite(matfp,receiverIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,tasIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarFree(receiverIndicesVar);
|
||||
Mat_VarFree(tasIndicesVar);
|
||||
}
|
||||
|
||||
//CEMeasured
|
||||
CEMeasuredData cEMeasured = aParser->getAllCEMeasuredData();
|
||||
short* ceMeasuredData;
|
||||
@@ -508,13 +516,19 @@ void MatlabCreatorPrivate::createCEMeasuredMat(std::shared_ptr<Parser> aParser,
|
||||
if(cEMeasured.isNull())
|
||||
{
|
||||
CEPointer ce = aParser->getCEData().getCE();
|
||||
ceMeasuredData = new short[ce.getLength() * RECEIVE_ELEMENT_COUNT];
|
||||
for(size_t i=0; i<RECEIVE_ELEMENT_COUNT; ++i)
|
||||
size_t downSamplingSize = ce.getLength() / 4;
|
||||
short* downSamplingCeMeasuredData = new short[downSamplingSize * RECEIVE_ELEMENT_COUNT];
|
||||
for(size_t i=0; i<downSamplingSize; ++i)
|
||||
{
|
||||
std::copy(ce.get(), ce.get()+ce.getLength(), ceMeasuredData);
|
||||
ceMeasuredData += RECEIVE_ELEMENT_COUNT;
|
||||
downSamplingCeMeasuredData[i] = ce.get()[4*i];
|
||||
}
|
||||
cEMeasuredDims[0] = ce.getLength();
|
||||
ceMeasuredData = downSamplingCeMeasuredData;
|
||||
for(size_t i=0; i<RECEIVE_ELEMENT_COUNT-1; ++i)
|
||||
{
|
||||
downSamplingCeMeasuredData += downSamplingSize;
|
||||
std::copy(ceMeasuredData, ceMeasuredData+downSamplingSize, downSamplingCeMeasuredData);
|
||||
}
|
||||
cEMeasuredDims[0] = downSamplingSize;
|
||||
cEMeasuredDims[1] = RECEIVE_ELEMENT_COUNT;
|
||||
}
|
||||
else
|
||||
@@ -537,18 +551,15 @@ void MatlabCreatorPrivate::createCEMeasuredMat(std::shared_ptr<Parser> aParser,
|
||||
matvar_t* ceSFVar = Mat_VarCreate("CE_SF",MAT_C_DOUBLE,MAT_T_DOUBLE,2,ceSFDims,&ceSF,0);
|
||||
|
||||
Mat_VarWrite(matfp,measurementIDVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,receiverIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,tasIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,cEMeasuredVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,ceOffSetVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,ceSFVar,MAT_COMPRESSION_NONE);
|
||||
|
||||
Mat_VarFree(measurementIDVar);
|
||||
Mat_VarFree(receiverIndicesVar);
|
||||
Mat_VarFree(tasIndicesVar);
|
||||
Mat_VarFree(cEMeasuredVar);
|
||||
Mat_VarFree(ceOffSetVar);
|
||||
Mat_VarFree(ceSFVar);
|
||||
|
||||
Mat_Close(matfp);
|
||||
}
|
||||
|
||||
|
||||
@@ -577,6 +577,14 @@ void MatlabCreatorVariableWindowPrivate::createCEMeasuredMat(std::shared_ptr<Par
|
||||
matvar_t* tasIndicesVar = Mat_VarCreate("TASIndices",MAT_C_DOUBLE,MAT_T_DOUBLE,2,tasIndicesDims,writeDataOfTasIndices,0);
|
||||
delete[] writeDataOfTasIndices;
|
||||
|
||||
if(aParser->hasCEMeasured())
|
||||
{
|
||||
Mat_VarWrite(matfp,receiverIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,tasIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarFree(receiverIndicesVar);
|
||||
Mat_VarFree(tasIndicesVar);
|
||||
}
|
||||
|
||||
//CEMeasured
|
||||
CEMeasuredData cEMeasured = aParser->getAllCEMeasuredData();
|
||||
double* ceMeasuredData;
|
||||
@@ -584,13 +592,19 @@ void MatlabCreatorVariableWindowPrivate::createCEMeasuredMat(std::shared_ptr<Par
|
||||
if(cEMeasured.isNull())
|
||||
{
|
||||
CEPointer ce = aParser->getCEData().getCE();
|
||||
ceMeasuredData = new double[ce.getLength() * RECEIVE_ELEMENT_COUNT];
|
||||
for(size_t i=0; i<RECEIVE_ELEMENT_COUNT; ++i)
|
||||
size_t downSamplingSize = ce.getLength() / 4;
|
||||
double* downSamplingCeMeasuredData = new double[downSamplingSize * RECEIVE_ELEMENT_COUNT];
|
||||
for(size_t i=0; i<downSamplingSize; ++i)
|
||||
{
|
||||
std::copy(ce.get(), ce.get()+ce.getLength(), ceMeasuredData);
|
||||
ceMeasuredData += RECEIVE_ELEMENT_COUNT;
|
||||
downSamplingCeMeasuredData[i] = ce.get()[4*i];
|
||||
}
|
||||
cEMeasuredDims[0] = ce.getLength();
|
||||
ceMeasuredData = downSamplingCeMeasuredData;
|
||||
for(size_t i=0; i<RECEIVE_ELEMENT_COUNT-1; ++i)
|
||||
{
|
||||
downSamplingCeMeasuredData += downSamplingSize;
|
||||
std::copy(ceMeasuredData, ceMeasuredData+downSamplingSize, downSamplingCeMeasuredData);
|
||||
}
|
||||
cEMeasuredDims[0] = downSamplingSize;
|
||||
cEMeasuredDims[1] = RECEIVE_ELEMENT_COUNT;
|
||||
}
|
||||
else
|
||||
@@ -631,15 +645,11 @@ void MatlabCreatorVariableWindowPrivate::createCEMeasuredMat(std::shared_ptr<Par
|
||||
matvar_t* ceSFVar = Mat_VarCreate("CE_SF",MAT_C_DOUBLE,MAT_T_DOUBLE,2,ceSFDims,&ceSF,0);
|
||||
|
||||
Mat_VarWrite(matfp,measurementIDVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,receiverIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,tasIndicesVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,cEMeasuredVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,ceOffSetVar,MAT_COMPRESSION_NONE);
|
||||
Mat_VarWrite(matfp,ceSFVar,MAT_COMPRESSION_NONE);
|
||||
|
||||
Mat_VarFree(measurementIDVar);
|
||||
Mat_VarFree(receiverIndicesVar);
|
||||
Mat_VarFree(tasIndicesVar);
|
||||
Mat_VarFree(cEMeasuredVar);
|
||||
Mat_VarFree(ceOffSetVar);
|
||||
Mat_VarFree(ceSFVar);
|
||||
|
||||
Reference in New Issue
Block a user