1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2026-05-31 17:52:12 +00:00

Add Matlab writter to the observables block

This commit is contained in:
Carles Fernandez
2025-11-25 17:44:29 +01:00
parent 7abf088b6b
commit 554bd98f0e
@@ -23,9 +23,9 @@
#include "gnss_sdr_filesystem.h"
#include "gnss_sdr_make_unique.h"
#include "gnss_synchro.h"
#include "matlab_writter_helper.h"
#include "sensor_data/sensor_identifier.h"
#include <gnuradio/io_signature.h>
#include <matio.h>
#include <pmt/pmt.h>
#include <algorithm> // for std::min
#include <array>
@@ -338,7 +338,6 @@ int32_t hybrid_observables_gs::save_matfile() const
// WRITE MAT FILE
mat_t *matfp;
matvar_t *matvar;
std::string filename = d_dump_filename;
if (filename.size() > 4)
{
@@ -349,33 +348,14 @@ int32_t hybrid_observables_gs::save_matfile() const
if (reinterpret_cast<int64_t *>(matfp) != nullptr)
{
std::array<size_t, 2> dims{static_cast<size_t>(d_nchannels_out), static_cast<size_t>(num_epoch)};
matvar = Mat_VarCreate("RX_time", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims.data(), RX_time_aux.data(), MAT_F_DONT_COPY_DATA);
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
Mat_VarFree(matvar);
matvar = Mat_VarCreate("TOW_at_current_symbol_s", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims.data(), TOW_at_current_symbol_s_aux.data(), MAT_F_DONT_COPY_DATA);
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
Mat_VarFree(matvar);
matvar = Mat_VarCreate("Carrier_Doppler_hz", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims.data(), Carrier_Doppler_hz_aux.data(), MAT_F_DONT_COPY_DATA);
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
Mat_VarFree(matvar);
matvar = Mat_VarCreate("Carrier_phase_cycles", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims.data(), Carrier_phase_cycles_aux.data(), MAT_F_DONT_COPY_DATA);
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
Mat_VarFree(matvar);
matvar = Mat_VarCreate("Pseudorange_m", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims.data(), Pseudorange_m_aux.data(), MAT_F_DONT_COPY_DATA);
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
Mat_VarFree(matvar);
matvar = Mat_VarCreate("PRN", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims.data(), PRN_aux.data(), MAT_F_DONT_COPY_DATA);
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
Mat_VarFree(matvar);
matvar = Mat_VarCreate("Flag_valid_pseudorange", MAT_C_DOUBLE, MAT_T_DOUBLE, 2, dims.data(), Flag_valid_pseudorange_aux.data(), MAT_F_DONT_COPY_DATA);
Mat_VarWrite(matfp, matvar, MAT_COMPRESSION_ZLIB); // or MAT_COMPRESSION_NONE
Mat_VarFree(matvar);
write_matlab_var<2>("RX_time", RX_time_aux.data(), matfp, dims);
write_matlab_var<2>("TOW_at_current_symbol_s", TOW_at_current_symbol_s_aux.data(), matfp, dims);
write_matlab_var<2>("Carrier_Doppler_hz", Carrier_Doppler_hz_aux.data(), matfp, dims);
write_matlab_var<2>("Carrier_phase_cycles", Carrier_phase_cycles_aux.data(), matfp, dims);
write_matlab_var<2>("Pseudorange_m", Pseudorange_m_aux.data(), matfp, dims);
write_matlab_var<2>("PRN", PRN_aux.data(), matfp, dims);
write_matlab_var<2>("Flag_valid_pseudorange", Flag_valid_pseudorange_aux.data(), matfp, dims);
}
Mat_Close(matfp);