VCO: Difference between revisions
Jump to navigation
Jump to search
(revised explanation of frequency calculations) |
(moved complex source files to VCO (complex)) |
||
(One intermediate revision by the same user not shown) | |||
Line 34: | Line 34: | ||
; C++ files | ; C++ files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/main/gr-blocks/lib/vco_f_impl.cc vco_f_impl.cc] | ||
; Header files | ; Header files | ||
: [https://github.com/gnuradio/gnuradio | : [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 | : [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 | : [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]
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