GNU Radio Manual and C++ API Reference
3.9.1.0
The Free & Open Software Radio Ecosystem
frequency_modulator_fc.h
Go to the documentation of this file.
1
/* -*- c++ -*- */
2
/*
3
* Copyright 2004,2012 Free Software Foundation, Inc.
4
*
5
* This file is part of GNU Radio
6
*
7
* SPDX-License-Identifier: GPL-3.0-or-later
8
*
9
*/
10
11
#ifndef INCLUDED_ANALOG_FREQUENCY_MODULATOR_FC_H
12
#define INCLUDED_ANALOG_FREQUENCY_MODULATOR_FC_H
13
14
#include <
gnuradio/analog/api.h
>
15
#include <
gnuradio/sync_block.h
>
16
17
namespace
gr
{
18
namespace
analog {
19
20
/*!
21
* \brief Frequency modulator block
22
* \ingroup modulators_blk
23
*
24
* \details
25
* float input; complex baseband output
26
*
27
* Takes a real, baseband signal (x_m[n]) and output a frequency
28
* modulated signal (y[n]) according to:
29
*
30
* \f[
31
* y[n] = exp (j 2 \pi \frac{f_{\Delta}}{f_s} \sum{x[n]})
32
* \f]
33
*
34
* Where x[n] is the input sample at time n and \f$ f_{\Delta} \f$
35
* is the frequency deviation. Common values for \f$ f_{\Delta}
36
* \f$ are 5 kHz for narrowband FM channels such as for voice
37
* systems and 75 KHz for wideband FM, like audio broadcast FM
38
* stations.
39
*
40
* In this block, the input argument is \p sensitivity, not the
41
* frequency deviation. The sensitivity specifies how much the
42
* phase changes based on the new input sample. Given a maximum
43
* deviation, \f$ f_{\Delta} \f$, and sample rate \f$f_s\f$, the
44
* sensitivity is defined as:
45
*
46
* \f[
47
* k = 2 \pi \frac{f_{\Delta}}{f_s}
48
* \f]
49
*/
50
class
ANALOG_API
frequency_modulator_fc
:
virtual
public
sync_block
51
{
52
public
:
53
// gr::analog::frequency_modulator_fc::sptr
54
typedef
std::shared_ptr<frequency_modulator_fc>
sptr
;
55
56
/*!
57
* Build a frequency modulator block.
58
*
59
* \param sensitivity radians/sample = amplitude * sensitivity
60
*/
61
static
sptr
make(
float
sensitivity);
62
63
virtual
void
set_sensitivity(
float
sens) = 0;
64
virtual
float
sensitivity()
const
= 0;
65
};
66
67
}
/* namespace analog */
68
}
/* namespace gr */
69
70
#endif
/* INCLUDED_ANALOG_FREQUENCY_MODULATOR_FC_H */
ANALOG_API
#define ANALOG_API
Definition:
gr-analog/include/gnuradio/analog/api.h:18
gr::sync_block
synchronous 1:1 input to output with history
Definition:
sync_block.h:25
sync_block.h
gr::analog::frequency_modulator_fc
Frequency modulator block.
Definition:
frequency_modulator_fc.h:50
gr
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition:
basic_block.h:29
api.h
gr::analog::frequency_modulator_fc::sptr
std::shared_ptr< frequency_modulator_fc > sptr
Definition:
frequency_modulator_fc.h:54
gr-analog
include
gnuradio
analog
frequency_modulator_fc.h
Generated by
1.8.17