Quellcode für Kreuzkorrelation in VisualDSP++ ADSP-21262

OP #570770
Lesenswert?

hallo forum,

brauche dringend Hilfe für unser Projekt.
Wir arbeiten zur Zeit am sharc ADSP-21262.

Die eigentliche Aufgabe lautet:

Zwei Mikrofone anschließen und anhand der Kreuzkorrelation beide signale 
bewerten, d.h. die Laufzeitunterschiede beider Signale messen.

Leider haben wir keine Ahnung wie wir das in Visual DSP++ implementieren 
sollen (als Assembler-code). Daher brauchen wir dringend eure Hilfe.
Ich bedanke mich schon mal im Voraus!


Gast #576276
Lesenswert?

hallo nochmals,

ich hab mich etwas schlauer gemacht. Undzwar nutze ich für die 
Kreuzkorrelation die vorlage des FIR-Filters aus der Analog.com seite 
für den ADSP-21262-Sharc Prozessor.

Der folgende Code könnte doch für die Kreuzkorrelation verwendet werden?

Corr.algorithmus:

    f0=dm(i0,m0), f4=pm(i8,m8);    // Zwei Signale in Register f0 und f4
                                   // laden
    f8 =f0*f4, f0=dm(i0,m0), f4=pm(i8,m8); //werte miteinander
                                           //multiplizieren; 
gleichzeitig
                                           // 2 neue Signale laden
                                           // usw
    f12=f0*f4, f0=dm(i0,m0), f4=pm(i8,m8);
    lcntr=r6, do schleife until lce;

schleife:
    f12=f0*f4, f8=f8+f12, f0=dm(i0,m0), f4= pm(i8,m8);
    f12=f0*f4, f8=f8+f12;
    f13=f8+f12;
    dm(i1,m1)=f13;   //Endwert abspeichern


Meine weiter Frage lautet:
Ich möchte zwei Mikrofone anschließen, die Eingangssignale sollen ja 
dann in den Ringpuffer abgelegt werden.
Wie weiß mein Prozessor das die beiden Signale getrennt von einander 
gespeichert(gepuffert) werden sollen.
Gast #576287
Lesenswert?

>Wie weiß mein Prozessor das die beiden Signale getrennt von einander
>gespeichert(gepuffert) werden sollen.

Indem du das so programmierst?!

Möchtest du nicht vielleicht bei deinem Wissensstand lieber die in 
VDSP++ eingebaute C-Funktion für die Kreuzkorrelation nutzen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren