Editing Guided Tutorial Introduction

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
[[Category:Guided Tutorials]]
+
>. [[Guided_Tutorial_GRC|Next: Working with GRC]]
  
 
= Introduction to GNU Radio and Software Radio =
 
= Introduction to GNU Radio and Software Radio =
Line 11: Line 11:
 
== Why would I want GNU Radio? ==
 
== Why would I want GNU Radio? ==
  
Formerly, when developing radio communication devices, the engineer had to develop a specific circuit for detection of a specific signal class, design a specific integrated circuit that would be able to decode or encode that particular transmission and debug these using costly equipment.
+
Formerly, when developing radio communication devices, the engineer had to develop a specific circuit for detection of a specific signal class, design a specific IC that would be able to decode or encode that particular transmission and debug these using costly equipment.
  
 
Software-Defined Radio (SDR) takes the analog signal processing and moves it, as far as physically and economically feasible, to processing the radio signal on a computer using algorithms in software.
 
Software-Defined Radio (SDR) takes the analog signal processing and moves it, as far as physically and economically feasible, to processing the radio signal on a computer using algorithms in software.
  
You can, of course, use your computer-connected radio device in a program you write from scratch, concatenating algorithms as you need them and moving data in and out yourself. But this quickly becomes cumbersome: Why are you re-implementing a standard filter? Why do you have to care how data moves between different processing blocks? Wouldn't it be better to use highly optimized and peer-reviewed implementations rather than writing things yourself? And how do you get your program to scale well on a multi-core architectures but also run well on an embedded device consuming but a few watts of power?  Do you really want to write all the GUIs yourself?
+
You can, of course, use your computer-connected radio device in a program you write from scratch, concatenating algorithms as you need them and moving data in and out yourself. But this quickly becomes cumbersome: Why are you re-implementing a standard filter? Why do you have to care how data moves between different processing blocks? Wouldn't it be better to use highly optimized and peer-reviewed implementations rather than writing things yourself? And how do you get your program to scale well on a multi-core architectures but also run well on an embedded device consuming but a few watts of power?
  
 
Enter GNU Radio: A framework dedicated to writing signal processing applications for commodity computers. GNU Radio wraps functionality in easy-to-use reusable blocks, offers excellent scalability, provides an extensive library of standard algorithms, and is heavily optimized for a large variety of common platforms. It also comes with a large set of examples to get you started.
 
Enter GNU Radio: A framework dedicated to writing signal processing applications for commodity computers. GNU Radio wraps functionality in easy-to-use reusable blocks, offers excellent scalability, provides an extensive library of standard algorithms, and is heavily optimized for a large variety of common platforms. It also comes with a large set of examples to get you started.
 
 
== Digital Signal Processing ==
 
== Digital Signal Processing ==
  
Line 58: Line 57:
 
This electrical signal is then on a 'carrier frequency', which is usually several Mega- or even Gigahertz.
 
This electrical signal is then on a 'carrier frequency', which is usually several Mega- or even Gigahertz.
  
Different types of receivers (e.g. Superheterodyne Receiver, Direct Conversion, Low Intermediate Frequency Receivers), which can be acquired commercially as dedicated software radio peripherals, are already available to users (e.g. amateur radio receivers connected to sound cards) or can be obtained when re-purposing cheaply available consumer digital TV receivers (the notorious [https://www.rtl-sdr.com/about-rtl-sdr/ RTL-SDR] project).
+
Using different types of receivers (e.g. Superheterodyne Receiver, Direct Conversion, Low Intermediate Frequency Receivers), which can be acquired commercially as dedicated software radio peripherals, are already available to users (e.g. amateur radio receivers connected to sound cards) or can be obtained when re-purposing cheaply available consumer digital TV receivers (the notorious rtl-sdr project).
 
 
 
== A modular, flowgraph based Approach to Digital Signal Processing ==
 
== A modular, flowgraph based Approach to Digital Signal Processing ==
  
Line 79: Line 77:
 
** Constant Source
 
** Constant Source
 
** Noise Source
 
** Noise Source
** Signal Source (e.g. Sine, Square, Saw Tooth)
+
** Signal Source
  
 
* Modulators
 
* Modulators
Line 85: Line 83:
 
** Continuous Phase Modulation
 
** Continuous Phase Modulation
 
** PSK Mod / Demod
 
** PSK Mod / Demod
** GFSK Mod / Demod
+
** DPSK Mod / Demod
 
** GMSK Mod / Demod
 
** GMSK Mod / Demod
 
** QAM Mod / Demod
 
** QAM Mod / Demod
Line 91: Line 89:
 
** NBFM Receive
 
** NBFM Receive
  
* Instrumentation (i.e., GUIs)
+
* Instrumentation
 
** Constellation Sink
 
** Constellation Sink
 
** Frequency Sink
 
** Frequency Sink
Line 147: Line 145:
  
 
Thus, GNU Radio is mainly a framework for the development of signal processing blocks and their interaction. It comes with an extensive standard library of blocks, and there are a lot of systems available that a developer might build upon. However, GNU Radio itself is not a software that is ready to do something specific -- it's the user's job to build something useful out of it, though it already comes with a lot of useful working examples. Think of it as a set of building blocks.
 
Thus, GNU Radio is mainly a framework for the development of signal processing blocks and their interaction. It comes with an extensive standard library of blocks, and there are a lot of systems available that a developer might build upon. However, GNU Radio itself is not a software that is ready to do something specific -- it's the user's job to build something useful out of it, though it already comes with a lot of useful working examples. Think of it as a set of building blocks.
 +
 +
>. [[Guided_Tutorial_GRC|Next: Working with GRC]]
 +
 +
[[Category:Guided Tutorials]]

Please note that all contributions to GNU Radio are considered to be released under the Creative Commons Attribution-ShareAlike (see GNU Radio:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)