Frequency Mod: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(Created page with "Category:Block Docs Category:Stub Docs This is the template for the "Page-per-block Docs". This first section should describe what the block...")
 
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Block Docs]]
[[Category:Block Docs]]
[[Category:Stub Docs]]
This block is an input amplitude controlled complex sineIt outputs a signal, which has a momentary phase increase that is proportional to sensitivity and input amplitude.
This is the template for the [[:Category:Block_Docs|"Page-per-block Docs"]]This first section should describe what the block does and how to use it, using however many paragraphs necessary.  Note that the title of the wiki page should match the block's name in GRC, i.e. the one defined in the block's .grc file.  Look at the [[FFT]] Block for a good example.


As this is a basic template, it's also in the [[:Category:Stub_Docs|"Stub Docs category"]]. Please improve it.
More specifically, takes a real, baseband signal (x_m[n]) and output a frequency modulated signal (y[n]) according to:
 
[[File:freq-mod-1.png|150px]]
 
Where x[n] is the input sample at time n and  <math>f_{\Delta}</math>  is the frequency deviation. Common values for <math>f_{\Delta}</math> are 5 kHz for narrowband FM channels such as for voice systems and 75 kHz for wideband FM, like audio broadcast FM stations.  In this block, the input argument is sensitivity, not the frequency deviation. The sensitivity specifies how much the phase changes based on the new input sample. Given a maximum deviation <math>f_{\Delta}</math>, and sample rate <math>f_s</math>, the sensitivity is defined as:
 
[[File:freq-mod-2.png|50px]]


== Parameters ==
== Parameters ==
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span>
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span>


; Param 1 (''R'')
; Sensitivity (''R'')
: Description of parameter, provide any tips or recommended values. Note that the name of the parameter above should match the param's label that shows up in grc (e.g. Sample Rate).
: Sensitivity = (2 * math.pi * deviation) / sample_rate
 
: where 'deviation' is the change of the frequency when the input is at the values of -1 or +1. If the input is outside [-1, +1], it can deviate more.
; Param 2
: blah blah blah


== Example Flowgraph ==
== Example Flowgraph ==


Insert description of flowgraph here, then show a screenshot of the flowgraph and the output if there is an interesting GUI.  Currently we have no standard method of uploading the actual flowgraph to the wiki or git repo, unfortunately.  The plan is to have an example flowgraph showing how the block might be used, for every block, and the flowgraphs will live in the git repo.
[[File:NFM_xmt_2_fg.png|800px]]


== Source Files ==
== Source Files ==


; C++ files
; C++ files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-analog/lib/frequency_modulator_fc_impl.cc frequency_modulator_fc_impl.cc]


; Header files
; Header files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-analog/lib/frequency_modulator_fc_impl.h frequency_modulator_fc_impl.h]


; Public header files
; Public header files
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-analog/include/gnuradio/analog/frequency_modulator_fc.h frequency_modulator_fc.h]


; Block definition
; Block definition
: [https://github.com/gnuradio/gnuradio TODO]
: [https://github.com/gnuradio/gnuradio/blob/main/gr-analog/grc/analog_frequency_modulator_fc.block.yml analog_frequency_modulator_fc.block.yml]

Latest revision as of 15:03, 4 April 2024

This block is an input amplitude controlled complex sine. It outputs a signal, which has a momentary phase increase that is proportional to sensitivity and input amplitude.

More specifically, takes a real, baseband signal (x_m[n]) and output a frequency modulated signal (y[n]) according to:

Freq-mod-1.png

Where x[n] is the input sample at time n and is the frequency deviation. Common values for are 5 kHz for narrowband FM channels such as for voice systems and 75 kHz for wideband FM, like audio broadcast FM stations. In this block, the input argument is sensitivity, not the frequency deviation. The sensitivity specifies how much the phase changes based on the new input sample. Given a maximum deviation , and sample rate , the sensitivity is defined as:

Freq-mod-2.png

Parameters

(R): Run-time adjustable

Sensitivity (R)
Sensitivity = (2 * math.pi * deviation) / sample_rate
where 'deviation' is the change of the frequency when the input is at the values of -1 or +1. If the input is outside [-1, +1], it can deviate more.

Example Flowgraph

NFM xmt 2 fg.png

Source Files

C++ files
frequency_modulator_fc_impl.cc
Header files
frequency_modulator_fc_impl.h
Public header files
frequency_modulator_fc.h
Block definition
analog_frequency_modulator_fc.block.yml