Sharing Electronics Projects

Spectrum-Explorer: VB.net Spectrum-Versus-Time Analyzer für den Arduino-Datalogger

scotty's picture
 
Author: scotty | Project status: Proposal | 0 contributions | 1 members | 0 comments | 1023 views

English Version see below

NEU: Software-Update

 

1) Interaktive Online-Hilfe

Einfach mit dem Help-Button das Hilfe-Fenster aufrufen und dann auf die Kopie des Buttons klicken, zu dem Sie eine Information erhalten möchten.

 

2) Umschalten auf extra FFT-Fenster (Big Wndw) mit doppelter Frequenz-Auflösung (512 Pixel)

Bisher wurde stets nur die Hälfte des theoretisch berechenbaren Frequenzbereiches angezeigt. Mit der Einstellung 'Big Wndw' kann bei einem 'Sp. Size' Wert von 1024 nun der komplette in der betreffenden Datei gespeicherte  Frequenzbereich angezeigt werden.

 

3) Temporäre Speicherung von 5 FFT-Screens sowie Memory-Button zum Betrachten der gespeicherten Screens

Die Speicherung erfolgt durch Anklicken eines von 5 Buttons im Big-Window-Modus (512 Pixel Frequenzauflösung). Das Anschauen der gespeicherten Screens ist nach einem Klick auf den Memory-Button und den Button mit der entsprechenden Screen-Nummer möglich.

 

4) Wahl zwischen weiterer Erhöhung der Rechengeschwindigkeit und höherer Auflösung mittels "Extra Sharp" Funktion

Die Bildschärfe kann durch die Halbierung eines bestimmten Schleifendurchlaufs bei der FFT-Berechnung reduziert werden. Der dabei entstehende Schärfeverlust ist in den meisten Fällen vernachlässigbar, wogegen sich die dadurch bedingte Beschleunigung des Rechentempos durchaus positiv bemerkbar macht.

 

 

Spectrum Explorer

Das in VB 2010 Express geschriebene Programm lässt sich als exe-Datei von weniger als 400 Kilobytes Umfang auf jedem Windows-Rechner mit .net framework schnell und einfach installieren und wurde speziell für die Anwendung in Verbindung mit dem Arduino-Datalogger konzipiert. Das Programm ist nicht nur zur Anwendung, sondern auch als Infornmationsquelle geeignet: Der offene Quellcode mit zahlreichen Kommentaren ist für jeden VB-Programmierer eine Fundgrube für interessante und dennoch einfache Programmieranwendungen für schnelle Grafik und FFT-Berechnungen sowie den Einsatz von Threads und Delegates. Außerdem wird gezeigt, wie man eine Datei mit Playcursor abspielt und per Maus Objekte (Skalenzeiger) ruck- und flimmerfrei über einen Hintergund bewegt, ohne dass dieser gelöscht wird.

 

Hauptanwendung:

Berechnung der FFT vs. Time Analyse von Signalen. Hierbei handelt es sich um eine dreidimensionale Darstellung der Parameter Zeit, Frequenz und Intensität, wobei die Intensität (z-Achse) als Farbwert dargestellt wird. Typische Klänge bzw. Geräusche und Signale lassen sich somit wie ein "Fingerabdruck" bzw. ähnlich wie Noten in der Musik auf einen Blick erkennen.

 

Besondere Features:

  • Geeignet für alle 16-Bit-Wavedateien in Mono (auch ohne wav-header) aus beliebiger Quelle (z.B. Cool Edit oder Arduino-Datalogger Recordersoftware).
  • Original-Abtatsrate der geladenen Dateien von unter 100 Hz bis Audio-Bereich möglich.
  • Gleichzeitige Anzeige von Zeitsignal, Zeitsignalausschnitt und Analyse über der Zeit
  • Anzeige der "klassischen" FFT zu bestimmtem Zeitunkt
  • Anzeige der Amplitude von Signalen einer bestimmten Frequenz über der gesamten Zeit
  • Akustische Wiedergabe mit Playcursor (von Dateien mit wav-header)
  • Einstellbare Abspielgeschwindigkeit zur Änderung der Tonhöhe
  • Spectrum-Size-Einstellungen: 512, 1024 und 2048
  • Automatische Frequenz-Skalierung des FFT-vs-Time-Fensters
  • Fest eingebautes Hamming-Fenster
  • Downsampling (Frequenz-Zoom) der angezeigten Datei bis 1:16
  • Verschiedene Paletten mit Shift-Möglichkeit
  • Logarithmische und Lineare Farbanzeige mit Helligkeitsregelung
  • Option zur automatischen Unterdrückung störender Spikes
  • Möglichkeit zum Erzeugen oder Editieren des Wave-Headers
  • Hohe Rechengeschwindigkeit durch Threading, Interpolationsalgorithmus und Optimierung des FFT-Rechenalgorithmus (Rechenzeiten zwischen 1 und 4 Sekunden pro Analyse je nach Einstellung und Rechner möglich)
  • Cursor zum genauen Ablesen von Zeiten
  • Eingebaute Online-Hilfe (in Bearbeitung)
  • Fortschrittsanzeige
  • Auswahl des zu analysierenden Bereiches mittels zweier per Maus verschiebbarer Cursor
  • Darstellung des Übersichts- bzw. Auswahlbereiches wahlweise als Zeitsignal oder als FFT vs Time

Das Programm ist einfach und intuitiv zu bedienen und konzentriert sich auf die für eine Analyse wichtigsten Features. Aus diesem Grunde kann auf Pulldownmenüs mit ihren verborgenen, schwer zu merkenden Einträgen komplett verzichtet werden. Alle Optionen sind auf einen Blick durch gruppierte Buttons verfügbar. Das Programm wird vom Autor, sofern zeitlich möglich, weiterhin bearbeitet und verbessert.

Die in den Screenshots gezeigten Signale wurden (mit einer Ausnahme) mit dem Arduino-Datalogger erzeugt. Es handelt sich um Erdströme unbekannter Herkunft im Frequenzbereich unter 10 Hz. Mehr dazu unter www.vlf.it  in folgenden Beiträgen:

 

Signals in the ELF-Range, Part III

http://www.vlf.it/kurt_3/ELF_News_2010_Part_III-1b.html

http://www.vlf.it/kurt_4/ELF_News_2010_Part_III-2b.html

 

ELF-Ground-Signals Gallery

http://www.vlf.it/kurt_gallery/kurt_gallery.htm

 

Hinweise zum Software-Download

Im Download sind enthalten:

  • PDF-Datei mit Kurzanleitung (Deutsch)
  • Gezipptes Verzeichnis mit Exe-Datei des Programms und zwei DLLs für den Player. Diese Dateien müssen sich (entpackt) zusammen in einem Verzeichnis mit beliebigem Namen an beliebiger Stelle befinden. Exe wie üblich zum Start doppelklicken.
  • Gezipptes Verzeichnis mit kompletten Quelldateien (bei VB .net framework sind das ja leider sehr viele) für Programmierer.
  • Gezippte Verzeichnisse mit Beispieldateien:a) 200 Hz. Einstellung FFT 512, Frequency Resolution 1 für beste Ergebnisse.
  • Gezippte Verzeichnisse mit Beispieldateien:a) 112 Hz. Einstellung FFT 1024, Frequency Resolution 4 für beste Ergebnisse.

 

Spectrum Explorer

This program written in Visual Basic 2010 Express has a size of approximately 400 kilobytes and can be downloaded quickly and easily as exe file on every Windows PC with .net framework (Tested on Windows 7 [32 and 64 bit] and Windows Vista)

The software was especially developed to be used in combination with the Arduino-Datalogger, presented earlier at this place. In the open source code of the software, many programmers will find a lot of useful information about fast graphics, FFT calculations and the application of Threads and Delegates.

 

Application

The program can be used to display the graphic results of an FFT versus Time calculation of signals. FFT versus Time is a three dimensional presentation of signals consisting of a time-, a frequency and an intensity axis which is represented by different colors. With this method even complex signals can be easily recognized by one look like a fingerprint.

 

Special Features

  • The program can be used for all 16 bit mono wave files  (with or without header) from any possible source (e.g. Cool Edit or Arduiono-Datalogger Software - see Elektor September 2014).
  • Possible sample rate of opened files from below 100 Hz up to audio range.
  • Displaying of Time signal, time signal excerpt and FFT versus Time at the same time.
  • Alternatively displaying of classical FFT at a defined time and...
  • Additional displaying of signal amplitude at a selectable frequency in the FFT window.
  • Acoustic playback of the opened files with play cursor.
  • The header needed to play back files can be created and edited in a special sub window.
  • Variable playback speed to change pitch.
  • Spectrum size selectable between 512, 1024 and 2048.
  • Automatic frequency scaling of the FFT vs Time window.
  • Implemented Hamming window.
  • Downsampling (=  frequency zoom) from 1 to 16 .
  • Different palettes with color shift option.
  • Logarithmic and Linear intensity scaling.
  • Optional automatic Spike Limiter function.
  • High calculation speed due to threading, interpolation and calculation-optimizing. Calculation times are between 1 and 4 seconds depending on the appropriate settings.
  • Time cursor
  • Progress bar during calculation
  • Range of analyzing selectable by two movable cursors in time signal (overview) window
  • Content of overview window can optionally be displayed as FFT versus time

Online Help under construction !

The program is easy to operate and focuses on the features that are important for an analysis. Because of this, any pulldown menu with its hidden and hard to memorize entries could be omitted. All options are visible at the same time by using structured clickable Buttons.

The author will continue the improvement of the software in case of available time.

The signals presented in the screenshots were recorded with the Arduino Datalogger (see elektor September 2014). The signals were created by earth currents with frequencies below 10 Hz and are of unknown origin.

See also:

 

Signals in the ELF-Range, Part III

http://www.vlf.it/kurt_3/ELF_News_2010_Part_III-1b.html

http://www.vlf.it/kurt_4/ELF_News_2010_Part_III-2b.html

 

ELF-Ground-Signals Gallery

http://www.vlf.it/kurt_gallery/kurt_gallery.htm

English Version of Quick Reference will follow

Attachments: 
12 photos | 0 schematics | 1 PCB(s) | 4 software files | 0 other
You have to be logged in to open attachments
9140804170

Spectrum-Explorer: VB.net Spectrum-Versus-Time Analyzer für den Arduino-Datalogger

  • Please log in to see the project's files and to post contributions or comments to this project.
Syndicate content