RxCS
If you have any questions or comments about RxCS software, you are very warmly welcome to contact Jacek Pierzchlewski on jacek [ at ] pierzchlewski . com. .
Table of contents:
- What is RxCS?
- Download and Contribute
- What is inside? Directory structure
- What is inside? Implemented modules
- Examples
1. What is RxCS?
RxCS is a toolbox dedicated to simulation of compressed sensing solutions in radio receivers. It consists of modules which are divided into five groups: signal generators, signal acquisition, compressed sensing processing, signal analysis and auxiliary modules. All of the modules may be used separately or with cooperation with other modules.
Go to Examples section for illustrative examples of using RxCS.
Programming language
The toolbox is written almost entirely in Python, however you may also found C language here and there.
Platform
The toolbox works well with Linux and OS X operating systems.
Prerequisites
RxCS requires Numpy and Scipy to work. It is also recommented to install Cvxopt.
License
Most of the modules in RxCS are licensed with FreeBSD license, few are published under GPL license.
Current version
Currently (March 2017) RxCS v. 2.0 is available.
2. Download and contribute:
Please download the newest version of the RxCS (zipped) directly from GitHub
You can contribute to the project using GitHub. Please go to the project’s website:
3. What is inside? Directory structure
The first two levels of the directory structure of RxCS are shown in image below. All the RxCS modules are hidden in rxcs\ subdirectory, which has four subdirectories with fours basic groups of modules.
4. What is inside? Implemented modules
List of currently implemented modules (v 2.0) is as follows:
- Signal generators
- gaussNoise.py – random Gaussian Noise Generator
- gaussNoise2.py – random Gaussian Noise Generator (type 2)
- gaussNoise3.py – random Gaussian Noise Generator (type 3)
- randMult.py – random Multitone Signal Generator
- powerRegulator.py – power regulator
- sparseVector.py – sparse vectors generator
- oversampler.py – oversampler
- LNA.py – Low-noise nonlinear amplifier
- radio/ – radio modules:
- upconvert.py – single branch upconverter
- Acquisiton modules
- nonuniANGIE.py – nonuniform sampler with an ANGIE sampling scheme
- nonuniARS.py – nonuniform sampler with an ARS sampling scheme
- nonuniJS.py – nonuniform sampler with an JS sampling scheme
- nonuniExtern.py – nonuniform sampler with external sampling scheme
- uniform.py – uniform sampler
- satur.py – saturation block
- CS modules
- finalRecon.py – final signals reconstruction module
- makeTheta.py – module which prepares Theta matrices based on observation and dictionary matrices
- L1/ – L1 based reconstruction modules:
- cvxoptL1.py – L1-optimisation signal reconstruction module using cvxopt .
- irlsL1.py – L1-optimisation signal reconstruction module using Iteratively Reweighted Least Squares (IRLS) algorithm
- dict/ – dictionaries:
- Signal evaluation
- SNR.py – SNR evaluation of the reconstructed signal
- Auxiliary modules
- aldkrlsL2.py – L2 solver which uses KRLS algorithm
- parExp.py – multi CPU wrapper
- krls – kernel recursive least squares modules:
- aldkrls.py – Kernel Recursive Least Squares algorithm with Approximate Linear Dependency criterion
- kernel.py – implementation of kernels used by KRLS algorithm
- gaussNoise.py – random Gaussian Noise Generator
- gaussNoise2.py – random Gaussian Noise Generator (type 2)
- gaussNoise3.py – random Gaussian Noise Generator (type 3)
- randMult.py – random Multitone Signal Generator
- powerRegulator.py – power regulator
- sparseVector.py – sparse vectors generator
- oversampler.py – oversampler
- LNA.py – Low-noise nonlinear amplifier
- radio/ – radio modules:
- upconvert.py – single branch upconverter
- nonuniANGIE.py – nonuniform sampler with an ANGIE sampling scheme
- nonuniARS.py – nonuniform sampler with an ARS sampling scheme
- nonuniJS.py – nonuniform sampler with an JS sampling scheme
- nonuniExtern.py – nonuniform sampler with external sampling scheme
- uniform.py – uniform sampler
- satur.py – saturation block
- finalRecon.py – final signals reconstruction module
- makeTheta.py – module which prepares Theta matrices based on observation and dictionary matrices
- L1/ – L1 based reconstruction modules:
- cvxoptL1.py – L1-optimisation signal reconstruction module using cvxopt .
- irlsL1.py – L1-optimisation signal reconstruction module using Iteratively Reweighted Least Squares (IRLS) algorithm
- dict/ – dictionaries:
- SNR.py – SNR evaluation of the reconstructed signal
- aldkrlsL2.py – L2 solver which uses KRLS algorithm
- parExp.py – multi CPU wrapper
- krls – kernel recursive least squares modules:
- aldkrls.py – Kernel Recursive Least Squares algorithm with Approximate Linear Dependency criterion
- kernel.py – implementation of kernels used by KRLS algorithm
5. Examples
- Introduction
- 1. Examples – Signal generators
- 2. Examples – Acquisition systems
- 3. Examples – Dictionaries
Page last updated: 20th March 2017 (by Jacek)