Bugs, features, coding issues

Bugs, features, coding issues

Ricardo Martins comes on board with NURC to help code up JANUS examples

We've been fortunate to be able to engage the services of Ricardo Martins to help us clean up the code for the example implementations that we've been using experimentally. Ver 0.3 is now streamlined and a C version is almost complete. It has also been made Octave compliant. If you have a specific interest in Matlab, Octave or C versions, let us know so we know where we need to put our effort.

For the Matlab code, so far (in brief) Ricardo has made the following changes:
- The user can now tweak JANUS settings using a simple API.
- The XML files were replaced by a single CSV file that is also used by the C implementation.
- All files were converted to a single coding style.
- Duplicated code was moved to a single place and several constants were moved to a "defaults" file.
- Several functions were simplified.
- A few test scripts were written to assess the correctness of the decoding/encoding processes.
- The HFM sweep match filter was replaced by a GO-CFAR filter running on top the script provided by Dale Green (cconvolv.m). (credit goes to Giovanni).
- The current implementation can now read several transmissions in the same WAVE file.
- Stream decoding was implemented as an hack and is not in the repository.
- Viterbi now uses soft decoding (again, credit goes to Giovanni).
- The code is now compatible with GNU/Octave.

As regards thwe C implementation:
- Transmission of the JANUS waveform is fully implemented as a library.
- A simple command line utility, similar in functionality to TX_JANUS, was written as an example.
- The library is capable of saving the waveform to WAV files and raw files and stream the signal in realtime to a soundcard (ALSA /Pulseaudio).
- Decoding of the JANUS signal is partially implemented. The missing pieces are basebanding and the HFM sweep detection.
- A few unit tests were written to guarantee the correctness of the main stages of coding and decoding.

The next thing to take care of is basebanding (the signal processing is inexplicably still being performed at carrier frequency)

These upgrades will be included when we release ver 1.0 in September.