VCO: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
(moved complex source files to VCO (complex))
 
(10 intermediate revisions by 2 users not shown)
Line 11: Line 11:


; Sensitivity
; Sensitivity
: units are radians/sec/volt
: units are radians/sec/(input unit)


; Amplitude
; Amplitude
Line 18: Line 18:
== 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  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 ==
== 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