Tutorials: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
Tag: Reverted
m (Fixed URL.)
(36 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= GNU Radio Academy =
Please leave tutorials-related feedback (either for an individual tutorial or overall organization) in the [[Talk:Tutorials|Discussion]] page of this article (tab at the top), we are always looking for ways to improve.


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.
{|
 
|- valign="top"
# [[Guided_Tutorial_Introduction|'''A Brief Introduction to GNU Radio, SDR, and DSP''']]
|{{BeginnerTutorials}}
# [[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''']]
{| class="wikitable" style="background-color:#f1edff;" cellpadding="10"
# [[Sample_Rate_Tutorial|'''Understanding Sample Rate''']]
|'''Intermediate/Advanced Tutorials'''
# '''Simulation Examples (we recommend going through at least one):'''
Core GNU Radio Mechanics
#* [[Simulation_example:_FSK|'''Frequency Shift Keying (FSK)''']]
# [[Stream_Tags|Stream Tags]]
#* [[Simulation_example:_AM_transmitter_and_receiver|'''AM transmitter and receiver''']]
# [[Polymorphic_Types_(PMTs)|Polymorphic Types (PMTs)]]
#* [[Simulation_example:_Single_Sideband_transceiver|'''Single Sideband transceiver''']]
# [[Message_Passing|Message Passing]]
#* [[Simulation_example:_Narrowband_FM_transceiver|'''Narrowband FM transceiver''']]
Modulation and Demodulation
#* [[Guided_Tutorial_PSK_Demodulation|'''QPSK Modulation / Demodulation''']]
# [[Simulation_example:_Narrowband_FM_transceiver|Narrowband FM]]
#* [[Simulation_example:_BPSK_Demodulation|'''BPSK Demodulation''']]
# [[Simulation_example:_Single_Sideband_transceiver|Single Sideband (SSB)]]
#* [[Basic_OFDM_Tutorial|'''OFDM Basics''']]
# [[Guided_Tutorial_PSK_Demodulation|QPSK Mod and Demod]]
# [[Guided_Tutorial_Hardware_Considerations|'''Using GNU Radio with Hardware''']]
# [[Simulation_example:_BPSK_Demodulation|BPSK Demodulation]]
# [[Flowgraph_Python_Code|'''Understanding a Flowgraph's Python Code''']]
# [[Simulation_example:_FSK|Frequency Shift Keying (FSK)]]
# [[Embedded_Python_Block|'''Writing your own block''' (using Embedded Python Block)]]
# [[Basic_OFDM_Tutorial|OFDM Basics]]
# [[Polymorphic Types (PMTs)|'''Polymorphic Types (PMTs)''']]
# [[Packet_Communications|Packet Communications]]
# [[Stream Tags|'''Stream Tags''']]
Custom Blocks and Out of Tree (OOT) Modules
# [[Message Passing|'''Message Passing''']]
# [[Creating_Python_OOT_with_gr-modtool|Creating an OOT (Python block example)]]
# [[Understanding_ZMQ_Blocks|'''Understanding ZMQ Blocks''']]
# [[Creating_c++_OOT_with_gr-modtool|Creating an OOT (C++ block example)]]
# [[Understanding_XMLRPC_Blocks|'''Remote Control and Automation of Flowgraphs with XMLRPC''']]
# [[YAML_GRC|Writing the YAML file for a block (GR 3.8+)]]
# [[Packet_Communications|'''Packet Communications''']]
Miscellaneous
# [[OutOfTreeModules|'''Out of Tree modules''']]
# [[Flowgraph_Python_Code|Understanding a Flowgraph's Python Code]]
# [[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_Hardware_Considerations|Using GNU Radio With SDRs]]
# [[Guided_Tutorial_GNU_Radio_in_C++|'''Writing blocks in C++''']]
# [[IQ_Complex_Tutorial|IQ and Complex Signals]]
 
# [[Sample_Rate_Tutorial|Understanding Sample Rate]]
= Developer Resources =
# [[Understanding_ZMQ_Blocks|Understanding ZMQ Blocks]]
* [[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''']]
{| class="wikitable" style="background-color:#f1edff;" cellpadding="10"
* [[ALSAPulseAudio|'''Working with ALSA and Pulse Audio''']]
|'''Developer Resources'''
* [[UsingVSCode|'''Using Visual Studio Code for Source level debugging of C++ OOTs''']]
# [[Porting_Existing_Flowgraphs_to_a_Newer_Version|Porting Existing Flowgraphs to Newer Version]]
* [[UsingEclipse|'''Using Eclipse for Building and Source level debugging C++ OOTs''']]
# [[GNU Radio 3.10 OOT Module Porting Guide|Porting Existing OOTs from 3.9 to 3.10]]
* [[UsingCB|'''Using Code::Blocks IDE for GNU Radio Development''']]
# [[GNU_Radio_3.9_OOT_Module_Porting_Guide|Porting Existing OOTs from 3.8 to 3.9]]
* [[DevelopingWithGit|'''Git and GNU Radio''']]
# [[GNU_Radio_3.8_OOT_Module_Porting_Guide|Porting Existing OOTs from 3.7 to 3.8]]
* [[Octave|'''How to use Octave or Matlab with GNU Radio''']]
# [[VOLK_Guide|VOLK: What it does, why it rocks, how to write new kernels]]
* [http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.html '''The GNU Radio Scheduler''']
# [[ALSAPulseAudio|Working with ALSA and Pulse Audio]]
* [[CustomBuffers| '''Using Custom Buffers for Hardware Accelerated Blocks''']]
# [[UsingVSCode|Using Visual Studio Code for Source level debugging of C++ OOTs]]
 
# [[UsingEclipse|Using Eclipse for Building and Source level debugging C++ OOTs]]
= Temporarily Down =
# [[UsingCB|Using Code::Blocks IDE for GNU Radio Development]]
# [[IQ_Complex_Tutorial|'''IQ and Complex Signals''']] (until we fix mathml)
# [[DevelopingWithGit|Git and 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]
# [[CustomBuffers|Using Custom Buffers for Hardware Accelerated Blocks]]
# [[Understanding_XMLRPC_Blocks|Remote Control and Automation of Flowgraphs with XMLRPC]]
|}
|}

Revision as of 09:13, 18 March 2022

Please leave tutorials-related feedback (either for an individual tutorial or overall organization) in the Discussion page of this article (tab at the top), we are always looking for ways to improve.

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
Intermediate/Advanced Tutorials

Core GNU Radio Mechanics

  1. Stream Tags
  2. Polymorphic Types (PMTs)
  3. Message Passing

Modulation and Demodulation

  1. Narrowband FM
  2. Single Sideband (SSB)
  3. QPSK Mod and Demod
  4. BPSK Demodulation
  5. Frequency Shift Keying (FSK)
  6. OFDM Basics
  7. Packet Communications

Custom Blocks and Out of Tree (OOT) Modules

  1. Creating an OOT (Python block example)
  2. Creating an OOT (C++ block example)
  3. Writing the YAML file for a block (GR 3.8+)

Miscellaneous

  1. Understanding a Flowgraph's Python Code
  2. Using GNU Radio With SDRs
  3. IQ and Complex Signals
  4. Understanding Sample Rate
  5. Understanding ZMQ Blocks
Developer Resources
  1. Porting Existing Flowgraphs to Newer Version
  2. Porting Existing OOTs from 3.9 to 3.10
  3. Porting Existing OOTs from 3.8 to 3.9
  4. Porting Existing OOTs from 3.7 to 3.8
  5. VOLK: What it does, why it rocks, how to write new kernels
  6. Working with ALSA and Pulse Audio
  7. Using Visual Studio Code for Source level debugging of C++ OOTs
  8. Using Eclipse for Building and Source level debugging C++ OOTs
  9. Using Code::Blocks IDE for GNU Radio Development
  10. Git and GNU Radio
  11. How to use Octave or Matlab with GNU Radio
  12. The GNU Radio Scheduler
  13. Using Custom Buffers for Hardware Accelerated Blocks
  14. Remote Control and Automation of Flowgraphs with XMLRPC