Open Source Cognitive Radio (OSCR)

Overview
OSCR is an Open Source Coginitive Radio Framework which uses the OSSIE implementation of the SCA.
View Our brief overview of Cognitive & Software Radio, and how OSCR works Here

Current Capabilities
Modulation: 4-QAM, 16-QAM, 64-QAM, 256-QAM
Coding: 1/2-rate k=7, 1/2-rate k=9, 1/6-rate k=15, Null

Screenshot showing Radio Control Interface, noiseIncreaser, and Policy Engine in the background.
(Here you can see the modulation scheme adjusting to the accomidate for changing SNR)

OSSIE Components
M-QAM Modulator - Modulates a stream of realShorts (one bit per short 0-255) into a complexShort M-QAM signal

M-QAM Demodulator - Demodulates a stream of complexShorts into a bit representation 0-255 in a realShort stream

Convolutional Encoder - provides coding, converts packed 16 bit data stream into one bit per short (0-255) format

Convolutional Decoder (requires libfec for viterbi decoding) - decodes the (0-255) per bit realShort stream into a packed 16 bit per short data stream providing decoding between.

AWGN Channel - Simulates an AWGN channel between input and output complexShort ports, this is a modified version of the one on OSSIE subversion optimized for speed and with a control port added for noise level modification at run time

OSSIE Test Components
Source_FileReader - reads a file and provides a realShort stream connection

RxFile - recieves a realShort stream connection and writes it to a file

External (Non-Ossie) Tools
radioController.py - connects to the "control" port on several of the above components and allows for live statistic reading and paramater changes. Controls are all defined in a simple xml file for ease of modification. This is a WxPython GUI.

bitdiff - a quick and dirty c program for comparing the input and output files for number of bit errors.

Resouces (in propper installation order)
OSSIE Subversion Tree - 17 Jul 06 Snapshot -- Use only if building against current OSSIE subversion checkout fails. -- This has been tested
OSCR Software Radio Components 18 Aug 06 Snapshot
Modified Graph Component 18 Aug 06 Snapshot -- Added support for QAM constellation viewinga
OSCR Core 18 Aug 06 Snapshot -- Radio Multiplexor, RadioInterface Components, example XML Files
RadioController 18 Aug 06 Snapshot -- Software Radio Component Control Interface, wxPython/amara based
noiseIncreaser 18 Aug 06 Snapshot -- Python Script which cycles AWGN channel noise variance up and down slowly via CORBA control interface
Demo Waveform 18 Aug 06 Snapshot -- (SDR1)-->(SDR2), with RadioInterfaces in each SDR -- this is used for our primary Demo.

Policy Radio Engine 18 Aug 06 Snapshot -- Soar Engine to run a Policy radio, using Radio MUX library, operates on the assumption of an AWGN channel to find the max capacity based on SNR as measured from symbol error ratio (requires that Soar be preinstalled)
Gradient Radio Engine 18 Aug 06 Snapshot -- Alternate Soar Cognitive Engine which uses a hill climbing approach to minimize BER and maximize capacity

Older Stuff...

Download Components 02 Aug 06 Snapshot
radioController 25 Jul 06 Snapshot
Miscellanious Code Clippings
bitdiff.c - Compute a BER between two files
Demo Waveform (file->encode->mod->AWGN->demod->decode->file)







OSCR development is funded by Laboratory for Telecommunication Sciences .