Mathematics

advertisement
Instructor: Dr.George Collins
Satyakiran Anugu
Introduction
Why Mathematics in GNU Radio
Creating block
Pyhthon
Mathematical operators in Python
Mathematical classes
Conclusion
References
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.
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.
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.
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
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
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
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
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
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.
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
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
gr_conjugate_cc
Complex conjugate of input
gr_nlog10_ff
Output= n*log10(input)+k
gr_random
Pseudo random number is generated
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+constant
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
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
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
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
Mathematical operators application in GNU Radio is
discussed.
Mathematics is nothing but one of many signal
processing block used
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
Thank You
Download