Quick start:
Encode smpte.ppm PNM picture file with 320x240 pixels to encoded.wav
WAV audio file with 8000 Hz sample rate, 16 bits and only 1 (real) channel:
./encode encoded.wav 8000 16 1 smpte.ppm
Start recording to recorded.wav
audio file and stop after 60 seconds:
arecord -c 1 -f S16_LE -r 8000 -d 60 recorded.wav
Start playing encoded.wav
audio file:
aplay encoded.wav
Decode recorded.wav
audio file to decoded.ppm
picture file:
./decode decoded.ppm recorded.wav
Watch decoded.ppm
picture file in feh:
feh decoded.ppm
Prerequisite: disorders
Encode smpte.ppm to analytic audio signal, add multipath, AWGN, SFO, CFO, decode and compare to original in feh:
./encode ping.wav 8000 16 2 smpte.ppm 2000 && ../disorders/multipath pong.wav ping.wav ../disorders/multipath.txt 10 && ../disorders/cfo ping.wav pong.wav 234.567 && ../disorders/sfo pong.wav ping.wav 147 && ../disorders/awgn ping.wav pong.wav -30 && ./decode decoded.ppm ping.wav && feh decoded.ppm smpte.ppm
- Robust frequency and timing synchronization for OFDM
by Timothy M. Schmidl and Donald C. Cox - 1997 - On Timing Offset Estimation for OFDM Systems
by H. Minn, M. Zeng, and V. K. Bhargava - 2000