ich bin versucht, zu schreiben code, um Kreuz-korrelieren eines gesendeten Signals mit einem empfangenen signal, um zu bestimmen, die Anzahl der samples an Verzögerung
Kreuz-Korrelation verwendet werden, um den Abstand Messen, um ein Flugzeug durch übertragung von
bekannt wide-band-signal und die Korrelation mit dem gesendeten signal mit der eingehende Signale
erhalten über die radar-Rezeption Gericht
Dem gesendeten signal x(n) der Länge N=512, während das empfangene signal y(n) der Länge N=2048.
y(n)=kx(n-d)+w(n); wo 'kx(n-d)' ist x(n), verzögert um d Proben und gedämpft um einen Faktor k, und w(n) ist der Empfang Rauschen.
ich bin versucht, schreiben Sie ein MATLAB-Programm zu überqueren korrelieren, x(n) mit y(n) bestimmen Sie den Wert von d, der Anzahl der samples delay.
Und auch die Ermittlung eines geeigneten sampling-Frequenz, wenn die Entfernung zum Flugzeug zu werden
bestimmt im Umkreis von 50 km mit einer Genauigkeit von 50 m, gegeben, dass die übermittelten
und empfangenen Daten Reisen mit Lichtgeschwindigkeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg, dies zu tun ist mit dem "xcorr" - Funktion. Dies ist Teil der Signal Processing toolbox für matlab, sollte aber vorhanden sein für GNU Octave hier. Ich habe nicht geprüft, ob sich die octave-Skript ist komplett MATLAB kompatibel.
Können Sie die xcorr Funktion als:
Den lag-Wert gefunden werden kann, mit
Mit der Geschwindigkeit des Lichts, das signal wird unterwegs mit 3 x 10^8 m/s, also eine Auflösung von 50m, sollten Sie die Probenahme auf mindestens (3e8/50m) = 6 MHz. An dieser sampling-rate, jede lag wird 1/6000000 Sekunde. Wenn Sie multiplizieren Sie Ihre Verzögerung mit diesem Wert, bekommen Sie Ihre gesamte Zeit intervel zwischen Aussendung und Empfang des Signals. Multiplizieren Sie diese Zeit intervel durch die Geschwindigkeit des Lichts, um Ihre Entfernung.
Können Sie verwenden generalized Cross-correlation-Phase transformieren GCC-PHAT
Im folgenden wird der MATLAB-code für die
können wir ignorieren, die 'suchen' Funktion in matlab der Befehl geändert werden konnten,
'xcorr' Anzüge für Vektoren mit langen Länge;
'gcc' lieber frame-by-frame.
Aj463 ' s Kommentar oben ist gut, in der Tat GCC-PHAT ist besser als ungewichtete Korrelation zur Schätzung der Verzögerung von wide-band-Signale.
Ich würde vorschlagen, eine kleine Verbesserung zu dem code oben gepostet: so fügen Sie einen kleinen Wert epsilon auf den Nenner, epsilon -> 0, um zu vermeiden, dass eventuelle division durch null.
So, ich würde ändern Sie die Zeile
zu