GNU Radio Manual and C++ API Reference  3.9.4.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  */
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