The package contains a DSP lilbrary libdspfec.a and various utility programs for testing and demonstration purposes. The included Makefile will build the library and all executables.

The package contains a DSP lilbrary libdspfec.a and various utility programs for testing and demonstration purposes. The included Makefile will build the library and all executables.

−

=== Operational constraints ===

=== Operational constraints ===

−

# The reference implementation uses 48 ksps. For other sample rates the filter coefficients in nyquist.c must be reworked<ref>dpsk.h line 58-61</ref>. It is therefore easier to simple resample to 48 ksps.

+

# The reference implementation uses 48 ksps. For other sample rates the filter coefficients in nyquist.c must be reworked<ref>dpsk.h line 58-61</ref>. It is therefore easier to resample to 48 ksps.

The following will take the data from input.dat, and output 48 ksps baseband that can be sent to audio:

+

+

cat input.dat | ./mod > baseband.raw

+

+

The following will take the baseband data, demodulate and decode it:

+

+

can baseband.raw | ./demod > output.dat

+

+

We can also combine it into one command:

+

+

cat input.dat | ./mod | ./demod > output.dat

+

+

input.dat and output.dat should be identical.

+

+

In case the cat command is not useful, e.g. because we call demod from a GUI and use pipes to connect we can use:

+

+

./demod < input.pipe > output.pipe

+

+

input.pipe would be the pipe for raw samples from the receiver (connected to the output of an USB demodulator at 48ksps) and output.pipe will contain the demodulated data. The same trick can be sued with mod.

== Utilities ==

== Utilities ==

=== addcw ===

=== addcw ===

+

+

Generates morse code signal and adds it to the input signal. See manual page for details.

=== addnoise ===

=== addnoise ===

+

+

Generates Gaussian noise and adds it to the input signal. See manual page for details.

demod

Examples

The following will take the data from input.dat, and output 48 ksps baseband that can be sent to audio:

cat input.dat | ./mod > baseband.raw

The following will take the baseband data, demodulate and decode it:

can baseband.raw | ./demod > output.dat

We can also combine it into one command:

cat input.dat | ./mod | ./demod > output.dat

input.dat and output.dat should be identical.

In case the cat command is not useful, e.g. because we call demod from a GUI and use pipes to connect we can use:

./demod < input.pipe > output.pipe

input.pipe would be the pipe for raw samples from the receiver (connected to the output of an USB demodulator at 48ksps) and output.pipe will contain the demodulated data. The same trick can be sued with mod.

Utilities

addcw

Generates morse code signal and adds it to the input signal. See manual page for details.

addnoise

Generates Gaussian noise and adds it to the input signal. See manual page for details.