GNU Radio Radar Toolbox
estimator_rcs.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_ESTIMATOR_RCS_H
23
#define INCLUDED_RADAR_ESTIMATOR_RCS_H
24
25
#include <gnuradio/block.h>
26
#include <
radar/api.h
>
27
28
namespace
gr
{
29
namespace
radar {
30
31
/*!
32
* \brief Basic RCS block for estimating the RCS of a single target. Some hardware specs
33
need to be known for calculating RCS values, see parameters for details. The radar
34
equation is used to calculate the RCS: RCS = Pr*(4pi)^3*R^4/(Pt*Gt*Gr*lamda^2). The Rx
35
power (Pr) and the distance (R) are being estimated, while the other parameters are given
36
in the flowgraph. It is possible to average a number of samples by setting the num_mean
37
value > 1. The RCS will be 0 until enough samples are collected to calculate the mean
38
value (be patient). The Tx power (Pt) needs to be calibrated with external hardware. I
39
recommend to calibrate for the wanted power and not to change the parameters in the
40
flowgraph on the Tx side after that. The RCS block needs the Rx power, to estimate the
41
RCS. For that, the input power of the block needs to be determined analytically and
42
altered via the corr_factor and exponent values, to fit the following equation: Pr =
43
P_input ^ (exponent) * corr_factor / Pt. In addition, the FFTs need to be normalized for
44
correct power calculation.
45
*
46
* \param num_mean Number of samples taken into account for calculating mean value (1 for
47
no mean calculation)
48
* \param center_freq Center frequency of radar
49
* \param antenna_gain_tx Antenna Gain of the Tx antenna
50
* \param antenna_gain_rx Antenna Gain of the Rx antenna
51
* \param usrp_gain_rx Rx gain of USRP set in flowgraph
52
* \param power_tx Tx power of radar signal. Needs to be measured one time!
53
* \param corr_factor Correction factor for the RCS to calibrate system to a known target
54
or special signal paths
55
* \param exponent Exponent of the input power to calculate Rx power, depends on signal
56
path (calculate analytically)
57
*
58
* \ingroup radar
59
*
60
*/
61
class
RADAR_API
estimator_rcs
:
virtual
public
gr::block
62
{
63
public
:
64
typedef
boost::shared_ptr<estimator_rcs>
sptr
;
65
66
/*!
67
* \brief Return a shared_ptr to a new instance of radar::estimator_rcs.
68
*
69
* To avoid accidental use of raw pointers, radar::estimator_rcs's
70
* constructor is in a private implementation
71
* class. radar::estimator_rcs::make is the public interface for
72
* creating new instances.
73
*/
74
static
sptr
make
(
int
num_mean,
75
float
center_freq,
76
float
antenna_gain_tx,
77
float
antenna_gain_rx,
78
float
usrp_gain_rx,
79
float
power_tx,
80
float
corr_factor,
81
float
exponent = 1);
82
// callbacks
83
virtual
void
set_num_mean
(
int
val) = 0;
84
virtual
void
set_center_freq
(
float
val) = 0;
85
virtual
void
set_antenna_gain_tx
(
float
val) = 0;
86
virtual
void
set_antenna_gain_rx
(
float
val) = 0;
87
virtual
void
set_usrp_gain_rx
(
float
val) = 0;
88
virtual
void
set_power_tx
(
float
val) = 0;
89
virtual
void
set_corr_factor
(
float
val) = 0;
90
};
91
92
}
// namespace radar
93
}
// namespace gr
94
95
#endif
/* INCLUDED_RADAR_ESTIMATOR_RCS_H */
gr::radar::estimator_rcs
Basic RCS block for estimating the RCS of a single target. Some hardware specs need to be known for c...
Definition:
estimator_rcs.h:62
RADAR_API
#define RADAR_API
Definition:
api.h:31
gr::radar::estimator_rcs::set_antenna_gain_tx
virtual void set_antenna_gain_tx(float val)=0
gr::radar::estimator_rcs::set_antenna_gain_rx
virtual void set_antenna_gain_rx(float val)=0
gr::radar::estimator_rcs::set_corr_factor
virtual void set_corr_factor(float val)=0
gr::radar::estimator_rcs::make
static sptr make(int num_mean, float center_freq, float antenna_gain_tx, float antenna_gain_rx, float usrp_gain_rx, float power_tx, float corr_factor, float exponent=1)
Return a shared_ptr to a new instance of radar::estimator_rcs.
gr::radar::estimator_rcs::set_center_freq
virtual void set_center_freq(float val)=0
gr
Definition:
crop_matrix_vcvc.h:28
gr::radar::estimator_rcs::set_power_tx
virtual void set_power_tx(float val)=0
gr::radar::estimator_rcs::set_num_mean
virtual void set_num_mean(int val)=0
gr::radar::estimator_rcs::set_usrp_gain_rx
virtual void set_usrp_gain_rx(float val)=0
gr::radar::estimator_rcs::sptr
boost::shared_ptr< estimator_rcs > sptr
Definition:
estimator_rcs.h:64
api.h
include
radar
estimator_rcs.h
Generated by
1.8.18