GNU Radio Radar Toolbox
os_cfar_2d_vc.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* Copyright 2014 Communications Engineering Lab, KIT.
4
*
5
* This is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 3, or (at your option)
8
* any later version.
9
*
10
* This software is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this software; see the file COPYING. If not, write to
17
* the Free Software Foundation, Inc., 51 Franklin Street,
18
* Boston, MA 02110-1301, USA.
19
*/
20
21
22
#ifndef INCLUDED_RADAR_OS_CFAR_2D_VC_H
23
#define INCLUDED_RADAR_OS_CFAR_2D_VC_H
24
25
#include <gnuradio/tagged_stream_block.h>
26
#include <
radar/api.h
>
27
28
namespace
gr
{
29
namespace
radar {
30
31
/*!
32
* \brief This block estimates peaks of a given matrix. A matrix can be represented as a
33
* combination of vectors and tagged streams. Input has to be a matrix with linear scaled
34
* values (NOT logarithmic scaled!). Used algorithm is a 2D OS-CFAR algorithm. The
35
* algorithm uses around the cell under test (CUT) on each side samp_compare samples to
36
* estimate the noise floor. samp_protect is a protected are around the CUT which is not
37
* used for acquiring compare samples. Index 0 of a input vector refers to x axis
38
* properties and index 1 refers to y axis properties. The relative threshold is defined
39
* by the bin of the vector within the sorted samp_compare samples. A standard value is
40
* rel_threshold = 0.78. The value of this bin is multiplied by mult_threshold and
41
* compared with the CUT. If the magnitude square of the CUT is greater than the threshold
42
* the matrix item is accepted. Used identifiers (symbols) for data are 'axis_x', 'axis_y'
43
* and 'power'.
44
*
45
* \param vlen Input vector length
46
* \param samp_compare Compare samples (vector index refers to axis)
47
* \param samp_protect Protected samples (vector index refers to axis)
48
* \param rel_threshold Relative threshold
49
* \param mult_threshold Multiplier threshold
50
* \param len_key Packet length key for tagged stream
51
*
52
* \ingroup radar
53
*
54
*/
55
class
RADAR_API
os_cfar_2d_vc
:
virtual
public
gr::tagged_stream_block
56
{
57
public
:
58
typedef
boost::shared_ptr<os_cfar_2d_vc>
sptr
;
59
60
/*!
61
* \brief Return a shared_ptr to a new instance of radar::os_cfar_2d_vc.
62
*
63
* To avoid accidental use of raw pointers, radar::os_cfar_2d_vc's
64
* constructor is in a private implementation
65
* class. radar::os_cfar_2d_vc::make is the public interface for
66
* creating new instances.
67
*/
68
static
sptr
make
(
int
vlen,
69
std::vector<int> samp_compare,
70
std::vector<int> samp_protect,
71
float
rel_threshold,
72
float
mult_threshold,
73
const
std::string& len_key =
"packet_len"
);
74
virtual
void
set_rel_threshold
(
float
inp) = 0;
75
virtual
void
set_mult_threshold
(
float
inp) = 0;
76
virtual
void
set_samp_compare
(std::vector<int> inp) = 0;
77
virtual
void
set_samp_protect
(std::vector<int> inp) = 0;
78
};
79
80
}
// namespace radar
81
}
// namespace gr
82
83
#endif
/* INCLUDED_RADAR_OS_CFAR_2D_VC_H */
gr::radar::os_cfar_2d_vc::set_mult_threshold
virtual void set_mult_threshold(float inp)=0
gr::radar::os_cfar_2d_vc
This block estimates peaks of a given matrix. A matrix can be represented as a combination of vectors...
Definition:
os_cfar_2d_vc.h:56
gr::radar::os_cfar_2d_vc::make
static sptr make(int vlen, std::vector< int > samp_compare, std::vector< int > samp_protect, float rel_threshold, float mult_threshold, const std::string &len_key="packet_len")
Return a shared_ptr to a new instance of radar::os_cfar_2d_vc.
gr::radar::os_cfar_2d_vc::sptr
boost::shared_ptr< os_cfar_2d_vc > sptr
Definition:
os_cfar_2d_vc.h:58
gr::radar::os_cfar_2d_vc::set_rel_threshold
virtual void set_rel_threshold(float inp)=0
RADAR_API
#define RADAR_API
Definition:
api.h:31
gr
Definition:
crop_matrix_vcvc.h:28
gr::radar::os_cfar_2d_vc::set_samp_compare
virtual void set_samp_compare(std::vector< int > inp)=0
gr::radar::os_cfar_2d_vc::set_samp_protect
virtual void set_samp_protect(std::vector< int > inp)=0
api.h
include
radar
os_cfar_2d_vc.h
Generated by
1.8.18