Converting Data Types

From GNU Radio
Revision as of 20:06, 14 March 2022 by Mattcarrick (talk | contribs) (→‎Char/Byte Data Type: tech editing & making easier to understand for ESL)
Jump to navigation Jump to search
Beginner Tutorials

Introducing GNU Radio

  1. What is GNU Radio?
  2. Installing GNU Radio
  3. Your First Flowgraph

Flowgraph Fundamentals

  1. Python Variables in GRC
  2. Variables in Flowgraphs
  3. Runtime Updating Variables
  4. Signal Data Types
  5. Converting Data Types
  6. Packing Bits
  7. Streams and Vectors
  8. Hier Blocks and Parameters

Creating and Modifying Python Blocks

  1. Creating Your First Block
  2. Python Block With Vectors
  3. Python Block Message Passing
  4. Python Block Tags

DSP Blocks

  1. Low Pass Filter Example
  2. Designing Filter Taps
  3. Sample Rate Change
  4. Frequency Shifting
  5. Reading and Writing Binary Files

SDR Hardware

  1. RTL-SDR FM Receiver
  2. B200-B205mini FM Receiver

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 bits 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:

Types.png

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

SearchRandomSourceBlock.png


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:

SelectByteDataType.png


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

RandomSourceByteOutput.png

Converting Byte to Float 32

The default parameters of the Random Source will randomly generate values of 0 and 1. We will want to view them using the QT GUI Time Sink, so add it and the Throttle block into the workspace and connect the blocks:

ConnectionErrorCharToComplex.png


You will notice the red arrow between the Random Source and Throttle block which denotes a data type error that needs to be resolved. Double-click the Throttle block and change the data type to byte:

ChangeThrottleDataType.png


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

ConnectionErrorThrottleTimeSink.png


However, the QT GUI Time Sink does not have a char data type. Select Float:

TimeSinkDataTypeOptions.png


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

SearchCharToFloatBlock.png


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

RunFlowgraphButton.png


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

RandomSourceTimeSinkOutput.png

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