dabs
dabs is a DAB/DAB+ decoder. (Well, actually only DAB+.)
It uses an SDR (software-defined radio) device to receive data over the
air transmitted by, well, a DAB/DAB+ emitter, and extracts audio content from
it, playing it in your computer.
It supports USRP devices (I use a B210) and RTL-SDR devices.
Status: decodes local radio channels around Nice/France. May fail to work
for other locations. Slow, basic documentation (README file).
Download
2025-07-05: git.tar.gz
To use:
mkdir /tmp/dabs
cd /tmp/dabs
wget http://sedcode.eu.org/dabs/git.tar.gz
tar xf git.tar.gz
rm git.tar.gz
git reset --hard
2025-07-05: dabs-2025-07-05.tar.bz2
[README]
Old releases
2023-01-27: dabs-1.1.tar.bz2
dabs-1.0.tar.bz2
dabs-0.9.tar.bz2
dabs-0.8.tar.bz2
dabs-0.7.tar.bz2
dabs-0.5.tar.bz2
dabs-0.5-pre1.tar.bz2
dabs-0.4.tar.bz2
dab-0.3.tar.bz2
dab-0.1.tar.bz2
dab-0.0.tar.bz2
Sample DAB+ data
Here is a DAB+ recording (format: IQ data, 16 bits for I, 16 bits for Q,
little endian): rec-for-optim.raw The file
is 131 MiB, will take some time to download.
Documentation
The specifications I used are:
ETSI EN 300 401:
Radio Broadcasting Systems; Digital Audio Broadcasting (DAB) to mobile,
portable and fixed receivers
ETSI TS 102 563:
Digital Audio Broadcasting (DAB); DAB+ audio coding (MPEG HE-AACv2)
ETSI TS 101 756:
Digital Audio Broadcasting (DAB); Registered Tables
I also found Introduction to DAB Receiver
[source],
which provided nice information.
As for websites, I looked at:
- worlddab.org
for the specifications
- wikipedia
about band 3 in France
- DAB Ensembles Worldwide
for the available channels around me
- DAB radio design and implementation
- dsp.stackexchange.com
for Carrier frequency offset (CFO) estimation using cyclic prefix (sorry for this link, it was very useful though)
- ML Estimation of Time and Frequency Offset in OFDM Systems
- wikipedia
for Viterbi decoder (not very useful)
- The Viterbi Algorithm: A Personal History
- Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm
the article of Viterbi (I didn't understand a shit in there)
- Coding and decoding with convolutional codes.The Viterbi Algorithm
not very clear either
- tutorial on Viterbi decoder
definitely the best source of information for Viterbi decoding that I found!
My brain can get the theoretical stuff, but if it's not backed by the correct
intuition, I'm doomed, and this website gave me the correct intuition
- reed-solomon-WHP031.pdf
was a good source to understand Reed-Solomon. I read some other documents, so
maybe not enough by itself
- for Fire code I think the book Error Control Coding by Lin and
Costello is a good source. The chapter 5 is what I implemented, especially 5.5.
Fire codes are just a type of cyclic code that can be decoded with faster
methods than the generic one for cyclic codes. It was not necessary to use
a special method (and it did not work, I messed up somewhere), so I went the
simple basic generic path. It's no big deal, works ok on my setup. Funny thing
is we pickup the shortest error correction and apply it, but it may lead to
incorrect decoded result, which I think is fine because later processing will
reject the data. Or not... The book can be downloaded (as of 2025-07-05) on
Anna's archive. If it fails for you,
I can send a copy
Those links were functional 2021-09-07.
Related work
Free software for receiving DAB/DAB+
Here are some other implementations of DAB/DAB+ receiving. They are way more
featured than mine.
- qt-dab (you can find
dab-cmdline there as well) is the ultimate free software DAB/DAB+
receiver. Unfortunately I couldn't make it run on my system, too complex
(seriously? Qt?). But I did read the code and without it my program would
probably not exist.
- sdrangel (I could not
find a proper website, sorry, github...) was the program I used to see
that my local dumps were decodable! and so my program did not work. It's
a nice GUI thing. For DAB/DAB+ it uses dab-cmdline code from what I
understand.
- dablin was
also a good source of information. I did not run the program, just read
the source (the link is not to dablin itself but the, what, company?
organization? making dablin, or distributing/maintening it, I don't
really know). It was a good source of information too.
Those links were functional 2021-09-07.
There are surely others. This is what I found.
Free software for transmitting DAB/DAB+
There is a transmitting free software thing also,
ODR mmbTools.
Looks very complex to me, but they claim to be production ready, so, well,
there it is. I didn't look at it, I simply know it exists.
This link was functional 2021-09-07.
I don't know of other transmitting DAB/DAB+ free software.
Contact: see this
Created: 2021-07-25
Last update: 2025-07-05