Forum: Analoge Elektronik und Schaltungstechnik Phasendifferenz Kreuzkorrelation


von CL (Gast)


Lesenswert?

Hallo,

ich möchte gerne die Phasendifferenz zwischen zwei Signalen bestimmen. 
Die Frequenz der beiden Signale beträgt f_Resonanz = 28 kHz. Die 
Phasenverschiebung liegt im m° Bereich. Ich taste mit 192 kHz ab.
Momentan versuche ich verschiedene Algorithmen mit diesen Werten in 
Matlab zu simulieren und hänge bei der Kreuzkorrelation fest.
Wenn ich als Referenzsignal einen cos mit den 28kHz als Frequenz nehme 
und als simuliertes Messsignal den gleichen Cosinus mit einer 
Zeitverschiebung von 5E-7 (+ein zufälliges Rauschen), die beiden mit 
xcorr korreliere, dann berechnet Matlab mir einen viel zu großen Wert. 
Je kleiner der Wert der vorgegebenen Zeitverschiebung (und das kann bei 
den Messungen später leider schon passieren), desto schlimmer wirds, 
bzw. dann gibt er mir irgendwann einfach gleich 0 aus.
Kann das daran liegen, dass ich zu wenig Abtastpunkte habe? Und hat 
irgendjemand eine Idee, wie es vielleicht doch noch mit der 
Kreuzkorrelation klappen könnte. Oder sonst andere Ideen (IQ-Verfahren 
klappt ganz gut, vielleicht Cordic noch versuchen?)?

Danke euch,
Caro

Falls es hilft, hier das, was bei mir in Matlab steht:
fs = 192000;
fr  = 28000;
t_max = 1;
A_noise = 0.00001;
diff = 5E-7;


t = [1/fs : 1/fs : t_max];
ref = cos(2*pi*fr*t);
s1 = cos(2*pi*fr*(t - diff)) + A_noise* randn(1,t_max*fs);

%Phasendifferenz
for   diff_id = 1:50

    [acor,lag] = xcorr(s1,ref);
    [~,I] = max(abs(acor));
    lag_delay = lag(I);
    time_delay(diff_id) = lag_delay/fs;

end

end

von Pandur S. (jetztnicht)


Lesenswert?

Eine unguenstige Idee. 28kHz mit 192 kHz abzutasten, ergibt etwa 7 
Punkte pro Periode. Und du moechtest milligrad detektieren.
Mit Amplituden- und Phasenrauschen drauf. Mit einer endlichen Anzahl Bit 
auf dem ADC ?

 .. sportlich. Dh vergiss es. Auch in Quadratur. Mach mal eine 
Fehlerrechnung. Wie lange muss die Integrationszeit sein, um ohne 
Stoerungen auf die Miligrad zu kommen.

Allenfalls in Analog, mit Quadratur.

Die Integrationszeit ist die Periodenzeit mal die Winkelaufloesung. also 
30us * 360'000. Die Integrationszeit waere dann 10 sekunden.. hab ich 
was falsch gemacht ? Und die Ansprechzeit also im 10s Bereich.


Also erst mal festlegen, in welchem Frequenzberich die Stoerungen sein 
koennen, und welche Integrationszeit man waehlen will, Welches die 
Ansprechzeit sein soll.

: Bearbeitet durch User
von Henrik V. (henrik_v)


Lesenswert?

192 kHz klingt nach Soundkarte :)

Ich würde es mit SAM (Sinus Approximation Method), sprich einem linearem 
Fit versuchen. Da kann man dann noch mit der Anzahl der Perioden pro Fit 
und der Messdauer spielen. Wichtig für MonteCarlo wäre eine realistische 
Größenordnung des Rauschens.

: Bearbeitet durch User
von Lurchi (Gast)


Lesenswert?

Rund 7 Punkte je Periode sind zwar nicht viel, das kann aber durch 
messen über mehr Periode ausgegleichen werden. Bei einer nocht sehr 
hohen Zahl an Messpunkten muss man ggf. aufpassen mit der Zahl der 
Datenpunkte die man nutzt. Im Idealfall sollte man ein ganze Zahl an 
Periden des Signals nutzen - andernfalls kann man Artefakte vom Anfang 
und Ende bekommen. Da kann man sich ggf. mit Wichtung einiger Punkte am 
Anfang und Ende weiterhelfen.

Das kann besonders bei der Korrelation stören wenn man das Maximum sucht 
- das ist ohnhin kein gute Wahl, weil man die besser Hälfte der 
Informationen ignoriert.
Besser wird es da den Nulldurchgang bei der Korrelation zum Sinus zu 
suchen - das nutzt die bessere Hälfte der Informationen. So wirklich 
groß ist dann der Unterschied zur IQ methode nicht. Kleine Unterschiede 
gibt es ggf. durch die Randpunkte und nicht ganz gleichmäßige Abtastung 
der Phase zwischen 0 und 2 Pi.

Wie viele Datenpunkte man braucht, hängt vom S/N des Signals ab - da ist 
dann irgendwa eine Begrenzung. Das wird aber von einer analogen 
verarbeitung nicht besser, sofern der AD durch die Abtastung keine 
nennenswerten extra Störungen verursacht. 192 kHz klingt noch nach Audio 
AD, und damit eher 16 Bit. Die Qualität ist analog bei so etwas wie 
Mulitplication kaum bis gar nicht zu realiiseren.

von Henrik V. (henrik_v)


Lesenswert?

Hier ist ein weiters Verfahren beschrieben
http://forums.ni.com/ni/attachments/ni/300/7428/1/FFT%20tone%20detection%20Moriat%20NIWeek99.ppt

in den Notizen steht auch noch was ;)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.