Online Offline Learning for Sound-based Indoor Localization Using Low-cost Hardware Data

Citation Author(s):
Universitiy of Applied Sciences Trier - Environmental Campus Birkenfeld
Submitted by:
Ruediger Machhamer
Last updated:
Tue, 05/17/2022 - 22:21
Data Format:
Link to Paper:
0 ratings - Please login to submit your rating.


7200 .csv files, each containing a 10 kHz recording of a 1 ms lasting 100 hz sound, recorded centimeterwise in a 20 cm x 60 cm locating range on a table. 3600 files (3 at each of the 1200 different positions) are without an obstacle between the loudspeaker and the microphone, 3600 RIR recordings are affected by the changes of the object (a book). The OOLA is initially trained offline in batch mode by the first instance of the RIR recordings without the book. Then it learns online in an incremental mode how the RIR changes by the book. Classification rates of up to 97.5% for offline test data (2nd and 3rd instance without room change) and up to 90% for online test data (3 instances with book) can be achieved.

Matlab Implementation of the described Online Offline Learning Architecture (OOLA) and Visualizations/Plots of Simulations (

The files include

  • Data Generation Sourcecodes
    • Microcontroller sourcecode (path:DataGeneration/controller.ino)
    • Node-RED flow (path:DataGeneration/node_RED_flow.txt)
    • Python file manipulation (path:DataGeneration/Python/
    • Sound file generator (path:DataGeneration/soundGenerator.m)
  • Raw data
    • Offline data (path:Matlab/load and preprocess offline data/data)
    • Online data (path:Matlab/online data load and preprocess/data)
  • Preprocessed data
    • Offline data (path:Matlab/load and preprocess offline data/Data3600.mat)
    • Online data (path:Matlab/online data load and preprocess/DataOnline3600.mat)
  • The Online Offline Learning Architecture (OOLA)
    • Configurable (path:Matlab/OOL/InitOOL.m)
    • With basic 1NN & K-Means implementations (path:Matlab/OOL/)
  • Plots and visualisations of simulations
    • Basic LVQ simulator (path:Plots/LVQ Simulator/LVQSimulatorV003.m)
    • K-Means/LVQ comparison simulator (path:Plots/LVQ Simulator/kmeanslvqprototypes.m)
    • Overall results bar charts (path:Plots/ool results plot 1/plotergebnisse.m)
  • Statistics
    • K-Means prototypes classification rates (path:Matlab/lvq and kmeans test/kMeansPrototypes)
    • LVQ prototypes classification rates (path:Matlab/lvq and kmeans test/LVQPrototypes)
    • OOLA classification rates depending on configurations (path:Results/OOL/)
    • OOLA processing data for classification (path:Results/OOL/)

folder 'load and preprocess offline data': matlab sourcecodes and raw/working offline (no additional obstacle) data files

folder 'lvq and kmeans test': matlab sourcecodes to test and compare in-sample failure with and without LVQ

folder 'online data load and preprocess': matlab sourcecodes and raw/working online (additional obstacle) data files

folder 'OOL': matlab sourcecodes configurable for case 1-4

folder 'OOL2': matlab sourcecodes for case 5

folder 'plots': plots and simulations