GithubHelp home page GithubHelp logo

skoslowski / gr-gfdm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kit-cel/gr-gfdm

0.0 2.0 0.0 225 KB

Generalized Frequency Division Multiplexing in GNU Radio

CMake 35.90% C++ 43.18% C 0.43% Python 20.49%

gr-gfdm's Introduction

GNU Radio GFDM Modulator/Demodulator

The gr-gfdm project is an Free Software Package which aims to provide an implementation of Generalized Frequency Division Multiplexing (GFDM) in the GNU Radio framework. GFDM is a proposed waveform for use in 5G.

This project was initiated as a Bachelor thesis at the Communication Engineering Lab (CEL) at the Karlsruhe Institute of Technology (KIT), Germany, http://www.cel.kit.edu.

Concept

Tackling current issues with OFDM several new waveforms are proposed for consideration in 5G. FBMC, UFMC, BFDM and GFDM are the names of the proposed waveforms and they are filtered multicarrier systems. Orthogonality of neighboring carriers is no constraint.

GFDM was proposed by the Vodafone Chair of TU Dresden and accurately described in [1]. Due to the high complexity of a Transmit-Matrix-based approach a low coplexity receiver [2] and transmitter [3] are proposed.

GFDM can be described by parallelizing several SC-FDE streams on subcarrier. The transmit symbols are localized in a time/frequency-grid and pulshaping is applied subcarrier-wise. After pulshaping and localizing on the correct subcarrier-frequency the symbolstreams are superpositioned and can be transmitted. On receiver side the symbols on the subcarrier can be extracted by applying a MF, ZF or MMSE-filter of the previous pulseshaping filter. Non-orthogonality of neighboring subcarrier introduces ICI if demodulating with MF. A successive interference cancellation algorithm is proposed to remove interference.

Due to its block-nature a block synchronisation with improved Schmidl & Cox - Symbols can be achievd.

  1. N. Michailow et al. “Generalized Frequency Division Multiplexing for 5th Generation Cellular Networks”. In: Communications, IEEE Transactions on 62.9 (2014), S. 3045–3061. doi: 10.1109/TCOMM.2014.2345566.

  2. I.S. Gaspar et al. “Low Complexity GFDM Receiver Based on Sparse Frequency Domain Processing”. In: Vehicular Technology Conference (VTC Spring), 2013 IEEE 77th. IEEE, 2013, S. 1–6. doi: 10.1109/VTCSpring.2013.6692619.

  3. N. Michailow et al. “Generalized frequency division multiplexing: Analysis of an alternative multi-carrier technique for next generation cellular systems”. In: Wireless Communication Systems (ISWCS), 2012 International Symposium on. IEEE, 2012, S. 171–175. doi: 10.1109/ISWCS.2012.6328352.

Capabilities

gr-gfdm provides a framer, modulator and cyclic prefixer block to generate transmit symbols and a synchronization, a prefix remover and a demodulator block to receive and demodulate the transmitted GFDM blocks. The modulator and demodulator are implemented using the low complexity approach with Sparse Frequency Domain processing and heavy use of FFTW and VOLK to accelerate signal processing on modern GPPs.

Requirements

  • GNU Radio 3.7.9 (verified)
    • GNU Radio 3.7.0

    • GR 3.7 API
    • GR-FFT
    • GR-FILTER
    • VOLK

Build/Install instructions

  1. Get, build and install GNU radio from https://www.gnuradio.org

  2. Get gr-gfdm from github - git clone https://github.com/kit-cel/gr-gfdm.git

  3. Configure gr-gfdm - mkdir build && cd build && cmake ../

  4. Build and install gr-gfdm - make && sudo make install (default install target: /usr/local)

  5. Configure custom blocks path in GNU Radio Companion to use /usr/local/share/gnuradio/grc/blocks

Troubleshooting/Bugs

In case you encounter non-GNU Radio bugs in gr-gfdm open an issue at https://github.com/kit-cel/gr-gfdm/issues. Otherwise consider reporting the issue at https://gnuradio.org.

gr-gfdm's People

Contributors

noc0lour avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.