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