GNURadio out-of-tree (OOT) module for optical wireless communications.
- Contact: Dr. Michael Rahaim (Michael.Rahaim@umb.edu) from The Ubiquitous Communications and Networking Lab (UCaN Lab), University of Massachusetts, Boston.
gr-owc
is a GNU Radio Out-Of-Tree (OOT) module designed for Optical Wireless Communication (OWC
8000
). It provides a comprehensive suite of signal processing blocks designed to enable efficient experimentation, research, and development of optical wireless systems within the GNU Radio. The ‘gr-owc’ module covers OWC channel simulation, modulation and demodulation techniques, and other essential components. We describe how these blocks can also be implemented in physical systems using Software Defined Radio (SDR) hardware.
Note: gr-owc is compatible with GNU Radio v3.10. For GNU Radio v3.8, refer to gr-owc_v3.8.
- docs/gr-owc:Documentation: Contains documentation of gr-owc blocks and chapters; offers a step-by-step overview of gr-owc.
- examples: Example GNURadio flowgraphs for demonstrating gr-owc usage.
- grc: .yml files of gr-owc blocks. It allows interconnection of OWC blocks within the GRC environment.
- lib, include: C++ and C++ w/ Volk implemeted gr-owc blocks
- python: Python implemented gr-owc blocks and QA test code.
- Install_gr-owc.sh: Script file to install gr-owc in GNURadio Companion.
This installation guide assumes that GNURadio v3.10 has been installed. gr-owc can be installed using either of the following methods:
- Install via Install_gr-owc.sh: Automates installation of gr-owc in GNURadio.
- Basic Installation: Download this repository and use make to install the gr-owc library in an existing GNURadio prefix.
For this, follow the steps below:
- Download only the Install_gr-owc.sh
- In the downloaded script directory, open terminal. Give executable permission for script file
chmod +x ./Install_gr-owc.sh
- Execute scrpit file
./Install_gr-owc.sh
- (There should be no failure displayed)
- Open
gnuradio-comapanion
and you should find a module for gr-owc
Alternatively, to download the repository and install, follow the steps below:
- Download this repository by cloning with git clone (url)
- In a terminal, cd to the gr-owc directory
- Create a build directory with
mkdir build
and move into the directory withcd build
- Make sure to source the desired GNURadio prefix
- Run
cmake ../
from the build directory- (the path to the sourced GNURadio installation would be found automatically)
- Run
make
- Test the build with
make test
- (there shouldn't be any failures)
- Install with
make install
- Configure your linker/debugger with
sudo ldconfig
- Open gnuradio-companion and you should find a module for gr-owc
The gr-owc blocks will be available under the owc
drop down in the block library:
The gr-owc
module includes the following implemented blocks:
Sl No. | Block Name | Description |
---|---|---|
1 | OWC_Channel_Block(Relative) | Models the optical channel, considering DC channel gain from transmitter to receiver. |
2 | OWC_Channel_Block(Absolute) | Models the optical channel using absolute coordinates of the transmitter and receiver, considering DC channel gain from transmitter to receiver. |
3 | OOK_Modulator | Implements On-Off Keying (OOK) baseband modulation scheme. |
4 | OOK_Demodulator | Demodulates On-Off Keying (OOK) baseband signals and defines the binary outcome. |
5 | PAM_Modulator | Implements Pulse Amplitude Modulation (PAM), assigning varying amplitude levels based on symbols. |
6 | VPPM_Modulator | Implements Variable Pulse Position Modulation (VPPM). |
7 | PPM_Modulator | Implements Pulse Position Modulation (PPM), varying the position of pulse(s) within a symbol. |
8 | LED_Nonlinearity | Models the non-linear function of an LED |
9 | Hermitian Symmetry (Same Vec Size I/O) | Ensures Hermitian symmetry in complex-valued FFT vectors, keeping input and output vector sizes equal. |
Chapter | Topic | Summary |
---|---|---|
1 | Background | Overview of Software Defined Radio and an introduction to gr-owc , including its motivation and role in OWC. |
2 | Channel Modeling | Different channel modeling approaches for OWC, including their characteristics, types, and applications in various OWC scenarios. |
3 | SDR; OWC Hardware | Detailed analysis of hardware components and their characteristics used for OWC, such as Transmitter, Receiver, USRP, and their suitability for OWC. |
4 | Modulator & Demodulator | Modulation and demodulation techniques supported by gr-owc , along with their applications and implementation considerations. |
- Name: Dr. Michael B Rahaim
- Title/Position: Associate Professor
- University: University of Massachusetts Boston
- Email: michael.rahaim@umb.edu
- Name: Kunal P Sangurmath
- University: University of Massachusetts Boston
- Email: sangurmathkunal@gmail.com / k.sangurmath001@umb.edu
Note: This work is an extension of the original code developed by Arsalan Ahmed(arsalanqasimahmed@gmail.com) for GNURadio v3.8.