Fork me on GitHub

Декодирование цифрового сигнала с помощью dsd и gqrx

для информации: https://www.george-smart.co.uk/scrapbook/digital_speech_decoder/ - socat stdout udp-listen:7355| padsp dsd -i - -o /dev/dsp

  • запускаем gqrx настраиваемся на частоту и нажимаем кнопку UDP, чтобы вещание пошло через 7355 порт

Настройки GQRX:

  • Mode: Narrow FM

  • настройки Mode (жмем три точки) пункт tau ставим в off

Сборка DSD под Ubuntu

The build process on Xubuntu 14.04.1 LTS was very simple, thanks in part to Aaron VK3ABX. It goes a little something like this:

  • Update the APT package manager

  • Download the basic building essentials

  • Build IT++

  • Build mbelib

  • Build dsd

Getting Started

The first things to do are to update the APT package manager and then get some of the basic compiling tools we will require.

sudo apt-get update
sudo apt-get install build-essential git make cmake

I will make a folder in my home directory for the experimentation.

mkdir ~/digital_speech
cd ~/digital_speech

From there, I will create separate folders for each part of the process.

Building itpp

IT++ is a C++ library of mathematical, signal processing and communication classes and functions. Its main use is in simulation of communication systems and for performing research in the area of communications. It does a lot of the heavy lifting for dsd.

Download and extract it into a folder inside the folder you made above and then change into the newly extracted folder.

wget -O itpp-latest.tar.bz2 http://sourceforge.net/projects/itpp/files/latest/download?source=files
tar xjf itpp-latest.tar.bz2
cd itpp-4.3.1/

You should hopefully get the latest version of the IT++ library (called itpp) extracted and be inside the extracted folder. ON my computer the path is ‘~/digital_speech/itpp-4.3.1’

Now make a build directory and change into it

mkdir build && cd build

Finally we run the cmake command to write our make-script and check our make environment. You should get no errors. The ‘..’ at the end is important, since this refers to the parent directory.

cmake ..

Once you have got the above command to finish without errors, you are ready to start the build process. The -j flag tells make to use all the cores it can. It took just over a minute on my work’s PC.

make -j

Finally, you need to install the libraries

sudo make install

PS.  Последняя версия itpp-4.3.1.tar.bz2 не компилируется на Ubuntu 18.04 LTS, как вы уже писали. Но он обычно компилируется на Ubuntu 16.04 LTS с GCC 5.4.

источник: https://ubuntugeeks.com/questions/281515/make-issue-the-last-argument-must-be-8-bit-immediate Я только что обнаружил, что у разработчиков есть специальные специальные фиксации для исправления ошибки . Поэтому мы можем установить исходную версию с помощью:

sudo apt-get install autoconf automake libtool build-essential cmake git \
libblas-dev liblapack-dev libfftw3-dev
cd ~/Downloads
git clone https://git.code.sf.net/p/itpp/git itpp-git
cd itpp-git
./autogen.sh
./configure
mkdir build
cd build
cmake ..
make
sudo make install

Once this is done, proceed to the next step.

Building mbelib

mbelib is a written description of how certain voice encoding/decoding algorithms could be implemented. It comes with the following patent notice:

This source code is provided for educational purposes only. It is a written description of how certain voice encoding/decoding algorithms could be implemented. Executable objects compiled or derived from this package may be covered by one or more patents. Readers are strongly advised to check for any patent restrictions or licensing requirements before compiling or using this source code.

We go back to the experimentation directory.

cd ~/digital_speech/

We can this time use Git to download the source code for us.

git clone https://github.com/szechyjs/mbelib.git
cd mbelib/

Again, we create a build directory and change into it

mkdir build && cd build

We again run the configure script on the parent directory (..).

cmake ..

And again, as with IT++, we run the make command.

make

On the work PC this took 19 seconds. We install these libraries into the system with the following

sudo make install

And then we progress on to the next step.

Building DSD

DSD is able to decode several digital voice formats from discriminator tap audio and synthesize the decoded speech. Speech synthesis requires mbelib, which is a separate package. DSD is the program we will interact with to decode our digital speech.

Before we can compile the DSD binaries, we need to get a few other libraries in addition to the two we have just built and installed. If you get errors about portaudio19-dev needing libjack-dev, then a sly way around this is to install libjack-jackd2-dev too (just paste it on the end of the following line). It’s not needed, but for odd reasons, portaudio sometimes wants jackd development files.

sudo apt-get install libsndfile1-dev fftw3-dev liblapack-dev portaudio19-dev

Once downloaded and installed we go back to the experimentation directory

cd ~/digital_speech/

We can again use Git to download the source code for us.

git clone https://github.com/szechyjs/dsd.git
cd dsd/

Again, we create a build directory and change into it

mkdir build && cd build

We again run the configure script on the parent directory (..).

cmake ..

And again, as with IT++, we run the make command.

make

On the work PC this took 31 seconds. At this point the build is done. You can install them with

sudo make install

Using dsd

The ‘official’ operation is described on the dsd wiki operation page.

social