Procalysis Signal und Biomed

11/22/2010

Technologien: Java, SWT, JFace, XML, Datenbanken (Apache Derby/Java DB, HyperSQL, MySQL, Postgresql), digitale Signalverarbeitung (DSP), diverse Bibliotheken

Procalysis® („Process analysis“) ist ein modulares Softwarepaket zur einfachen Signalanalyse mit dem Schwerpunkt der Verarbeitung biomedizinischer Zeitreihen. Nach einem ersten Prototypen während meiner frühen Studienzeit konnte ich die Software im Rahmen meiner Diplomarbeit grundlegend überarbeiten und verbessern. Zu den Highlights gehören:

  • Intuitive Anwendung komplexer DSP Funktionen (z.B. FFT, Filter oder Wavelets) ohne Programmierkenntnisse.
  • Die Verarbeitung sehr großer Datenmengen (z.B. hochauflösende Zeitreihen im Gigabyte Bereich) wird durch zwei Mechanismen unterstützt.
    • Eine effiziente Speicherverwaltung mit extrem einfacher API verwendet randomisiertes Paging und Memory Mapped Files. Es werden nur jeweils kleine Bereiche des Datenobjekts im Speicher gehalten, während sich der Großteil der Daten in Dateien befindet. Die Verwaltung wurde mit der Zielsetzung entwickelt, auch noch bei konkurrierendem Zugriff (Multithreading), möglichst effizient zu arbeiten.
    • Ein spezieller Darstellungsalgorithmus skaliert optimal mit steigender Signalgröße und ermöglicht Echtzeit Zoom- und Scrollfunktionen. Für unterschiedliche Detailgrade werden hierfür zusätzliche Informationen berechnet, auf die dann statt der Originaldaten zugegriffen wird.
  • Makros oder „Click’n’Code“: Benutzer können ohne Programmierung zum Zwecke von Serienanalysen an einem Beispieldatensatz Vorgänge ausführen, die das Programm später bei beliebig vielen Objekten nachahmt. Die einfache Kombination elementarer Funktionen schafft somit höherwertige, komplexe Funktionen. Dessen automatisierte Anwendung führt zu einer imensen Arbeitserleichterung.
  • Skripte: Zur Erweiterung der Software können Skripte programmiert werden, die sich auch fest in das Programm einbinden lassen. Hierfür kam die Skriptsprache Beanshell (www.beanshell.org) zum Einsatz. Zur komfortablen Programmierung wurde ein Skript-Editor mit Syntax-Highlighting und Content Assistant entwickelt.
  • Datenportal: Zur einfachen Datenorganisation können Daten strukturiert in einer internen oder externen Datenbank abgelegt werden. Hierfür wurde ein spezielles Datenbankschema entwickelt, das hierarchische Strukturen zusammen mit Signaldaten und Zusatzinformationen verarbeitet. Eine abstrakte Datenhaltungsschicht ermöglicht die Verwendung unterschiedlicher Datenbank Systeme.

Obwohl Procalysis ca. 40 verschiedene Bibliotheken verwendet, ist ein Großteil der DSP- und Analysefunktionen in Eigenentwicklung entstanden.


Procalysis Signal / Biomed kam im Rahmen verschiedener wissenschaftlicher Studien zum Einsatz und wird derzeit als marktreifes Produkt von der Simplana GmbH (www.simplana.de) angeboten.

Hauptfenster von Procalysis: Signal Tabs (oben), Kennwerte (rechts), Datenportal (unten):

Der Skripteditor:

 


 


Leave Comment



Blog

BigDecimal (.NET)
An arbitrary large (or small) decimal number implementation for .NET | 8/3/2019

BigDecimal represents a decimal number with arbitrary precision. It is based on a fraction ... Read More

NanoNet - simple Java neural network library
Using backpropagation and sigmoid activation function. | 4/14/2019

NanoNet is a very simple Java neural network library using backpropagation and sigmoid ... Read More

Java async/await nonblocking code library
Write sequential style nonblocking code using a fixed threadpool with Async-Complete for Java | 4/1/2019

Async-Complete (aka Async-Await) is a library for writing asynchronous code in a more ... Read More

More Blog Entries