#include "preprocessAscanBlock.h" #include "Function1D.h" #include "Function1D.cuh" #include Aurora::Matrix Recon::preprocessAscanBlock(const Aurora::Matrix& aAscans, const MeasurementInfo& aMeasInfo) { Aurora::Matrix result = aAscans; size_t size = aAscans.getDataSize(); short* ascanData = new short[size]; std::copy(aAscans.getData(), aAscans.getData() + size, ascanData); if(aMeasInfo.ascanDataType == "float16") { result = Aurora::convertfp16tofloat(ascanData, aAscans.getDimSize(0), aAscans.getDimSize(1)); } delete [] ascanData; //暂不考虑实现二代逻辑 // if isfield(measInfo, 'Bandpassundersampling') && (measInfo.Bandpassundersampling == 1) // AScans = reconstructBandpasssubsampling(AScans, params.aScanReconstructionFrequency, measInfo.SampleRate); // end return result; } Aurora::CudaMatrix Recon::preprocessAscanBlockCuda(const Aurora::CudaMatrix& aAscans, const MeasurementInfo& aMeasInfo) { if(aMeasInfo.ascanDataType == "float16") { return Aurora::convertfp16tofloatCuda(aAscans, aAscans.getDimSize(0), aAscans.getDimSize(1)); } return aAscans; }