Skip to content

Commit

Permalink
Restored files erroneously merged from SOCIS polar branch.
Browse files Browse the repository at this point in the history
  • Loading branch information
jmcorgan committed Sep 25, 2015
1 parent e0291bf commit 88fecd2
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 43 deletions.
3 changes: 0 additions & 3 deletions .gitignore
Expand Up @@ -2,6 +2,3 @@
*.pyc
*.pyo
build/
.idea/
*.npy
*.lprof
150 changes: 133 additions & 17 deletions README
@@ -1,23 +1,139 @@
ESA Summer of Code in Space 2015 POLAR Code implementation for GNU Radio
================
#
# Copyright 2001-2007,2009,2012 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
#

This is a GNU Radio clone which contains all the files for my POLAR code project for ESA Summer of Code in Space 2015. My name is Johannes Demel and I am a Master degree student at *Karlsruhe Institute of Technology (KIT)*.
Welcome to GNU Radio!

Basics
----------
The project is based on Erdal Arikan's 2009 paper *Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels*. An in-depth explanation of my project is given in my project proposal <https://github.com/jdemel/socis-proposal>.

Structure
----------
The aim of the project is to add POLAR code encoder, decoder, channel construction capabilities to GNU Radio. POLAR codes are used for channel coding, thus all files shall reside within the *gr-fec* submodule. Also encoder and decoder shall use the FECAPI. The decision to do all development in-tree is driven by previous experience that out-of-tree modules are often terribly hard to merge later on and it may take years to do so.
Please see http://gnuradio.org for the wiki, bug tracking,
and source code viewer.

Project
-------
A quick overview of my project timeline goes as follows.
If you've got questions about GNU Radio, please subscribe to the
discuss-gnuradio mailing list and post your questions there.
http://gnuradio.org/redmine/projects/gnuradio/wiki/MailingLists

1. create Python testcode
2. implement encoder and decoder in C++ for FECAPI.
3. optimize blocks and create VOLK kernels.
4. implement channel construction algorithms.
There is also a "Build Guide" in the wiki that contains OS specific
recommendations:
http://gnuradio.org/redmine/projects/gnuradio/wiki/BuildGuide


The bleeding edge code can be found in our git repository at
http://gnuradio.org/git/gnuradio.git/. To checkout the latest, use
this command:

$ git clone git://git.gnuradio.org/gnuradio

For information about using Git, please see:
http://gnuradio.org/redmine/projects/gnuradio/wiki/DevelopingWithGit


How to Build GNU Radio:

For more complete instructions, see the "Building GNU Radio" page in
the GNU Radio manual (can be built or found online at
http://gnuradio.org/doc/doxygen/build_guide.html).

See these steps for a quick build guide.

(1) Ensure that you've satisfied the external dependencies. These
dependencies are listed in the manual's build page and are not
presented here to reduce duplication errors.

See the wiki at http://gnuradio.org for details.


(2) Building from cmake:

$ mkdir $(builddir)
$ cd $(builddir)
$ cmake [OPTIONS] $(srcdir)
$ make
$ make test
$ sudo make install


That's it!

Options:
Useful options include setting the install prefix and the build type:

-DCMAKE_INSTALL_PREFIX=<directory to install to>
-DCMAKE_BUILD_TYPE="<type>"

Currently, GNU Radio has a "Debug" type that builds with '-g -O2'
useful for debugging the software and a "Release" type that builds
with '-O3', which is the default.


-------------------------------------------------------------------------------

KNOWN INCOMPATIBILITIES


GNU Radio triggers bugs in g++ 3.3 for X86. DO NOT USE GCC 3.3 on
the X86 platform. g++ 3.2, 3.4, and the 4.* series are known to work well.

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------

NOTES

-------------------------------------------------------------------------------

To run the examples you may need to set PYTHONPATH. Note that the
prefix and python version number in the path needs to match your
installed version of python.

$ export PYTHONPATH=/usr/local/lib/python2.7/dist-packages

You may want to add this to your shell init file (~/.bash_profile if
you use bash).


Another handy trick if for example your fftw includes and libs are
installed in, say ~/local/include and ~/local/lib, instead of
/usr/local is this:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/local/lib
$ make CPPFLAGS="-I$HOME/local/include"


Sometimes the prerequisites are installed in a location which is not
included in the default compiler and linker search paths. This
happens with pkgsrc and NetBSD. To build, tell configure to use these
locations:

LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib" CPPFLAGS="-I/usr/pkg/include" ./configure --prefix=/usr/gnuradio


-------------------------------------------------------------------------------

Legal Matters

-------------------------------------------------------------------------------

Some files have been changed many times throughout the
years. Copyright notices at the tops of these files list which years
changes have been made. For some files, changes have occurred in many
consecutive years. These files may often have the format of a year
range (e.g., "2006 - 2011"), which indicates that these files have had
copyrightable changes made during each year in the range, inclusive.

This may get continuously updated and I will add more details during project development.
23 changes: 0 additions & 23 deletions README.md

This file was deleted.

0 comments on commit 88fecd2

Please sign in to comment.