GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
pulse_blanking_cc.h
Go to the documentation of this file.
1/*!
2 * \file pulse_blanking_cc.h
3 * \brief Implements a pulse blanking algorithm
4 * \author Javier Arribas (jarribas(at)cttc.es)
5 * Antonio Ramos (antonio.ramosdet(at)gmail.com)
6 *
7 * -----------------------------------------------------------------------------
8 *
9 * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
10 * This file is part of GNSS-SDR.
11 *
12 * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
13 * SPDX-License-Identifier: GPL-3.0-or-later
14 *
15 * -----------------------------------------------------------------------------
16 *
17 */
18
19#ifndef GNSS_SDR_PULSE_BLANKING_CC_H
20#define GNSS_SDR_PULSE_BLANKING_CC_H
21
23#include <gnuradio/block.h>
24#include <volk_gnsssdr/volk_gnsssdr_alloc.h> // for volk_gnsssdr::vector
25#include <cstdint>
26
27/** \addtogroup Input_Filter
28 * \{ */
29/** \addtogroup Input_filter_gnuradio_blocks input_filter_gr_blocks
30 * GNU Radio blocks implementing input filters,
31 * \{ */
32
33
35
36using pulse_blanking_cc_sptr = gnss_shared_ptr<pulse_blanking_cc>;
37
38pulse_blanking_cc_sptr make_pulse_blanking_cc(
39 float pfa,
40 int32_t length,
41 int32_t n_segments_est,
42 int32_t n_segments_reset);
43
44class pulse_blanking_cc : public gr::block
45{
46public:
47 ~pulse_blanking_cc() = default;
48
49 int general_work(int noutput_items __attribute__((unused)), gr_vector_int &ninput_items __attribute__((unused)),
50 gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
51
52private:
53 friend pulse_blanking_cc_sptr make_pulse_blanking_cc(float pfa, int32_t length, int32_t n_segments_est, int32_t n_segments_reset);
54 pulse_blanking_cc(float pfa, int32_t length, int32_t n_segments_est, int32_t n_segments_reset);
55 volk_gnsssdr::vector<gr_complex> zeros_;
56 float noise_power_estimation_;
57 float thres_;
58 float pfa_;
59 int32_t length_;
60 int32_t n_segments_;
61 int32_t n_segments_est_;
62 int32_t n_segments_reset_;
63 int32_t n_deg_fred_;
64 bool last_filtered_;
65};
66
67
68/** \} */
69/** \} */
70#endif // GNSS_SDR_PULSE_BLANKING_CC_H
This interface represents a GNSS block.