GNU Radio Manual and C++ API Reference 3.10.5.1
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
17namespace gr {
18namespace 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{
52public:
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 */
Frequency modulator block.
Definition: frequency_modulator_fc.h:51
std::shared_ptr< frequency_modulator_fc > sptr
Definition: frequency_modulator_fc.h:54
virtual void set_sensitivity(float sens)=0
static sptr make(float sensitivity)
virtual float sensitivity() const =0
synchronous 1:1 input to output with history
Definition: sync_block.h:26
#define ANALOG_API
Definition: gr-analog/include/gnuradio/analog/api.h:18
GNU Radio logging wrapper.
Definition: basic_block.h:29