kramann.info
© Guido Kramann

Login: Passwort:










EmbSyst
1 day_by_day
2 Eingebettete_Systeme
..2.1 Softwareentwicklung
....2.1.1 AgileSoftwareentwicklung
....2.1.2 Verhalten
....2.1.3 Entwurfsmuster
....2.1.4 FuzzyRegler
....2.1.5 Uebung
..2.2 Arduino
....2.2.1 Uebung1
..2.3 Android
....2.3.1 UML
......2.3.1.1 Volumenberechnung
......2.3.1.2 UML_Klassendiagramm
......2.3.1.3 Konstruktor
......2.3.1.4 Statische_Variable
....2.3.2 bluej
....2.3.3 Threads
....2.3.4 Interfacedesign
....2.3.5 Android
......2.3.5.1 Getting_Started
......2.3.5.2 App
......2.3.5.3 Beispielprojekt
........2.3.5.3.1 Richtlinien
........2.3.5.3.2 Anforderungen
........2.3.5.3.3 Layout
........2.3.5.3.4 Projekt_einrichten
........2.3.5.3.5 Refactoring
........2.3.5.3.6 Icon
........2.3.5.3.7 Icon2
........2.3.5.3.8 Kurzanleitung
........2.3.5.3.9 Architektur
........2.3.5.3.10 Anwendungsklasse
......2.3.5.4 Threads
......2.3.5.5 Activities
......2.3.5.6 Was_ist_wo
......2.3.5.7 Regelungssysteme
........2.3.5.7.1 Servo
........2.3.5.7.2 Fahrzeug
......2.3.5.8 ADB_Apps
......2.3.5.9 Veroeffentlichen
......2.3.5.10 Einzelheiten
........2.3.5.10.1 Bildschirmaufloesung
........2.3.5.10.2 Parameter
........2.3.5.10.3 Permission
........2.3.5.10.4 Latenzzeit
......2.3.5.11 Tonerkennung
........2.3.5.11.1 Wahrscheinlichkeitsrechnung
........2.3.5.11.2 Kovarianz_Scilab
........2.3.5.11.3 Java_Threads
........2.3.5.11.4 Java_Reflection
....2.3.6 Processing
......2.3.6.1 Installation
......2.3.6.2 Erste_Schritte
......2.3.6.3 Mechatronik
......2.3.6.4 Bibliotheken
......2.3.6.5 Uebung
......2.3.6.6 Snippets
........2.3.6.6.1 Dateioperationen
........2.3.6.6.2 Bilder
........2.3.6.6.3 GUI
........2.3.6.6.4 Text
........2.3.6.6.5 PDF
........2.3.6.6.8 Maus
........2.3.6.6.10 Zeit
........2.3.6.6.13 Animation
........2.3.6.6.15 Simulation
......2.3.6.7 Referenzen
....2.3.7 Android_Processing
......2.3.7.1 Basics
......2.3.7.2 Einrichten
......2.3.7.3 Crossplattform
......2.3.7.4 sinus
......2.3.7.5 sample
......2.3.7.6 analyse
......2.3.7.7 synthese
......2.3.7.8 Hilfsapps
......2.3.7.9 Eigene_Library
....2.3.8 Processing_VR
....2.3.9 Shapes3D
....2.3.10 TextToSpeech
....2.3.11 Internetprogrammierung
......2.3.11.1 Codegenerierung
......2.3.11.2 PHP_Programmierung
......2.3.11.3 PHP_OOP
......2.3.11.4 Java
......2.3.11.5 UDP
......2.3.11.6 Internetkontrolle
........2.3.11.6.1 Kamerabild
....2.3.12 OSC
......2.3.12.1 Datenaustausch
......2.3.12.2 i2audiolab
......2.3.12.3 Ardour
....2.3.13 Netzwerkprogrammierung
....2.3.14 JNI
....2.3.15 Erweitern
......2.3.15.1 sprich
......2.3.15.2 spiel
....2.3.16 thbvr
....2.3.17 Reflection
....2.3.18 Script
....2.3.19 Java3D
3 Echtzeitprogrammierung
..3.1 Echtzeit
..3.2 Korrektheit
..3.2 Semaphoren
..3.3 Hardware
..3.5 Synchronprogramm
..3.6 Zustandsmaschine
..3.7 Arduino
....3.7.1 Uebung
....3.7.2 RTOS
....3.7.3 Scheduler
....3.7.4 Semaphor
......3.7.4.1 Laufkatze
......3.7.4.2 Java
......3.7.4.3 Semaphor
....3.7.5 Messages
..3.8 Android
....3.8.2 Threads
......3.8.2.1 Java
......3.8.2.2 Synchronisierung
..3.9 Petrinetze
....3.9.1 Installation
....3.9.2 Test
4 KI
..4.1 Unueberwachtes_Lernen
..4.2 Agentensysteme
....4.2.1 Architekturen
......4.2.1.1 Verhalten
......4.2.1.2 Entwurfsmuster
....4.2.2 SUMO
......4.2.2.1 GettingStarted
......4.2.2.2 Antrieb
......4.2.2.3 Sensoren
......4.2.2.4 Zeitbasis
......4.2.2.5 Fernsteuerung
......4.2.2.6 Umsetzung_Fernst
......4.2.2.7 Fernsteuerung3
......4.2.2.10 Umsetzung
......4.2.2.11 Sockelsoftware
......4.2.2.12 Plan
......4.2.2.13 Lernen
........4.2.2.13.1 Parameter
........4.2.2.13.2 Identifikation
........4.2.2.13.3 Java
..4.3 Genetische_Algorithmen
....4.3.1 Heuristiken
....4.3.2 Genalgorithmus
..4.4 Kalmanfilter
....4.4.1 Vorarbeit
....4.4.2 Minimalversion
....4.4.3 Beispiel
5 Bildverarbeitung
..5.1 Gestalttheorie
..5.2 Bildverarbeitung
6 Technische_Systeme
..6.1 Kulturgeschichte
..6.2 Technikphilosophie
..6.3 Anthropozaen
7 Literatur
kramann.info
© Guido Kramann

Login: Passwort:




Tests zur Verwendung der Kovarianz zur Signalanalyse mit Scilab

(EN google-translate)

(PL google-translate)

//Kovarianz

t=linspace(0,1,10000);
f1=sin(2.0*%pi*440.0*t);
f2=sin(2.0*%pi*660.0*t);
f3=sin(2.0*%pi*880.0*t);

q1=sin(2.0*%pi*440.0*t+%pi/2);
q2=sin(2.0*%pi*660.0*t+%pi);
q3=sin(2.0*%pi*880.0*t+%pi/4);



zz = [
        cov(f1',q1'), cov(f1',q2'), cov(f1',q3');
        cov(f2',q1'), cov(f2',q2'), cov(f2',q3'); 
        cov(f3',q1'), cov(f3',q2'), cov(f3',q3') 
     ];
     
zzz = [
          zz(2,1) zz(2,3) zz(2,5)
          zz(4,1) zz(4,3) zz(4,5)
          zz(6,1) zz(6,3) zz(6,5)
      ];     
     
disp(zzz);     

Code 0-1: Kovarianz-Tests.

  - 1.450D-14    9.350D-16    8.079D-16  
    3.776D-18  - 0.5          7.426D-16  
    6.768D-17  - 1.033D-15    0.3535534  

Code 0-2: Ergebnis

Interpretation

  • Bei einer Phasenverschiebung einer Viertel Periode ist die Gemeinsamkeit zweier sonst gleicher Signale noch schwer nachzuweisen.
  • Bei einer Phasenverschiebung um eine achtel Periode wird dagegen die Gemeinsamkeit sehr deutlich.
  • Oktavierungen liefern nur schwache Korrelationen.

Alternative Untersuchung mit Rechtecksignalen

//Kovarianz

t=linspace(0,1,10000);
f1=sin(2.0*%pi*440.0*t);
f2=sin(2.0*%pi*660.0*t);
f3=sin(2.0*%pi*880.0*t);

q1=sin(2.0*%pi*440.0*t+%pi/2);
q2=sin(2.0*%pi*660.0*t+%pi);
q3=sin(2.0*%pi*880.0*t+%pi/4);

f1=sign(f1);
f2=sign(f2);
f3=sign(f3);

q1=sign(q1);
q2=sign(q2);
q3=sign(q3);


zz = [
        cov(f1',q1'), cov(f1',q2'), cov(f1',q3');
        cov(f2',q1'), cov(f2',q2'), cov(f2',q3'); 
        cov(f3',q1'), cov(f3',q2'), cov(f3',q3') 
     ];
     
zzz = [
          zz(2,1) zz(2,3) zz(2,5)
          zz(4,1) zz(4,3) zz(4,5)
          zz(6,1) zz(6,3) zz(6,5)
      ];     
     
disp(zzz);     

Code 0-3: Gleiche Untersuchung mit Rechtecksignalen.

    0.0004994    0.0026986    0.0027008  
    0.0011041  - 0.9999888  - 0.0011034  
    0.0004994    0.0026986    0.4999505  

Code 0-4: Ergebnis

Interpretation

Das Ergebnis ist qualitativ gleich, jedoch liegen die weniger korrellierten Signale hier viel näher an den besser korrellierten.

Mix - Vergleichssignale sind harmonisch, Testsignale rechteckig

//Kovarianz

t=linspace(0,1,10000);
f1=sin(2.0*%pi*440.0*t);
f2=sin(2.0*%pi*660.0*t);
f3=sin(2.0*%pi*880.0*t);

q1=sin(2.0*%pi*440.0*t+%pi/2);
q2=sin(2.0*%pi*660.0*t+%pi);
q3=sin(2.0*%pi*880.0*t+%pi/4);

//f1=sign(f1);
//f2=sign(f2);
//f3=sign(f3);

q1=sign(q1);
q2=sign(q2);
q3=sign(q3);


zz = [
        cov(f1',q1'), cov(f1',q2'), cov(f1',q3');
        cov(f2',q1'), cov(f2',q2'), cov(f2',q3'); 
        cov(f3',q1'), cov(f3',q2'), cov(f3',q3') 
     ];
     
zzz = [
          zz(2,1) zz(2,3) zz(2,5)
          zz(4,1) zz(4,3) zz(4,5)
          zz(6,1) zz(6,3) zz(6,5)
      ];     
     
disp(zzz);     

Code 0-5: Mix.

   1.999D-14    6.843D-17    0.0014364  
  - 5.254D-16  - 0.6366141  - 0.0002332  
  - 3.529D-16  - 3.762D-16    0.4497693  

Code 0-6: Ergebnis

Interpretation

Bei harmonischen Referenzsignalen sind die Ergebnisse signifikanter als bei rechteckigen.

Umsetzung

Für eine effiziente Implementierung sollte...

  • ...das jeweilige Referenzsignal in Phasenverschiebungen von z.B. 0/10 bis 9/10 Perioden verwendet werden,
  • ...die Sampleanzahl an die Frequenz angepasst werden, z.B. 5 Perioden des Referenzsignals.
  • ...die Anzahl der Vergleichssamples durch Reduktion der Stützpunkte begrenzt werden.
  • ...die Stützpunkte bei Implementierung auf einem Mikrocontroller vorausberechnet werden.