22
GNU RADIO AND MATHEMATICS Instructor: Dr.George Collins Satyakiran Anugu

Instructor: Dr.George Collins Satyakiran Anugu. Introduction Why Mathematics in GNU Radio Creating block Pyhthon Mathematical operators in Python Mathematical

Embed Size (px)

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