aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INSTALL.md75
-rw-r--r--README.md24
-rw-r--r--TODO20
3 files changed, 69 insertions, 50 deletions
diff --git a/INSTALL.md b/INSTALL.md
index b53e204..7309158 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -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.
diff --git a/README.md b/README.md
index a331c8b..2ec479a 100644
--- a/README.md
+++ b/README.md
@@ -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/>
diff --git a/TODO b/TODO
index 4580945..6fd9553 100644
--- a/TODO
+++ b/TODO
@@ -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.
-