Difference between revisions of "Tutorials"

From GNU Radio
Jump to: navigation, search
(replace contents with new outline and format)
(add Porting Existing Flowgraphs to a Newer Version)
 
(40 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Beginner User Level =
+
= GNU Radio Academy =
These tutorials are designed to guide new GNU Radio users to a better understanding of the project.
 
* [[Guided_Tutorial_Introduction|'''A brief introduction to GNU Radio, SDR, and DSP''']]
 
* [[Guided_Tutorial_GRC|'''Intro to GR usage: GRC and flowgraphs''']]
 
* [[Guided_Tutorial_Hardware_Considerations|'''Using GNU Radio with Hardware''']]
 
* [[Sample_Rate_Tutorial|'''Understanding sample rate''']]
 
* [[Guided_Tutorial_Programming_Topics|'''Brief intro to PMTs, Stream Tags, and Messaging Passing''']]
 
* [[Guided_Tutorial_PSK_Demodulation|'''Example Usage of GNU Radio: PSK Demodulation''']]
 
  
= Intermediate User Level =
+
The following sequence of tutorials will carry a new user through the core GNU Radio concepts, while providing examples along the way. If you already have experience with GNU Radio, feel free to skip the first several.
* [[Flowgraph_Python_Code|'''Understanding a flowgraph's python code''']]
 
* [[Embedded_Python_Block|'''Writing your own block''' (using Embedded Python Block)]]
 
* '''Writing the XML file for a block''' (for 3.7) (TBD)
 
* [[YAML_GRC|'''Writing the YAML file for a block''' (new in 3.8)]]
 
* [[OutOfTreeModules|'''Out of Tree modules''']]
 
* [[Guided_Tutorial_GNU_Radio_in_C++|'''Writing blocks in C++''' (for 3.7)]]
 
*  '''Writing blocks in C++''' (new in 3.8) (TBD)
 
  
= Expert User Level =
+
# [[Guided_Tutorial_Introduction|'''A Brief Introduction to GNU Radio, SDR, and DSP''']]
*   '''Writing flowgraphs in C++''' (new in 3.8) (TBD)
+
# [[Guided_Tutorial_GRC|'''Introduction to GNU Radio Usage: GRC and Flowgraphs''']]
 +
# [[Porting_Existing_Flowgraphs_to_a_Newer_Version|'''Porting Existing Flowgraphs to a Newer Version''']]
 +
# [[Sample_Rate_Tutorial|'''Understanding Sample Rate''']]
 +
# [[IQ_Complex_Tutorial|'''IQ and Complex Signals''']]
 +
# '''Simulation Examples (we recommend going through at least one):'''
 +
#* [[Simulation_example:_FSK|'''Frequency Shift Keying (FSK)''']]
 +
#* [[Simulation_example:_AM_transmitter_and_receiver|'''AM transmitter and receiver''']]
 +
#* [[Simulation_example:_Single_Sideband_transceiver|'''Single Sideband transceiver''']]
 +
#* [[Simulation_example:_Narrowband_FM_transceiver|'''Narrowband FM transceiver''']]
 +
#* [[Guided_Tutorial_PSK_Demodulation|'''QPSK Modulation / Demodulation''']]
 +
#* [[Simulation_example:_BPSK_Demodulation|'''BPSK Demodulation''']]
 +
#* [[Basic_OFDM_Tutorial|'''OFDM Basics''']]
 +
# [[Guided_Tutorial_Hardware_Considerations|'''Using GNU Radio with Hardware''']]
 +
# [[Flowgraph_Python_Code|'''Understanding a Flowgraph's Python Code''']]
 +
# [[Embedded_Python_Block|'''Writing your own block''' (using Embedded Python Block)]]
 +
# [[Polymorphic Types (PMTs)|'''Polymorphic Types (PMTs)''']]
 +
# [[Stream Tags|'''Stream Tags''']]
 +
# [[Message Passing|'''Message Passing''']]
 +
# [[Understanding_ZMQ_Blocks|'''Understanding ZMQ Blocks''']]
 +
# [[OutOfTreeModules|'''Out of Tree modules''']]
 +
# [[XML_GRC|'''Writing the XML file for a block''' (for 3.7)]] or [[YAML_GRC|'''Writing the YAML file for a block''' (for 3.8+)]]
 +
# [[Guided_Tutorial_GNU_Radio_in_C++|'''Writing blocks in C++''']]
 +
 
 +
= Developer Resources =
 
* [[VOLK_Guide|'''Volk- what it does, why it rocks, how to write new kernels''']]
 
* [[VOLK_Guide|'''Volk- what it does, why it rocks, how to write new kernels''']]
 +
* [[GNU Radio 3.8 OOT Module Porting Guide|'''Porting Existing OOTs from 3.7 to 3.8''']]
 +
* [[GNU Radio 3.9 OOT Module Porting Guide|'''Porting Existing OOTs from 3.8 to 3.9''']]
 
* [[ALSAPulseAudio|'''Working with ALSA and Pulse Audio''']]
 
* [[ALSAPulseAudio|'''Working with ALSA and Pulse Audio''']]
* [[TutorialsSimulations|'''Simulations''']]
+
* [[UsingVSCode|'''Using Visual Studio Code for Source level debugging of C++ OOTs''']]
* [[TutorialsTaggedStreams|'''Tagged streams for variable-length PDUs''']]
+
* [[UsingEclipse|'''Using Eclipse for Building and Source level debugging C++ OOTs''']]
* [[Basic OFDM Tutorial|'''Basics of OFDM''']]
+
* [[UsingCB|'''Using Code::Blocks IDE for GNU Radio Development''']]
 
 
= Developer Level =
 
* [[UsingVSCode|'''Source level debugging C++ OOT modules with Visual Studio Code''']]
 
* [[UsingEclipse|'''Building and source level debugging C++ OOT modules with Eclipse''']]
 
 
* [[DevelopingWithGit|'''Git and GNU Radio''']]
 
* [[DevelopingWithGit|'''Git and GNU Radio''']]
 
* [[Octave|'''How to use Octave or Matlab with GNU Radio''']]
 
* [[Octave|'''How to use Octave or Matlab with GNU Radio''']]
 +
* [http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.html '''The GNU Radio Scheduler''']

Latest revision as of 20:07, 19 February 2021

GNU Radio Academy[edit]

The following sequence of tutorials will carry a new user through the core GNU Radio concepts, while providing examples along the way. If you already have experience with GNU Radio, feel free to skip the first several.

  1. A Brief Introduction to GNU Radio, SDR, and DSP
  2. Introduction to GNU Radio Usage: GRC and Flowgraphs
  3. Porting Existing Flowgraphs to a Newer Version
  4. Understanding Sample Rate
  5. IQ and Complex Signals
  6. Simulation Examples (we recommend going through at least one):
  7. Using GNU Radio with Hardware
  8. Understanding a Flowgraph's Python Code
  9. Writing your own block (using Embedded Python Block)
  10. Polymorphic Types (PMTs)
  11. Stream Tags
  12. Message Passing
  13. Understanding ZMQ Blocks
  14. Out of Tree modules
  15. Writing the XML file for a block (for 3.7) or Writing the YAML file for a block (for 3.8+)
  16. Writing blocks in C++

Developer Resources[edit]