170 likes | 392 Views
INSTRUCTOR: Dr.COLLINS. TYPE CONVERSION IN GNU RADIO. Presented by Chandan Gutta. Overview:. INTRODUCTION 3 TIRE ARCHITECTURE TYPE CONVERSION VARIOUS CLASSES CONCLUSION REFERENCES. INTRODUCTION.
E N D
INSTRUCTOR: Dr.COLLINS TYPE CONVERSION IN GNU RADIO Presented by Chandan Gutta
Overview: • INTRODUCTION • 3 TIRE ARCHITECTURE • TYPE CONVERSION • VARIOUS CLASSES • CONCLUSION • REFERENCES
INTRODUCTION • GNU Radio is a software toolkit for learning about, building, and deploying software-defined radio systems • GNU Radio is an open source software toolkit • It Supports, Linux, Mac OS and Windows • Creating signal processing applications • Defining and Processing waveforms in software • A hardware platform • USRP, low cost HW platform for • Preprocessing(ADC &DAC; FPGA; USB 2.0 Interface to Host PC)
GNU Radio provides a library of signal processing blocks and the glue to • tie it all together. • The application of Python • Using Python for creating flow graphs • Also used for creating GUI’s and other non performance critical • applications • The application of C++ • Performance critical applications • Signal processing blocks like the FM demodulator • C++ class "‘gr_block"’ is base for all signal processing blocks. • Dynamically loaded using python ’import’ feature.
A 3 tier architecture • Python scripting language used for • creating "‘signal flow graphs"’ • C++ used for creating signal processing • blocks • An already existing library of • signalling blocks. • OFDM functionality is currently • being added tested and will be • added to the library. • The scheduler is using Python’s built-in • module threading,to control the ‘starting’, • ‘stopping’ or ‘waiting’ operations of the • signal flow graph.
TYPE CONVERSION • What is Type conversion and why: • Type conversion refers to different ways of, implicitly or explicitly, changing an • entity of one data type into another. This is done to take advantage of certain • features of type hierarchies or type representations • Each programming language has its own rules on how types can be • converted • 2 types of conversions: • Implicit: Automatic type conversion by the compiler • Explicit: Explicitly defined within a program ,instead of being done by a • compiler.
CLASSES • gr_binary_slicer_fb: • Slice float binary symbol outputting 1 bit output • Ex: x < 0 --> 0 x >= 0 --> 1 • gr_bytes_to_syms: • Convert stream of bytes to stream of +/- 1 symbols • input: stream of bytes; • output: stream of float. • gr_char_to_float: • Convert stream of chars to a stream of float. • gr_complex_to_interleaved_short: • Convert stream of complex to a stream of interleaved shorts.
gr_complex_to_float: • convert a stream of gr_complex to 1 or 2 streams of float • gr_complex_to_real: • complex in, real out (float) • gr_complex_to_imag: • complex in, imaginary out (float) • gr_complex_to_mag: • complex in, magnitude out (float) • gr_complex_to_mag_squared: • complex in, magnitude squared out (float)
gr_complex_to_arg: • Complex in, angle out (float) • gr_float_to_char: • Convert stream of float to a stream of char. • gr_float_to_complex: • Convert 1 or 2 streams of float to a stream of gr_complex. • gr_float_to_short: • Convert stream of float to a stream of short.
gr_float_to_uchar: • Convert stream of float to a stream of unsigned char. • gr_interleaved_short_to_complex: • Convert stream of interleaved shorts to a stream of complex. • gr_short_to_float: • Convert stream of short to a stream of float. • gr_uchar_to_float: • Convert stream of unsigned chars to a stream of float. • gr_unpack_k_bits_bb: • Converts a byte with k relevent bits to k output bytes with 1 bit in the • LSB.
gr_chunks_to_symbols: • A stream of symbol indexes (unpacked bytes or shorts) to stream of • float or complex onstellation points.in D dimensions (D = 1 by default) • input: stream of symbol index; • output: stream of float or complex. • gr_packed_to_unpacked_bb: • Convert a stream of packed bytes or shorts to stream of unpacked bytes • or shorts. input: stream of unsigned char; output: stream of unsigned • char.
CONCLUSION • GNU radio C++ has various signal processing blocks ,out of which Type conversion is one block. • The type conversion block has its own prominence in a signal flow graph between the signal processing blocks. • The data type conversions are performed in order to match the data types that our blocks use to the other GNU Radio blocks
REFERENCES • http://mobiledevices.kom.aau.dk/fileadmin/mobiledevices/teaching/software_ • testing/Gnu_radio_lecture.pdf • http://gnuradio.org/doc/doxygen/group__converter__blk.html • http://ese.wustl.edu/ContentFiles/Research/UndergraduateResearch/Complet • edProjects/WebPages/sp09/FinalPaperHardingTratos.pdf • http://pyd.dsource.org/conversion.html • http://www.informit.com/articles/article.aspx?p=459269&seqNum=7