This project contains code for a transmitter and receiver which
- use GNU Radio as a framework
- transfer packetized data analogous to IEEE 802.11a WLAN
- use Filter Bank Multicarrier (FBMC) as a modulation scheme
- synchronize to data packets in frequency domain
- can adapt their spectrum usage to coexisting, independent wireless systems.
The system was presented at SDRA 2018: YouTube Video
This OOT-module requires GNU Radio 3.7.x, which is best installed on Ubuntu 16.04.x LTS.
git clone https://github.com/maxpenner/gr-fbmc.git
cd gr-fbmc
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
Most parameters for system configuration can be found in lib/utils
.
Open the files examples/frame_extractor_hier_block.grc
and examples/afb_hier_block.grc
and compile them. By that you install the hierarchical blocks. Restart GNU Radio companion to see the change.
The system can be started in a simulation environment without using any radio hardware. To start a simulation with a transmitter and a receiver in the same flowgraph, the files examples/freq_sync/freq_simulation.grc
(frequency domain sync) or examples/time_sync/time_simulation.grc
(time domain sync) can be used. To feed data to the transmitter (127.0.0.1 : 8888) the file examples/udp_source.grc
is provided.
The system was tested with two USRPs N210 and an Intel i7-4770 at the receiver side.
On one computer connected to an USRP N210, start examples/transmitter.grc
. The transmitter opens a socket (127.0.0.1 : 8888) which can be used to feed a binary video stream to the modulation chain. VLC player can be used for this purpose.
On a second computer also connected to an USRP N210, start examples/freq_sync/freq_receiver.grc
or examples/time_sync/time_receiver.grc
. If data arrives at the receiver and decoding is successful, the decoded data is output through a socket (127.0.0.1 : 8889).
An overview of the testbed https://ieeexplore.ieee.org/document/9606255 (FBMC Testbed with Frequency Domain Synchronization and Adaptive Bandwidth).
A complete description of the algorithms used for frequency synchronization can be found here https://link.springer.com/article/10.1186/1687-6180-2014-83 (Analysis of frequency domain frame detection and synchronization in OQAM-OFDM systems).
After installation, the simulations should run without further adjustments. If radio hardware is used the N210 should be prefered due to its precise crystal oscillator. Otherwise, too many packets will be lost during transmission to enable a stable video transmission.
If no N210 is available, the packet size at both the transmitter and the receiver must be reduced to not more than 20 symbols. This way the negative influence of the carrier frequency offset is mitigated.