Tutorials: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
(24 intermediate revisions by 4 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''']]
* [[Sample_Rate_Tutorial|'''Understanding sample rate''']]
* [[Simulation_example:_FSK|'''Simulation example: FSK''']]
* [[Simulation_example:_AM_transmitter_and_receiver|'''Simulation example: AM transmitter and receiver''']]
* [[Simulation_example:_Single_Sideband_transceiver|'''Simulation example: Single Sideband transceiver''']]
* [[Guided_Tutorial_Hardware_Considerations|'''Using GNU Radio with Hardware''']]
* [[Guided_Tutorial_PSK_Demodulation|'''Example Usage of GNU Radio: QPSK Modulation / Demodulation''']]
* [[Simulation_example:_BPSK_Demodulation|'''Simulation example: BPSK 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)]]
# [[Guided_Tutorial_Introduction|'''A Brief Introduction to GNU Radio, SDR, and DSP''']]
* [[OutOfTreeModules|'''Out of Tree modules''']]
# [[Guided_Tutorial_GRC|'''Introduction to GNU Radio Usage: GRC and Flowgraphs''']]
* [[XML_GRC|'''Writing the XML file for a block''' (for 3.7)]]
# [[Porting_Existing_Flowgraphs_to_a_Newer_Version|'''Porting Existing Flowgraphs to a Newer Version''']]
* [[YAML_GRC|'''Writing the YAML file for a block''' (new in 3.8)]]
# [[Sample_Rate_Tutorial|'''Understanding Sample Rate''']]
* [[Guided_Tutorial_GNU_Radio_in_C++|'''Writing blocks in C++''']]
# [[IQ_Complex_Tutorial|'''IQ and Complex Signals''']]
* [[Guided_Tutorial_Programming_Topics|'''Brief intro to PMTs, Stream Tags, and Messaging Passing''']]
# '''Simulation Examples (we recommend going through at least one):'''
* [[Basic_OFDM_Tutorial|'''Basic OFDM Tutorial''']]
#* [[Simulation_example:_FSK|'''Frequency Shift Keying (FSK)''']]
* [[GNU Radio 3.8 OOT Module Porting Guide|'''Porting Existing OOTs from 3.7 to 3.8''']]
#* [[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''']]
# [[Packet_Communications|'''Packet Communications''']]
# [[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++''']]


= Expert User Level =
= 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''']]
* [[TutorialsTaggedStreams|'''Tagged streams for variable-length PDUs''']]
= Developer Level =
* [[UsingVSCode|'''Using Visual Studio Code for Source level debugging of C++ OOTs''']]
* [[UsingVSCode|'''Using Visual Studio Code for Source level debugging of C++ OOTs''']]
* [[UsingEclipse|'''Using Eclipse for Building and Source level debugging C++ OOTs''']]
* [[UsingEclipse|'''Using Eclipse for Building and Source level debugging C++ OOTs''']]
Line 35: Line 39:
* [[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''']
* [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''']]

Revision as of 20:24, 26 October 2021

GNU Radio Academy

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. Packet Communications
  15. Out of Tree modules
  16. Writing the XML file for a block (for 3.7) or Writing the YAML file for a block (for 3.8+)
  17. Writing blocks in C++

Developer Resources