VCO: 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...")
 
(moved complex source files to VCO (complex))
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Block Docs]]
[[Category:Block Docs]]
[[Category:Stub Docs]]
VCO - Voltage controlled oscillatorProduces a sinusoid of frequency based on the amplitude of the inputSee [[VCO (complex)]] for a complex sinusoidal output.  
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 fileLook 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.
input: float stream of control voltages;
 
output: float oscillator output


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


; Param 1 (''R'')
; Sensitivity
: 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).
: units are radians/sec/(input unit)


; Param 2
; Amplitude
: blah blah blah
: output amplitude


== 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.
This flowgraph can be found at [https://github.com/duggabe/gr-RTTY-basics/tree/master/RTTY_xmt]
 
[[File:RTTY_vco_fg.png]]
 
For this flowgraph, the standard RTTY tones of 2295 (mark) and 2125 (space) are generated. The calculations for this follow:
 
* Choosing a full-scale frequency of 2500Hz with an input of +1.0, the VCO Sensitivity = (2 * math.pi * 2500 / 1.0) = 15708
* At the output of the Low Pass Filter, a Mark has a value of +1.0 and a Space has a value of 0.0
* When the output of the Low Pass Filter is +1.0, the input of the VCO is (1.0 * 0.068) + 0.850 = 0.918&nbsp;&nbsp;That generates a frequency of 0.918 * 2500 => 2295
* When the output of the Low Pass Filter is 0.0, the input of the VCO is (0.0 * 0.068) + 0.850 = 0.850&nbsp;&nbsp;That generates a frequency of 0.850 * 2500 => 2125
 
See [[Sample_Rate_Tutorial#Sink_hardware_example]] for a discussion of the timing involved in a similar flowgraph.


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


; C++ fileshttps://wiki.gnuradio.org/index.php/SISO
; C++ files
 
: [https://github.com/gnuradio/gnuradio/blob/main/gr-blocks/lib/vco_f_impl.cc vco_f_impl.cc]
: [https://github.com/gnuradio/gnuradio TODO]


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


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


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

Latest revision as of 13:31, 13 April 2024

VCO - Voltage controlled oscillator. Produces a sinusoid of frequency based on the amplitude of the input. See VCO (complex) for a complex sinusoidal output.

input: float stream of control voltages;

output: float oscillator output

Parameters

Sample Rate
sampling rate (Hz)
Sensitivity
units are radians/sec/(input unit)
Amplitude
output amplitude

Example Flowgraph

This flowgraph can be found at [1]

RTTY vco fg.png

For this flowgraph, the standard RTTY tones of 2295 (mark) and 2125 (space) are generated. The calculations for this follow:

  • Choosing a full-scale frequency of 2500Hz with an input of +1.0, the VCO Sensitivity = (2 * math.pi * 2500 / 1.0) = 15708
  • At the output of the Low Pass Filter, a Mark has a value of +1.0 and a Space has a value of 0.0
  • When the output of the Low Pass Filter is +1.0, the input of the VCO is (1.0 * 0.068) + 0.850 = 0.918  That generates a frequency of 0.918 * 2500 => 2295
  • When the output of the Low Pass Filter is 0.0, the input of the VCO is (0.0 * 0.068) + 0.850 = 0.850  That generates a frequency of 0.850 * 2500 => 2125

See Sample_Rate_Tutorial#Sink_hardware_example for a discussion of the timing involved in a similar flowgraph.

Source Files

C++ files
vco_f_impl.cc
Header files
vco_f_impl.h
Public header files
vco_f.h
Block definition
blocks_vco_f.block.yml