Converting Data Types

This tutorial demonstrates how to convert between data types.

The previous tutorial, Signal Data Types, presents an introduction to the Complex Float 32 and Float 32 data types for representing digitized signals. The next tutorial, Packing Bits, describes how to pack and unpack up to 8 bits into the char or byte data type.

Char/Byte Data Type
The Char or Byte data type is another useful data type for representing binary data. The Byte data type is represented by the  purple  color in GRC, labeled Integer 8:



Search for the Random Source block and drag it into the workspace:



The block defaults to the  green  Integer 32 data type. Double-click the block to open the properties and modify the data type to byte:



The Random Source is now converted to the  purple  Char or Byte data type.



Converting Byte to Float 32
The default parameters of the Random Source will randomly generate values of 0 and 1. Add the QT GUI Time Sink and the Throttle block into the workspace and connect the blocks:



The red arrow between the Random Source and Throttle blocks shows a data type error that needs to be fixed. Double-click the Throttle block and change the data type to byte:



A new red arrow now shows there is a data type connection between the Throttle and the QT GUI Time Sink:



The QT GUI Time Sink does not have a char data type. Select Float:



The GNU Radio block library comes with a variety of data type converters listed under Type Converters. Search for the Char to Float block, drag it into the workspace, and connect it into the flowgraph:



All of the red errors have disappeared. Press the Play button to start the flowgraph:



The QT GUI Time Sink will now display the data from the Random Source block which is randomized 0's and 1's:



The next tutorial, Packing Bits, describes how to pack and unpack up to 8 bits into the char or byte data type.