diff options
-rw-r--r-- | INSTALL.md | 75 | ||||
-rw-r--r-- | README.md | 24 | ||||
-rw-r--r-- | TODO | 20 |
3 files changed, 69 insertions, 50 deletions
@@ -1,6 +1,9 @@ +# Installation + You have 3 ways to install odr-dabmod on your host: -# Using your linux distribution packaging system +## Using your linux distribution packaging system + `odr-dabmod` is available on the official repositories of several debian-based distributions, such as Debian (from Debian 12), Ubuntu (from 24.10), Opensuse and Arch. @@ -9,17 +12,21 @@ If you are using Debian 12 (Bookworm), you will need to **Notice**: this package does not include the web-based GUI and Digital Predistortion Computation engine -# Using installation scripts +## Using installation scripts + If your linux distribution is debian-based, you can install odr-dabmod -as well as the other main components of the mmbTools set with the +as well as the other main components of the mmbTools set with the [Opendigitalradio dab-scripts](https://github.com/opendigitalradio/dab-scripts.git) -# Compiling manually +## Compiling manually + Unlike the 2 previous options, this one allows you to compile odr-dabmod with the features you really need. -## Dependencies -### Debian Bullseye-based OS: -``` +### Dependencies + +#### Debian Bullseye-based OS + +```sh # Required packages ## C++11 compiler sudo apt-get install --yes build-essential automake libtool @@ -44,29 +51,37 @@ sudo apt-get install --yes libsoapysdr-dev sudo apt-get install --yes libbladerf-dev ``` -## Compilation +### Compilation + 1. Clone this repository: - ``` + + ```sh # stable version: git clone https://github.com/Opendigitalradio/ODR-DabMod.git # or development version (at your own risk): git clone https://github.com/Opendigitalradio/ODR-DabMod.git -b next ``` + 1. Configure the project - ``` + + ```sh cd ODR-DabMod ./bootstrap ./configure ``` + 1. Compile and install: - ``` + + ```sh make sudo make install ``` -### Configure options +#### Configure options + The configure script can be launched with a variety of options: + - Disable ZeroMQ input (to be used with ODR-DabMod), output and remotecontrol: `--disable-zeromq` - Disable the binding to the UHD driver for USRPs: `--disable-output-uhd` - Compile using the `-ffast-math` option that gives a substantial speedup at the cost of floating point correctness: `--enable-fast-math` @@ -79,45 +94,52 @@ The configure script can be launched with a variety of options: Create debugging files for each DSP block for data analysis: `--enable-trace` For more information, call: -``` + +```sh ./configure --help ``` -#### Performance optimisation +##### Performance optimisation + While the performance of modern systems is good enough in most cases to run ODR-DabMod, it is sometimes necessary to increase the compilation optimisation if all features are used or on slow systems. Tricks for best performance: -* Do not use `--disable-native` -* Use `--enable-fast-math` -* Add `-O3` to compiler flags -* Disable assertions with `-DNDEBUG` +- Do not use `--disable-native` +- Use `--enable-fast-math` +- Add `-O3` to compiler flags +- Disable assertions with `-DNDEBUG` Applying all together: -``` + +```sh ./configure CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" --enable-fast-math ``` -#### Checking for memory usage issues +##### Checking for memory usage issues + If your compiler supports it, you can enable the address sanitizer to check for memory issues: -``` + +```sh ./configure CFLAGS="-fsanitize=address -g -O2" CXXFLAGS="-fsanitize=address -g -O2" ``` The resulting binary will be instrumented with additional memory checks, which have a measurable overhead. Please report if you get warnings or errors when using the sanitizer. -## SoapySDR support and required dependencies +### SoapySDR support and required dependencies + SoapySDR is a vendor-neutral library to drive SDR devices. It can be used to drive the HackRF and the LimeSDR among others. Required dependencies that need to be installed are, in order: -1. SoapySDR itself from https://github.com/pothosware/SoapySDR -1. The LimeSuite for the LimeSDR from https://github.com/myriadrf/LimeSuite -1. HackRF support for SoapySDR from https://github.com/pothosware/SoapyHackRF + +1. SoapySDR itself from <https://github.com/pothosware/SoapySDR> +1. The LimeSuite for the LimeSDR from <https://github.com/myriadrf/LimeSuite> +1. HackRF support for SoapySDR from <https://github.com/pothosware/SoapyHackRF> ODR-DabMod will automatically recognise if the SoapySDR library is installed on your system, and will print at the end of `./configure` if support is enabled or @@ -125,5 +147,6 @@ not. A configuration example is available in `doc/example.ini` -## BladeRF support +### BladeRF support + In order to use `--enable-bladerf`, you need to install the `libbladerf2` including the -dev package. @@ -1,5 +1,5 @@ -OVERVIEW -======== +# OVERVIEW + ODR-DabMod is a *DAB (Digital Audio Broadcasting)* modulator compliant to ETSI EN 300 401. It is the continuation of the work started by the Communications Research Center Canada, and is now pursued in the @@ -9,8 +9,7 @@ ODR-DabMod is part of the ODR-mmbTools tool-set. More information about the ODR-mmbTools is available in the *guide*, available on the [Opendigitalradio mmbTools page](http://www.opendigitalradio.org/mmbtools). -Features --------- +## Features - Reads ETI and EDI, outputs compliant COFDM I/Q - Supports native DAB sample rate and can also resample to other rates @@ -38,6 +37,7 @@ Features - ZeroMQ PUB and REP output, useful for sending IQ to GNURadio flowgraphs. Development has stalled on the following topics: + - Experimental prototype about digital predistortion for PA linearisation. - See `python/dpd/README.md` - A web GUI for control and supervision of modulator and predistortion engine. See `python/gui/README.md` @@ -53,18 +53,18 @@ ODR-DabMod. The `python/` directory contains a web-based graphical control interface and the digital predistortion project. -INSTALL -======= -See the `INSTALL.md` file for installation instructions. +## Install + +[Check the installation instructions.](INSTALL.md) + +## License -LICENCE -======= See the files `LICENCE` and `COPYING` -CONTACT -======= +## Contact + Matthias P. Braendli *matthias [at] mpb [dot] li* With thanks to other contributors listed in AUTHORS -http://opendigitalradio.org/ +<http://opendigitalradio.org/> @@ -1,25 +1,21 @@ +# To do + This TODO file lists ideas and features for future developments. Unless written, no activity has been started on the topics. - -Smaller things --------------- +## Smaller things Remove GuardIntervalInserter implementation for window==0, as it was shown both are equivalent. +## Resampler improvements -Resampler improvements ----------------------- - * Assess quality of window currently used. - * Evaluate usefulness of other windows. - * Distribute energy of Fs bin equally to both negative and positive - frequencies in the back buffer. +- Assess quality of window currently used. +- Evaluate usefulness of other windows. +- Distribute energy of Fs bin equally to both negative and positive frequencies in the back buffer. +## Review CicEq -Review CicEq ------------- The CIC Equaliser was used for the USRP1 to compensate for spectrum flatness. It is not documented, and its effect poorly explained. Review if still needed, and document appropriately. - |