Added FFT filtering code from FLDIGI cw.cxx and fftflt.cxx
Converted all files from C to C++.
Found a workaround for P(max) bug - see Sept 26. Adjusting dur[] initialization value from 1000.0 to 9000.0 in proces.cxx worked in most test files so far.
2013-DEC-29
Added more options to enable debugging and testing bmorse decoder while using WAV audio files as source.
Bit filter (-bfv) option does envelope smoothing - 10 msec rise time assumption based on experiences with FLDIGI.
Plot option (-plt) enables piping such as "bmorse -plt <sndfile> | xplot" to visualize the CW envelope.
AGC option (-agc) has fast rise and slow decay in case original signal has very large dynamic range.
AMP option (-amp) allows to multiply envelope signal with a constant.
DUR option (-dur) allows manually to set Bayesian decoder sample duration (used in path.c).
FFT option (-fft) enables either FFT based signal recovery or just low pass filtering.
- FFT has also peak_detection() to find if there are multiple signals in the audio frequency range.
- Parameter "delta" sets peak detection threshold
- Width (-wid) and length (-len) parameters can be used to set FFT size and chunking
2013-DEC-28
Renamed this program as "bmorse" - it stands for Bayesian Morse code decoder.
Built new functionality and options for testing both sound files and text files.
2013-SEP-26
enabled decoding from FLDIGI data feed. clamping x value to 1.0 max as FLDIGI sends values over 20.0 during startup before AGC kicks in.
BUG: P(dah) abruptly goes from near 1.0 down and the bounces back => P(max) jumps to huge values
too long dahs?
2013-SEP-25
BUG: missing word space /pause between words QUICK BROWN when < 30 db SNR ?