Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Kreuzkorrelationsfunktion unterschiedliche Ergebnisse bei Veränderung der Grenzen
Autor
Schule Kreuzkorrelationsfunktion unterschiedliche Ergebnisse bei Veränderung der Grenzen
che
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 06.02.2006
Mitteilungen: 576
Wohnort: BaWü
  Themenstart: 2021-09-11

Hallo, Ich würde gerne die Matlab Funktion xcorr benutzen, um den Abstand von zwei Funktionen herauszufinden. Leider bin ich mir nicht ganz sicher, wie ich die Ergebnisse der xcorr-Funktion interpretieren kann. Als Beispiel habe ich zwei Exponentialfunktionen: f_a(x)=exp(-0.5*(x-10)^2) f_b(x)= exp(-0.5*(x-30)^2) Als Grenzen wurden folgende Werte gewählt: grenze_a_anfang = 4; grenze_a_ende = 44; grenze_b_anfang = 5; grenze_b_ende = 45; xcorr-Funktion: \sourceon Matlab-xcorr-Funktion kreuz_korrelation = xcorr(double(ax(grenze_a_anfang:grenze_a_ende)), double(bx(grenze_b_anfang:grenze_b_ende))); \sourceoff Um den Abstand/Verschiebung zwischen den zwei Funktionen zu finden benutze ich: \sourceon Matlab-finde Verschiebung find(max(kreuz_korrelation)==kreuz_korrelation) \sourceoff Ich bin mir nicht sicher, warum das Maximum der xcorr-Funktion bei 22 ist. Wenn ich nun die Eingangsfunktionen f_a das Maximum auf 30 setze und f_b auf 10, bekomme ich als Ergebnis 62. Die verschiebung sollte immer zwischen den zwei Funktionen sollte immer 20 sein (entweder positiv/negativ). Kann mir jemand erklären wie diese Werte zustande kommen (ich würde gerne den Hintergrund verstehen (möglich wäre es auch die lags Ausgabe der xcorr-Funktion zu benutzen - das ich vermeiden will). Danke \sourceon Matlab-1.Skript clear all; close all; clc; a = @(x) exp(-0.5*(x-10)^2); b = @(x) exp(-0.5*(x-30)^2); ax = subs(a, 1:100); bx = subs(b, 1:100); grenze_a_anfang = 4; grenze_a_ende = 44; grenze_b_anfang = 5; grenze_b_ende = 45; kreuz_korrelation = xcorr(double(ax(grenze_a_anfang:grenze_a_ende)), double(bx(grenze_b_anfang:grenze_b_ende))); find(max(kreuz_korrelation)==kreuz_korrelation) \sourceoff \sourceon Matlab-2.Skript clear all; close all; clc; a = @(x) exp(-0.5*(x-30)^2); b = @(x) exp(-0.5*(x-10)^2); ax = subs(a, 1:100); bx = subs(b, 1:100); grenze_a_anfang = 4; grenze_a_ende = 44; grenze_b_anfang = 5; grenze_b_ende = 45; kreuz_korrelation = xcorr(double(ax(grenze_a_anfang:grenze_a_ende)), double(bx(grenze_b_anfang:grenze_b_ende))); find(max(kreuz_korrelation)==kreuz_korrelation) \sourceoff


   Profil

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]