-         

Ergebnis 1 bis 7 von 7

Thema: Vergleich von Signalen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86

    Frage Vergleich von Signalen

    Anzeige

    Hallo, ich habe eine oder mehrere Fragen. Worum es geht:
    Ich habe ein Inverses Pendel gebaut und muss nun alle Parameter des
    neuen Modells bestimmen, sodass die Simulation der Realität entspricht.
    Jetzt habe ich versucht ein Matlab Programm zu schreiben womit alle
    Parameter mittels for-Schleifen erhöht werden. Somit erhalte ich sehr sehr sehr
    viele Signale, aus denen ich die beste Konstellation heraussuchen muss.
    Ich dachte mir das könnte ich mit einer Kreuzkorrelation machen, jedoch
    kann ich diese nicht richtig deuten, denn zwei total unterschiedliche
    Signale bilden beide eine Dreiecksfunktion, nur um einen Wert
    verschoben.
    Ich brauche aber, dass Phasenlage und Amplitude identisch ist.
    Habt ihr eine Idee wie ich das bestmöglichst Lösen kann?

    Lg Kurt

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Naja du kannst mit der KKF eine Phasenverschiebung ausgleichen/"messen" in dem du guckst wo der Korrelationsfaktor sein Maximum hat. Dann kannst du sie hinsichtlich des Betrages vergleichen.

    Positionen im Vektor kann man mit Index ( Bedingung ) herausfinden. Dann Signale zu einander verschieben und vergleichen. (Maximalwert, Mittelwert oder Differenz etc nutzen)
    Grüße,
    Daniel

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    Hallo Daniel,
    danke für deine schnelle Antwort.

    Das heißt wenn die Phasenlage identisch ist, muss das Maximum genau bei der länge des Ursprungssingnals sein?
    Denn length(KKF)=2*l-1

    In meinem Fall hat mein Signal die länge 1395, beim Vergleich zum Simulierten Signal liegt das Maximum bei 1399. Ich finde aber das sich die Phase deutlich unterscheidet(im Bild).
    Deshalb kommt mir der Wert von der Verschiebung 4 ein bisschen wenig vor.

    Ich könnte die Differenz der beiden Signale bilden und schauen ob der Betrag des resultierenden Signals kleiner als mein gewünschter Fehler ist?
    Was hällst du davon?
    Klicke auf die Grafik für eine größere Ansicht

Name:	phasen.jpg
Hits:	14
Größe:	31,3 KB
ID:	21459Klicke auf die Grafik für eine größere Ansicht

Name:	Signal.jpg
Hits:	16
Größe:	37,2 KB
ID:	21460

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Zitat Zitat von Koertis Beitrag anzeigen
    Das heißt wenn die Phasenlage identisch ist, muss das Maximum genau bei der länge des Ursprungssingnals sein?
    Denn length(KKF)=2*l-1
    Die Länge des Ergebnisses ist immer 2*N-1 Da das eine Signal A von links nach rechts über das andere Signal B geschoben wird.

    Zitat Zitat von Koertis Beitrag anzeigen
    Deshalb kommt mir der Wert von der Verschiebung 4 ein bisschen wenig vor.
    Kommt auf die Zeitbasis an, also wie groß die Schrittweite zwischen 2 Punkten ist. bei 10ms wäre das immerhin 4*10ms=40ms Phasenverschiebung.

    Da zwei exponentiell-gedämpfte Sinusfunktionen hast, würde ich für die KKF die Signale in ihrer Amplitude angleichen.
    Code:
    clear; close all;
    %Mittelwertbefreiung
    A = A-mean(A);
    B = B-mean(B);
    alpha = max(A);
    A_1 = A./max(A)*max(B);
    KK = xcorr(A_1, B);
    offset = round(find ( KK == max(KK)) - length(KK)/2)
    %minimale zeitliche Verschiebung finden
    %und Signale entsprechend zuschneiden
    for N = 1:length(A)-offset
     Xdiff(N) = A_1(N + offset) - B(N); 
    end
    Geändert von ePyx (10.02.2012 um 13:26 Uhr)
    Grüße,
    Daniel

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    Zitat Zitat von ePyx Beitrag anzeigen
    Code:
    A_1 = A./max(A)*max(B);
    KK = xcorr(A_1, B);
    warum dividierst du hier durch die Multiplikation der Maxima und bildest dann die KK?

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Damit die Signale gleich groß sind. Schließlich hat der Betrag auch einen Einfluss auf die KK. Außerdem befreie ich es vorher noch vom Mittelwert (DC-Offset).
    Grüße,
    Daniel

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    ok super, danke! Dann werd ich das Programm mal die ganze Nacht durchlaufen lassen und hoffe das ich ein Ergebniss bekomme.
    Dabei speichert und plottet mir Matlab die Werte welche ein Offset = 0 und ein max(abs(X_diff))<0.1 haben.

    lg Kurt

Ähnliche Themen

  1. Ausgangssignal togglen mit 2 signalen
    Von aphex-world im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 07.01.2010, 21:40
  2. Software gesucht - zum animieren v. trickfilmen od. signalen
    Von PhoenixTS82 im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 4
    Letzter Beitrag: 19.07.2008, 19:51
  3. Antworten: 3
    Letzter Beitrag: 06.03.2008, 19:58
  4. Aufgabe zu Sensor-Signalen/ digitalen Signalen
    Von xBlackspot im Forum Sensoren / Sensorik
    Antworten: 6
    Letzter Beitrag: 24.03.2006, 00:12
  5. Abfrage von Signalen von 200ms möglich??
    Von Newbie im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 2
    Letzter Beitrag: 13.06.2004, 14:11

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •