Add transmission dataPreperation

This commit is contained in:
kradchen
2023-05-10 17:00:36 +08:00
parent aff5106a37
commit 640ab04854
5 changed files with 130 additions and 2 deletions

View File

@@ -0,0 +1,37 @@
#include "dataPreperation.h"
#include "Function1D.h"
#include "Function2D.h"
#include "Function3D.h"
#include <cstddef>
namespace Recon
{
Aurora::Matrix distanceBetweenTwoPoints(Aurora::Matrix aPtsA, Aurora::Matrix aPtsB)
{
return Aurora::sqrt(Aurora::sum((aPtsA-aPtsB)^2));
}
Aurora::Matrix calculateWaterTemperature(Aurora::Matrix aMWaterTempS,
Aurora::Matrix aMWaterTempR,
Aurora::Matrix aVsl,
Aurora::Matrix aVrl,
Aurora::Matrix aVmp)
{
auto idx1 = Aurora::sub2ind(Aurora::size(aMWaterTempS), {aVsl, aVmp});
auto idx2 = Aurora::sub2ind(Aurora::size(aMWaterTempR), {aVrl, aVmp});
auto waterTemp = Aurora::zeros(idx1.getDataSize(),1);
for (size_t i = 0; i<idx1.getDataSize(); ++i) {
waterTemp.getData()[i] = (aMWaterTempS.getData()[(int)idx1.getData()[i]]+
aMWaterTempR.getData()[(int)idx2.getData()[i]])/2;
}
return waterTemp;
}
Aurora::Matrix prepareAScansForTransmissionDetection(const Aurora::Matrix& aMaScanBlock, const Aurora::Matrix aVGainBlock)
{
auto ret = aMaScanBlock/Aurora::repmat(aVGainBlock,aMaScanBlock.getDimSize(0),1);
ret = ret-Aurora::repmat(Aurora::mean(ret),aMaScanBlock.getDimSize(0),1);
return ret;
}
}

View File

@@ -0,0 +1,18 @@
#ifndef __DATAPREPERATION_H__
#define __DATAPREPERATION_H__
#include "Matrix.h"
namespace Recon {
Aurora::Matrix distanceBetweenTwoPoints(Aurora::Matrix aPtsA,
Aurora::Matrix aPtsB);
Aurora::Matrix calculateWaterTemperature(Aurora::Matrix aMWaterTempS,
Aurora::Matrix aMWaterTempR,
Aurora::Matrix aVsl,
Aurora::Matrix aVrl,
Aurora::Matrix aVmp);
Aurora::Matrix prepareAScansForTransmissionDetection(const Aurora::Matrix& aMaScanBlock, const Aurora::Matrix aVGainBlock);
} // namespace Recon
#endif // __DATAPREPERATION_H__