Forum: Digitale Signalverarbeitung / DSP / Machine Learning Impulsantwort mit Audiosignale


von Merlin E. (Firma: none) (new_user)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich bin derzeit mit der Bestimmung der Impulsantwort meines Filter 
beschaftigt.
Das problem ist folgende:

- ich habe ein Filter 19. Ordnung mit CCS auf mein C6713-Bord gebracht. 
Dann habe ich ein Audiosignal durch das Bord gehen lassen und das 
Ausgangssignal gespeichert. Nun möchte ich durch Kreuzkorrelation der 
beiden Signale meine Filterkoefiziente wieder finden.

- Ich habe gedacht, dass nach der Kreuzkorrelation ich meine 
Filterkoeffizienten wieder finde. Was ich als Werte bekomme ist sehr 
kleiner als die von dem Filter. Ist es Normal? Kann est sein, es um 
irgend ein Faktor multipliziert ist.

Bermerkung: Das Eingangssignal stammt aus der MLS die ich mit Matlab zur 
Audiosignal umgewandelt habe und alle auf eine CD gebrannt habe. Ich 
benutze einen CD-Player zum abspielen, das C6713-Bord und dem Rechner. 
Von der CD dauert jedes Sigal ca. 5s; dies weil ich die MLS so lang 
wiederholt habe bis jede MLS eine Länge von ca. 262143 (entspricht MLS 
18. Ordnung) hat bevor ich sie zur Audiosignal transformiert habe.

Ich habe noch bemerkt, dass bei der Benutzung der digitale MLS (keine 
Audio), kann ein meine Filterkoeffizienten zurückfinden indem ich rein 
in Matlab programmiert.
Warum ist es nicht so bei dem Audiosignal??

Danke im voraus für Ihre Hilfe

Merlin

von Merlin E. (Firma: none) (new_user)


Angehängte Dateien:

Lesenswert?

Bitte, beachten Sie auch den anhang. Es handelt sich um den Ausgang 
meines Bord, also ein gefiltertes Signal. Hiermit schicke ich auch das 
benutzte Anregungssignal im Anhang. Für den Filter habe ich folgende 
Code von Matlab generiert :
1
         Fs = 44100;  % Sampling Frequency
2
3
         N    = 19;         % Order
4
         Fc1  = 8400;       % First Cutoff Frequency
5
         Fc2  = 13200;      % Second Cutoff Frequency
6
         flag = 'noscale';  % Sampling Flag
7
         % Create the window vector for the design algorithm.
8
         win = hamming(N+1);
9
10
         % Calculate the coefficients using the FIR1 function.
11
         b  = fir1(N, [Fc1 Fc2]/(Fs/2), 'bandpass', win, flag);

von Michael (Gast)


Lesenswert?

Wenn ich verstanden habe machst Du folgendes:

- CD (mit MLS Order 18) in einer Loop sendet MLS analog / digital zu 
deinem DSP Board
- Digitalsignale durchlaufen DSP mit FIR Filter
- Ausgang wird gesampled in Ringbuffer

Wunsch: Durch Korrelationsrechnung Koeffizienten wiederfinden (warum 
eigentlich)?

Ich sehe folgendes Problem: Wie synchronisierst Du das Abspielen der CD 
mit dem Aufzeichnen im Speicher?
Bei der Faltungsoperation zwischen Ursprungssignal und Ausgangssignal 
spielt das Delay auch eine Rolle (die Koeffizienten sind zeitlich 
verzögert).
Ausserdem muss die Amplitude normiert werden, da hier z.B. über 252k 
Samples addiert wird.

Vorschlag für reproduzierbare Ergebnisse: Rechne die MLS im DSP zur 
Laufzeit, dafür benötigt man ein Schieberegister, wenige 
Logikoperationen und fertig.

Natürlich könntest Du auch gleich eine FHT (Schnelle Hadamard 
Transformation) rechnen und dir die Übertragungsfunktion berechnen :).

Gruß
Michael

von Mark B. (markbrandis)


Lesenswert?

Michael schrieb:
> Wunsch: Durch Korrelationsrechnung Koeffizienten wiederfinden (warum
> eigentlich)?

Das ist eine gute Frage ;-)
Spricht irgendwas dagegen, einfach die Impulsantwort des Filters 
anzuschauen?

von Michael (Gast)


Lesenswert?

Nö, wenn Du einen Einheitsimpuls (ein Koeffizient 1 alle anderen 0) in 
dein Filter schiebst, werden nacheinander alle Koeffizienten ausgegeben.
stimmt einer nicht, oder nicht zum rechten Zeitpunkt, dann stimmt dein 
Filter nicht. Beliebter Fehler -> Spiegelung der Koeffizienten durch 
falsches Auslesen der Ringbuffer :)

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.