mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-15 12:40:35 +00:00
Add more extensive use of cstdint typenames
This commit is contained in:
parent
200648be50
commit
b64850d285
@ -39,7 +39,7 @@
|
|||||||
using google::LogMessage;
|
using google::LogMessage;
|
||||||
|
|
||||||
notch_sptr make_notch_filter(float pfa, float p_c_factor,
|
notch_sptr make_notch_filter(float pfa, float p_c_factor,
|
||||||
int length_, int n_segments_est, int n_segments_reset)
|
int32_t length_, int32_t n_segments_est, int32_t n_segments_reset)
|
||||||
{
|
{
|
||||||
return notch_sptr(new Notch(pfa, p_c_factor, length_, n_segments_est, n_segments_reset));
|
return notch_sptr(new Notch(pfa, p_c_factor, length_, n_segments_est, n_segments_reset));
|
||||||
}
|
}
|
||||||
@ -47,31 +47,31 @@ notch_sptr make_notch_filter(float pfa, float p_c_factor,
|
|||||||
|
|
||||||
Notch::Notch(float pfa,
|
Notch::Notch(float pfa,
|
||||||
float p_c_factor,
|
float p_c_factor,
|
||||||
int length_,
|
int32_t length_,
|
||||||
int n_segments_est,
|
int32_t n_segments_est,
|
||||||
int n_segments_reset) : gr::block("Notch",
|
int32_t n_segments_reset) : gr::block("Notch",
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex)))
|
gr::io_signature::make(1, 1, sizeof(gr_complex)))
|
||||||
{
|
{
|
||||||
const int alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
|
const int32_t alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
|
||||||
set_alignment(std::max(1, alignment_multiple));
|
set_alignment(std::max(1, alignment_multiple));
|
||||||
set_history(2);
|
set_history(2);
|
||||||
this->pfa = pfa;
|
this->pfa = pfa;
|
||||||
noise_pow_est = 0.0;
|
noise_pow_est = 0.0;
|
||||||
this->p_c_factor = gr_complex(p_c_factor, 0);
|
this->p_c_factor = gr_complex(p_c_factor, 0.0);
|
||||||
this->length_ = length_; //Set the number of samples per segment
|
this->length_ = length_; // Set the number of samples per segment
|
||||||
filter_state_ = false; //Initial state of the filter
|
filter_state_ = false; // Initial state of the filter
|
||||||
n_deg_fred = 2 * length_; //Number of dregrees of freedom
|
n_deg_fred = 2 * length_; // Number of dregrees of freedom
|
||||||
n_segments = 0;
|
n_segments = 0;
|
||||||
this->n_segments_est = n_segments_est; // Set the number of segments for noise power estimation
|
this->n_segments_est = n_segments_est; // Set the number of segments for noise power estimation
|
||||||
this->n_segments_reset = n_segments_reset; // Set the period (in segments) when the noise power is estimated
|
this->n_segments_reset = n_segments_reset; // Set the period (in segments) when the noise power is estimated
|
||||||
z_0 = gr_complex(0, 0);
|
z_0 = gr_complex(0.0, 0.0);
|
||||||
boost::math::chi_squared_distribution<float> my_dist_(n_deg_fred);
|
boost::math::chi_squared_distribution<float> my_dist_(n_deg_fred);
|
||||||
thres_ = boost::math::quantile(boost::math::complement(my_dist_, pfa));
|
thres_ = boost::math::quantile(boost::math::complement(my_dist_, pfa));
|
||||||
c_samples = static_cast<gr_complex *>(volk_malloc(length_ * sizeof(gr_complex), volk_get_alignment()));
|
c_samples = static_cast<gr_complex *>(volk_malloc(length_ * sizeof(gr_complex), volk_get_alignment()));
|
||||||
angle_ = static_cast<float *>(volk_malloc(length_ * sizeof(float), volk_get_alignment()));
|
angle_ = static_cast<float *>(volk_malloc(length_ * sizeof(float), volk_get_alignment()));
|
||||||
power_spect = static_cast<float *>(volk_malloc(length_ * sizeof(float), volk_get_alignment()));
|
power_spect = static_cast<float *>(volk_malloc(length_ * sizeof(float), volk_get_alignment()));
|
||||||
last_out = gr_complex(0, 0);
|
last_out = gr_complex(0.0, 0.0);
|
||||||
d_fft = std::unique_ptr<gr::fft::fft_complex>(new gr::fft::fft_complex(length_, true));
|
d_fft = std::unique_ptr<gr::fft::fft_complex>(new gr::fft::fft_complex(length_, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ Notch::~Notch()
|
|||||||
|
|
||||||
void Notch::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
|
void Notch::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
|
||||||
{
|
{
|
||||||
for (unsigned int aux = 0; aux < ninput_items_required.size(); aux++)
|
for (uint32_t aux = 0; aux < ninput_items_required.size(); aux++)
|
||||||
{
|
{
|
||||||
ninput_items_required[aux] = length_;
|
ninput_items_required[aux] = length_;
|
||||||
}
|
}
|
||||||
@ -96,7 +96,7 @@ void Notch::forecast(int noutput_items __attribute__((unused)), gr_vector_int &n
|
|||||||
int Notch::general_work(int noutput_items, gr_vector_int &ninput_items __attribute__((unused)),
|
int Notch::general_work(int noutput_items, gr_vector_int &ninput_items __attribute__((unused)),
|
||||||
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
|
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
|
||||||
{
|
{
|
||||||
int index_out = 0;
|
int32_t index_out = 0;
|
||||||
float sig2dB = 0.0;
|
float sig2dB = 0.0;
|
||||||
float sig2lin = 0.0;
|
float sig2lin = 0.0;
|
||||||
lv_32fc_t dot_prod_;
|
lv_32fc_t dot_prod_;
|
||||||
@ -127,7 +127,7 @@ int Notch::general_work(int noutput_items, gr_vector_int &ninput_items __attribu
|
|||||||
}
|
}
|
||||||
volk_32fc_x2_multiply_conjugate_32fc(c_samples, in, (in - 1), length_);
|
volk_32fc_x2_multiply_conjugate_32fc(c_samples, in, (in - 1), length_);
|
||||||
volk_32fc_s32f_atan2_32f(angle_, c_samples, static_cast<float>(1.0), length_);
|
volk_32fc_s32f_atan2_32f(angle_, c_samples, static_cast<float>(1.0), length_);
|
||||||
for (int aux = 0; aux < length_; aux++)
|
for (int32_t aux = 0; aux < length_; aux++)
|
||||||
{
|
{
|
||||||
z_0 = std::exp(gr_complex(0, 1) * (*(angle_ + aux)));
|
z_0 = std::exp(gr_complex(0, 1) * (*(angle_ + aux)));
|
||||||
*(out + aux) = *(in + aux) - z_0 * (*(in + aux - 1)) + p_c_factor * z_0 * last_out;
|
*(out + aux) = *(in + aux) - z_0 * (*(in + aux - 1)) + p_c_factor * z_0 * last_out;
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include <boost/shared_ptr.hpp>
|
#include <boost/shared_ptr.hpp>
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
#include <gnuradio/fft/fft.h>
|
#include <gnuradio/fft/fft.h>
|
||||||
|
#include <cstdint>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
class Notch;
|
class Notch;
|
||||||
@ -41,7 +42,7 @@ class Notch;
|
|||||||
typedef boost::shared_ptr<Notch> notch_sptr;
|
typedef boost::shared_ptr<Notch> notch_sptr;
|
||||||
|
|
||||||
notch_sptr make_notch_filter(float pfa, float p_c_factor,
|
notch_sptr make_notch_filter(float pfa, float p_c_factor,
|
||||||
int length_, int n_segments_est, int n_segments_reset);
|
int32_t length_, int32_t n_segments_est, int32_t n_segments_reset);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This class implements a real-time software-defined multi state notch filter
|
* \brief This class implements a real-time software-defined multi state notch filter
|
||||||
@ -53,11 +54,11 @@ private:
|
|||||||
float pfa;
|
float pfa;
|
||||||
float noise_pow_est;
|
float noise_pow_est;
|
||||||
float thres_;
|
float thres_;
|
||||||
int length_;
|
int32_t length_;
|
||||||
int n_deg_fred;
|
int32_t n_deg_fred;
|
||||||
unsigned int n_segments;
|
uint32_t n_segments;
|
||||||
unsigned int n_segments_est;
|
uint32_t n_segments_est;
|
||||||
unsigned int n_segments_reset;
|
uint32_t n_segments_reset;
|
||||||
bool filter_state_;
|
bool filter_state_;
|
||||||
gr_complex last_out;
|
gr_complex last_out;
|
||||||
gr_complex z_0;
|
gr_complex z_0;
|
||||||
@ -68,7 +69,7 @@ private:
|
|||||||
std::unique_ptr<gr::fft::fft_complex> d_fft;
|
std::unique_ptr<gr::fft::fft_complex> d_fft;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Notch(float pfa, float p_c_factor, int length_, int n_segments_est, int n_segments_reset);
|
Notch(float pfa, float p_c_factor, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset);
|
||||||
|
|
||||||
~Notch();
|
~Notch();
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
using google::LogMessage;
|
using google::LogMessage;
|
||||||
|
|
||||||
notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int length_, int n_segments_est, int n_segments_reset, int n_segments_coeff)
|
notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset, int32_t n_segments_coeff)
|
||||||
{
|
{
|
||||||
return notch_lite_sptr(new NotchLite(p_c_factor, pfa, length_, n_segments_est, n_segments_reset, n_segments_coeff));
|
return notch_lite_sptr(new NotchLite(p_c_factor, pfa, length_, n_segments_est, n_segments_reset, n_segments_coeff));
|
||||||
}
|
}
|
||||||
@ -46,17 +46,17 @@ notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int length_,
|
|||||||
|
|
||||||
NotchLite::NotchLite(float p_c_factor,
|
NotchLite::NotchLite(float p_c_factor,
|
||||||
float pfa,
|
float pfa,
|
||||||
int length_,
|
int32_t length_,
|
||||||
int n_segments_est,
|
int32_t n_segments_est,
|
||||||
int n_segments_reset,
|
int32_t n_segments_reset,
|
||||||
int n_segments_coeff) : gr::block("NotchLite",
|
int32_t n_segments_coeff) : gr::block("NotchLite",
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex)))
|
gr::io_signature::make(1, 1, sizeof(gr_complex)))
|
||||||
{
|
{
|
||||||
const int alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
|
const int32_t alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
|
||||||
set_alignment(std::max(1, alignment_multiple));
|
set_alignment(std::max(1, alignment_multiple));
|
||||||
set_history(2);
|
set_history(2);
|
||||||
this->p_c_factor = gr_complex(p_c_factor, 0);
|
this->p_c_factor = gr_complex(p_c_factor, 0.0);
|
||||||
this->n_segments_est = n_segments_est;
|
this->n_segments_est = n_segments_est;
|
||||||
this->n_segments_reset = n_segments_reset;
|
this->n_segments_reset = n_segments_reset;
|
||||||
this->n_segments_coeff_reset = n_segments_coeff;
|
this->n_segments_coeff_reset = n_segments_coeff;
|
||||||
@ -68,12 +68,12 @@ NotchLite::NotchLite(float p_c_factor,
|
|||||||
n_deg_fred = 2 * length_;
|
n_deg_fred = 2 * length_;
|
||||||
noise_pow_est = 0.0;
|
noise_pow_est = 0.0;
|
||||||
filter_state_ = false;
|
filter_state_ = false;
|
||||||
z_0 = gr_complex(0, 0);
|
z_0 = gr_complex(0.0, 0.0);
|
||||||
last_out = gr_complex(0, 0);
|
last_out = gr_complex(0.0, 0.0);
|
||||||
boost::math::chi_squared_distribution<float> my_dist_(n_deg_fred);
|
boost::math::chi_squared_distribution<float> my_dist_(n_deg_fred);
|
||||||
thres_ = boost::math::quantile(boost::math::complement(my_dist_, pfa));
|
thres_ = boost::math::quantile(boost::math::complement(my_dist_, pfa));
|
||||||
c_samples1 = gr_complex(0, 0);
|
c_samples1 = gr_complex(0.0, 0.0);
|
||||||
c_samples2 = gr_complex(0, 0);
|
c_samples2 = gr_complex(0.0, 0.0);
|
||||||
angle1 = 0.0;
|
angle1 = 0.0;
|
||||||
angle2 = 0.0;
|
angle2 = 0.0;
|
||||||
power_spect = static_cast<float *>(volk_malloc(length_ * sizeof(float), volk_get_alignment()));
|
power_spect = static_cast<float *>(volk_malloc(length_ * sizeof(float), volk_get_alignment()));
|
||||||
@ -89,7 +89,7 @@ NotchLite::~NotchLite()
|
|||||||
|
|
||||||
void NotchLite::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
|
void NotchLite::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
|
||||||
{
|
{
|
||||||
for (unsigned int aux = 0; aux < ninput_items_required.size(); aux++)
|
for (uint32_t aux = 0; aux < ninput_items_required.size(); aux++)
|
||||||
{
|
{
|
||||||
ninput_items_required[aux] = length_;
|
ninput_items_required[aux] = length_;
|
||||||
}
|
}
|
||||||
@ -99,7 +99,7 @@ void NotchLite::forecast(int noutput_items __attribute__((unused)), gr_vector_in
|
|||||||
int NotchLite::general_work(int noutput_items, gr_vector_int &ninput_items __attribute__((unused)),
|
int NotchLite::general_work(int noutput_items, gr_vector_int &ninput_items __attribute__((unused)),
|
||||||
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
|
gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
|
||||||
{
|
{
|
||||||
int index_out = 0;
|
int32_t index_out = 0;
|
||||||
float sig2dB = 0.0;
|
float sig2dB = 0.0;
|
||||||
float sig2lin = 0.0;
|
float sig2lin = 0.0;
|
||||||
lv_32fc_t dot_prod_;
|
lv_32fc_t dot_prod_;
|
||||||
@ -138,7 +138,7 @@ int NotchLite::general_work(int noutput_items, gr_vector_int &ninput_items __att
|
|||||||
float angle_ = (angle1 + angle2) / 2.0;
|
float angle_ = (angle1 + angle2) / 2.0;
|
||||||
z_0 = std::exp(gr_complex(0, 1) * angle_);
|
z_0 = std::exp(gr_complex(0, 1) * angle_);
|
||||||
}
|
}
|
||||||
for (int aux = 0; aux < length_; aux++)
|
for (int32_t aux = 0; aux < length_; aux++)
|
||||||
{
|
{
|
||||||
*(out + aux) = *(in + aux) - z_0 * (*(in + aux - 1)) + p_c_factor * z_0 * last_out;
|
*(out + aux) = *(in + aux) - z_0 * (*(in + aux - 1)) + p_c_factor * z_0 * last_out;
|
||||||
last_out = *(out + aux);
|
last_out = *(out + aux);
|
||||||
|
@ -34,13 +34,14 @@
|
|||||||
#include <boost/shared_ptr.hpp>
|
#include <boost/shared_ptr.hpp>
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
#include <gnuradio/fft/fft.h>
|
#include <gnuradio/fft/fft.h>
|
||||||
|
#include <cstdint>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
class NotchLite;
|
class NotchLite;
|
||||||
|
|
||||||
typedef boost::shared_ptr<NotchLite> notch_lite_sptr;
|
typedef boost::shared_ptr<NotchLite> notch_lite_sptr;
|
||||||
|
|
||||||
notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int length_, int n_segments_est, int n_segments_reset, int n_segments_coeff);
|
notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset, int32_t n_segments_coeff);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This class implements a real-time software-defined multi state notch filter light version
|
* \brief This class implements a real-time software-defined multi state notch filter light version
|
||||||
@ -49,13 +50,13 @@ notch_lite_sptr make_notch_filter_lite(float p_c_factor, float pfa, int length_,
|
|||||||
class NotchLite : public gr::block
|
class NotchLite : public gr::block
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
int length_;
|
int32_t length_;
|
||||||
int n_segments;
|
int32_t n_segments;
|
||||||
int n_segments_est;
|
int32_t n_segments_est;
|
||||||
int n_segments_reset;
|
int32_t n_segments_reset;
|
||||||
int n_segments_coeff_reset;
|
int32_t n_segments_coeff_reset;
|
||||||
int n_segments_coeff;
|
int32_t n_segments_coeff;
|
||||||
int n_deg_fred;
|
int32_t n_deg_fred;
|
||||||
float pfa;
|
float pfa;
|
||||||
float thres_;
|
float thres_;
|
||||||
float noise_pow_est;
|
float noise_pow_est;
|
||||||
@ -71,7 +72,7 @@ private:
|
|||||||
std::unique_ptr<gr::fft::fft_complex> d_fft;
|
std::unique_ptr<gr::fft::fft_complex> d_fft;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NotchLite(float p_c_factor, float pfa, int length_, int n_segments_est, int n_segments_reset, int n_segments_coeff);
|
NotchLite(float p_c_factor, float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset, int32_t n_segments_coeff);
|
||||||
|
|
||||||
~NotchLite();
|
~NotchLite();
|
||||||
|
|
||||||
|
@ -37,21 +37,21 @@
|
|||||||
|
|
||||||
using google::LogMessage;
|
using google::LogMessage;
|
||||||
|
|
||||||
pulse_blanking_cc_sptr make_pulse_blanking_cc(float pfa, int length_,
|
pulse_blanking_cc_sptr make_pulse_blanking_cc(float pfa, int32_t length_,
|
||||||
int n_segments_est, int n_segments_reset)
|
int32_t n_segments_est, int32_t n_segments_reset)
|
||||||
{
|
{
|
||||||
return pulse_blanking_cc_sptr(new pulse_blanking_cc(pfa, length_, n_segments_est, n_segments_reset));
|
return pulse_blanking_cc_sptr(new pulse_blanking_cc(pfa, length_, n_segments_est, n_segments_reset));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pulse_blanking_cc::pulse_blanking_cc(float pfa,
|
pulse_blanking_cc::pulse_blanking_cc(float pfa,
|
||||||
int length_,
|
int32_t length_,
|
||||||
int n_segments_est,
|
int32_t n_segments_est,
|
||||||
int n_segments_reset) : gr::block("pulse_blanking_cc",
|
int32_t n_segments_reset) : gr::block("pulse_blanking_cc",
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
gr::io_signature::make(1, 1, sizeof(gr_complex)),
|
||||||
gr::io_signature::make(1, 1, sizeof(gr_complex)))
|
gr::io_signature::make(1, 1, sizeof(gr_complex)))
|
||||||
{
|
{
|
||||||
const int alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
|
const int32_t alignment_multiple = volk_get_alignment() / sizeof(gr_complex);
|
||||||
set_alignment(std::max(1, alignment_multiple));
|
set_alignment(std::max(1, alignment_multiple));
|
||||||
this->pfa = pfa;
|
this->pfa = pfa;
|
||||||
this->length_ = length_;
|
this->length_ = length_;
|
||||||
@ -64,9 +64,9 @@ pulse_blanking_cc::pulse_blanking_cc(float pfa,
|
|||||||
boost::math::chi_squared_distribution<float> my_dist_(n_deg_fred);
|
boost::math::chi_squared_distribution<float> my_dist_(n_deg_fred);
|
||||||
thres_ = boost::math::quantile(boost::math::complement(my_dist_, pfa));
|
thres_ = boost::math::quantile(boost::math::complement(my_dist_, pfa));
|
||||||
zeros_ = static_cast<gr_complex *>(volk_malloc(length_ * sizeof(gr_complex), volk_get_alignment()));
|
zeros_ = static_cast<gr_complex *>(volk_malloc(length_ * sizeof(gr_complex), volk_get_alignment()));
|
||||||
for (int aux = 0; aux < length_; aux++)
|
for (int32_t aux = 0; aux < length_; aux++)
|
||||||
{
|
{
|
||||||
zeros_[aux] = gr_complex(0, 0);
|
zeros_[aux] = gr_complex(0.0, 0.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ pulse_blanking_cc::~pulse_blanking_cc()
|
|||||||
|
|
||||||
void pulse_blanking_cc::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
|
void pulse_blanking_cc::forecast(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items_required)
|
||||||
{
|
{
|
||||||
for (unsigned int aux = 0; aux < ninput_items_required.size(); aux++)
|
for (uint32_t aux = 0; aux < ninput_items_required.size(); aux++)
|
||||||
{
|
{
|
||||||
ninput_items_required[aux] = length_;
|
ninput_items_required[aux] = length_;
|
||||||
}
|
}
|
||||||
@ -93,7 +93,7 @@ int pulse_blanking_cc::general_work(int noutput_items, gr_vector_int &ninput_ite
|
|||||||
gr_complex *out = reinterpret_cast<gr_complex *>(output_items[0]);
|
gr_complex *out = reinterpret_cast<gr_complex *>(output_items[0]);
|
||||||
float *magnitude = static_cast<float *>(volk_malloc(noutput_items * sizeof(float), volk_get_alignment()));
|
float *magnitude = static_cast<float *>(volk_malloc(noutput_items * sizeof(float), volk_get_alignment()));
|
||||||
volk_32fc_magnitude_squared_32f(magnitude, in, noutput_items);
|
volk_32fc_magnitude_squared_32f(magnitude, in, noutput_items);
|
||||||
int sample_index = 0;
|
int32_t sample_index = 0;
|
||||||
float segment_energy;
|
float segment_energy;
|
||||||
while ((sample_index + length_) < noutput_items)
|
while ((sample_index + length_) < noutput_items)
|
||||||
{
|
{
|
||||||
|
@ -33,22 +33,23 @@
|
|||||||
|
|
||||||
#include <boost/shared_ptr.hpp>
|
#include <boost/shared_ptr.hpp>
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
class pulse_blanking_cc;
|
class pulse_blanking_cc;
|
||||||
|
|
||||||
typedef boost::shared_ptr<pulse_blanking_cc> pulse_blanking_cc_sptr;
|
typedef boost::shared_ptr<pulse_blanking_cc> pulse_blanking_cc_sptr;
|
||||||
|
|
||||||
pulse_blanking_cc_sptr make_pulse_blanking_cc(float pfa, int length_, int n_segments_est, int n_segments_reset);
|
pulse_blanking_cc_sptr make_pulse_blanking_cc(float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset);
|
||||||
|
|
||||||
|
|
||||||
class pulse_blanking_cc : public gr::block
|
class pulse_blanking_cc : public gr::block
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
int length_;
|
int32_t length_;
|
||||||
int n_segments;
|
int32_t n_segments;
|
||||||
int n_segments_est;
|
int32_t n_segments_est;
|
||||||
int n_segments_reset;
|
int32_t n_segments_reset;
|
||||||
int n_deg_fred;
|
int32_t n_deg_fred;
|
||||||
bool last_filtered;
|
bool last_filtered;
|
||||||
float noise_power_estimation;
|
float noise_power_estimation;
|
||||||
float thres_;
|
float thres_;
|
||||||
@ -56,7 +57,7 @@ private:
|
|||||||
gr_complex *zeros_;
|
gr_complex *zeros_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
pulse_blanking_cc(float pfa, int length_, int n_segments_est, int n_segments_reset);
|
pulse_blanking_cc(float pfa, int32_t length_, int32_t n_segments_est, int32_t n_segments_reset);
|
||||||
|
|
||||||
~pulse_blanking_cc();
|
~pulse_blanking_cc();
|
||||||
|
|
||||||
|
@ -268,7 +268,7 @@ uint64_t Galileo_Navigation_Message::read_navigation_unsigned(std::bitset<GALILE
|
|||||||
{
|
{
|
||||||
for (int32_t j = 0; j < parameter[i].second; j++)
|
for (int32_t j = 0; j < parameter[i].second; j++)
|
||||||
{
|
{
|
||||||
value <<= 1; //shift left
|
value <<= 1; // shift left
|
||||||
if (bits[GALILEO_DATA_JK_BITS - parameter[i].first - j] == 1)
|
if (bits[GALILEO_DATA_JK_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1; // insert the bit
|
||||||
@ -287,7 +287,7 @@ uint64_t Galileo_Navigation_Message::read_page_type_unsigned(std::bitset<GALILEO
|
|||||||
{
|
{
|
||||||
for (int32_t j = 0; j < parameter[i].second; j++)
|
for (int32_t j = 0; j < parameter[i].second; j++)
|
||||||
{
|
{
|
||||||
value <<= 1; //shift left
|
value <<= 1; // shift left
|
||||||
if (bits[GALILEO_PAGE_TYPE_BITS - parameter[i].first - j] == 1)
|
if (bits[GALILEO_PAGE_TYPE_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1; // insert the bit
|
||||||
|
@ -632,7 +632,7 @@ Gps_Iono Gps_Navigation_Message::get_iono()
|
|||||||
iono.d_beta2 = d_beta2;
|
iono.d_beta2 = d_beta2;
|
||||||
iono.d_beta3 = d_beta3;
|
iono.d_beta3 = d_beta3;
|
||||||
iono.valid = flag_iono_valid;
|
iono.valid = flag_iono_valid;
|
||||||
//WARNING: We clear flag_utc_model_valid in order to not re-send the same information to the ionospheric parameters queue
|
// WARNING: We clear flag_utc_model_valid in order to not re-send the same information to the ionospheric parameters queue
|
||||||
flag_iono_valid = false;
|
flag_iono_valid = false;
|
||||||
return iono;
|
return iono;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user