-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathChangeLog
More file actions
97 lines (70 loc) · 4.07 KB
/
Copy pathChangeLog
File metadata and controls
97 lines (70 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
(C) 2013,2014 AG1LE Mauri Niininen
2014-JUL-19
git tag -a v0.1.04 -m "Release v0.1.04"
Removed all static variables to enable running multiple instances - used in FLDIGI experimental release.
2014-JUN-22
Removed most static variables to reduce size of .bss segment in order to be able to run in Raspberry Pi.
2014-JUN-14
Added TCL/sqlite3 based testing framework to capture and process CER vs SNR test data.
See test/cer_vs_snr_test.tc and test/sqlite.db
2014-JUN-13
Added GIT version tagging feature bmorse -ver returns the tag+version number
Use git tag -a v0.1.02 -m "Release v0.1.02" to update tag -
see http://stackoverflow.com/questions/1704907/how-can-i-get-my-c-code-to-automatically-print-out-its-git-version-hash
2014-MAY-25
Fixed bugs and syncronized with FLDIGI 3.21.77 Bayesian v3 version
2014-JAN-22
Fixed bug in savep.cxx - check if psum is zero before trying to divide by it.
I think is is the root cause of bug mentioned in Sep-26-2013 - Pmax growing to huge values
2014-JAN-02
New release bmorse-0.1.01
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 ?
FOUND: enabled noise.c processing in morse.c
changed to:
noise_(&x, &rn, &zout);
retstat = proces_(&zout, &rn, &xhat, &px, &elmhat, &spdhat, &imax, &pmax);
much better decoding with low SNR test signals.
2013-SEP-25
run "./morse t test/test20db.in | less"
BUG: QUICD and FOB when high 20 dB SNR?
D should be K and B should be X
for some reason last 'dah' following word space gets decoded as 'dit'.
FOUND: Initl.c - line 123 1, 1, 0, 0, 0, 0, // mauri 2013-09-25 bugfix
had 0 instead of 1 in state k=4
2013-SEP-02 Morse decoding works on C++ version. Added decoding struct TREE in transl.c
and logic to translate incoming morse symbols. This is marked as version v01.
2013-SEP-01 Initial version. Original Fortran sources compiled with
gfortran -g *.f
produces a.out executable program.
Based on initial testing the element state estimation works, but translating letters
has still problems. Produces a sequence of letter states but translation to actual
characters produces incorrect letters.
Compilation of C-sources produced by f2c is done with following commands:
gcc -c *.c
gcc *.o -lf2c -lm
produces a.out executable program. The output of both versions of a.out is in
output_c.txt
output_f.txt
These have minor differences - source still unknown.