Instructor: Dr.George Collins Satyakiran Anugu. Introduction Why Mathematics in GNU Radio Creating...
Preview:
Citation preview
- Slide 1
- Instructor: Dr.George Collins Satyakiran Anugu
- Slide 2
- Introduction Why Mathematics in GNU Radio Creating block
Pyhthon Mathematical operators in Python Mathematical classes
Conclusion References
- Slide 3
- GNU Radio is a free software development toolkit that provides
the signal processing runtime and processing blocks to implement
software radios using readily-available, low-cost external RF
hardware and commodity processors. GNU Radio applications are
primarily written using the Python programming language, while the
supplied, performance-critical signal processing path is
implemented in C++ using processor floating point.
- Slide 4
- GNU Radio does support development of signal processing
algorithms using pre-recorded or generated data, avoiding the need
for actual RF hardware. GNU Radio is licensed under the GNU General
Public License (GPL) version 3. All of the code is copyright of the
Free Software Foundation.
- Slide 5
- GNU Radio provides a library of signal processing blocks and
the glue to tie it all together. The programmer builds a radio by
creating a graph where the vertices are signal processing
blocks(implemented in c++) and the edges represent the data flow
between them. Conceptually, blocks process infinite streams of data
flowing from their input ports to their output ports. Blocks'
attributes include the number of input and output ports they have
as well as the type of data that flows through each.
- Slide 6
- Some blocks have only output ports or input ports. These serve
as data sources and sinks in the graph. There are sources that read
from a file or ADC, and sinks that write to a file,
digital-to-analog converter (DAC) or graphical display. Graphs are
constructed and run in Python processing blocks in gnu radio
- Slide 7
- GNU Radio C++ Signal Processing Blocks Signal Sources Signal
Sinks Filters Mathematics Signal Modulation Signal Demodulation
Information Coding and Decoding Synchronization Equalization Type
Conversions Signal Level Control (AGC) Fourier Transform Wavelet
Transform OFDM Blocks Pager Blocks Miscellaneous Blocks Slicing and
Dicing Streams Voice Encoders and Decoders Base classes for GR
Blocks
- Slide 8
- Basics A block is a c++ block Typically derived from gr_block
or gr_sync_block class Three components my_block_xx.h: Block
definition my_block_xx.cc: Block implementation my_block_xx.i:
Python bindings
- Slide 9
- Why python Object oriented Free Mixable(python/c++) Python
scripts can be written in text files with the suffix.py Example: $
python script.py This will simply execute the script and return to
the terminal afterwards
- Slide 10
- Python defines the modulus operator so that the result of a % b
is in the open interval [0,b), where b is a positive integer. (When
b is negative, the result lies in the interval[b, 0]. Integer
division is defined to round towards minus infinity. This is
different from many programming languages, where the result of
integer division rounds towards zero
- Slide 11
- Python provides a round function for rounding floats to
integers Python allows boolean expressions with multiple equality
relations in a manner that is consistent with general usage in
mathematics.
- Slide 12
- Here are some commonly used mathematical operators a+b addition
a-b subtraction a*b multiplication a/b division a//b floor
division(e.g. 5//2=2) %b modulo -a negation abs(a) absolute value
a**b exponent math.sqrt(a) square root
- Slide 13
- Python uses the standard order of operations as taught in
Algebra and Geometry classes at high school or secondary school.
That is, mathematical expressions are evaluated in the following
order Parentheses(... ) Exponents** Multiplication andDivision * /
// % Addition andSubtraction
- Slide 14
- gr_conjugate_cc Complex conjugate of input gr_nlog10_ff Output=
n*log10(input)+k gr_random Pseudo random number is generated
- Slide 15
- gr_rms_ff Output is rms average power of input gr_add_cc Add
across all input streams Output= sum of(inpout_0, input_1)
gr_add_const_cc Output= input+constan t
- Slide 16
- gr_add_const_vcc output= input vector+ constant gr_and_bb
Output is defined as the bitwise boolean across all the inputs
gr_and_const_ii bitwise boolean and of constant to data stream
- Slide 17
- gr_divide_cc Divide across all the input streams
gr_integrate_cc Integrate successive samples in input stream and
decimate gr_multiply_cc multiply across all input streams
- Slide 18
- gr_multiply_const_cc output= input* constant
gr_multiply_const_vcc output vector= input vector* constant vector
gr_not_bb bitwise boolean not across the input stream
- Slide 19
- gr_or_bb Bitwise boolean or across the input stream gr_sub_cc
Subtract across all the input streams gr_xor_bb Bitwise boolean
across input stream
- Slide 20
- Mathematical operators application in GNU Radio is discussed.
Mathematics is nothing but one of many signal processing block
used
- Slide 21
- http://gnuradio.org/doc/doxygen/group__math__blk.ht ml
http://gnuradio.org/redmine/wiki/1/GNURadioCompani onOld
http://www.winlab.rutgers.edu/~therom/GNUradio_pyth
on_tutorial_20090609.pdf
http://gnuradio.org/doc/doxygen/group__math__blk.ht ml
http://www.winlab.rutgers.edu/~therom/GNUradio_pyth
on_tutorial_20090609.pdf
http://en.wikibooks.org/wiki/Python_Programming/Basi c_Math
- Slide 22
- Thank You