20 #ifndef GNSS_SDR_NOTCH_LITE_H 21 #define GNSS_SDR_NOTCH_LITE_H 23 #if GNURADIO_USES_STD_POINTERS 25 #include <boost/shared_ptr.hpp> 27 #include <gnuradio/block.h> 28 #include <gnuradio/fft/fft.h> 29 #include <volk_gnsssdr/volk_gnsssdr_alloc.h> 35 #if GNURADIO_USES_STD_POINTERS 36 using notch_lite_sptr = std::shared_ptr<NotchLite>;
38 using notch_lite_sptr = boost::shared_ptr<NotchLite>;
41 notch_lite_sptr make_notch_filter_lite(
45 int32_t n_segments_est,
46 int32_t n_segments_reset,
47 int32_t n_segments_coeff);
57 void forecast(
int noutput_items, gr_vector_int &ninput_items_required);
59 int general_work(
int noutput_items, gr_vector_int &ninput_items,
60 gr_vector_const_void_star &input_items,
61 gr_vector_void_star &output_items);
64 friend 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);
65 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);
66 std::unique_ptr<gr::fft::fft_complex> d_fft;
67 volk_gnsssdr::vector<float> power_spect;
70 gr_complex p_c_factor;
71 gr_complex c_samples1;
72 gr_complex c_samples2;
80 int32_t n_segments_est;
81 int32_t n_segments_reset;
82 int32_t n_segments_coeff_reset;
83 int32_t n_segments_coeff;
88 #endif // GNSS_SDR_NOTCH_LITE_H This class implements a real-time software-defined multi state notch filter light version...