|
||
---|---|---|
.. | ||
Makefile | ||
NLMSvariants.c | ||
README.md | ||
graphResults_template.html | ||
nlms_types.h |
README.md
Installation
Use $ make
or compile it anywhere else, $ make win
does the trick on windows and cygwin/gitbash.
However if you use Visual Studio use the C++ implementation in ../src/cpp_implementation.
It's a carbon copy of the *.c file but VS wants to use a *.cpp file.
Features
This little piece of code compares 3 different implementations of a least mean square filter.
- local mean
- direct predecessor
- differential predecessor
PPM files can be used for input at this iteration. Output will be generated as .txt files with predicted value generated by the filter and its error value as well as given actual value from the PPM file. Furthermore there is an output as an svg graph to compare the implementatiosn on a visual level. These graphical results are build from graphResults_template.html which creates the actual output to graphResults.html. Open this file to see the results. You can hide graphs by clicking on its name for better visibility.
Use $ ./lms -h
for help.
Usage
There are a bunch of options you can predefine but do not have to. The only parameter needed is -i which is the inputfile.
Parameter | Description | StdVal |
---|---|---|
-i | The inputfile, has to be PPM. | none |
-n | Amount of input data used. | 500 |
-w | Size of M (window). | 5 |
-c | Choose RGB color channel, green has least noise. | green |
-l | Learnrate of machine learning. | 0.4 |
-g true | include graph building. Choose for amount of input data lower than 1200. | none |
-s | Seed randomizing weights. Choose for repoducability. | time(NULL) |
This code is ANSI compatible no POSIX, C99, C11 or GNU libs, because it had to be VS compatible . There are way easier methods like getline() or getopt(), I know ...