Kontinuierliches Abspielen in Matlab

Gast #2060723
Lesenswert?

hi ...

Ich bin gerade dabei einen ein wenig mit Labview herumzuspielen ...

Und zwar möchte ich gerne eine Impulsanwort online auf den 
Mikrofoneingang rechnen. Die Berechnung etc. macht mir dabei keine 
Probleme nur kann ich den Ausgangspuffer der Soundkarte nur "Blockweise" 
ansteuern. D.h ma hört immer wieder ein "Knacksen" beim Übergang auf 
einen Block ... was ja irgendiwe dadurch entsteht weil ein Block 
abgespielt wird, ein neuer abgeholt und wieder abgespielt wird ...

In Matlab gibts mit wavplay natürlich das selbe Problem ... die Lösung 
wäre ein Ringbuffer nur wie sage ich das dem Audiotreiber der Soundkarte 
das kontinuierlich abgespielt werden soll ?


lg Peter
Persönliche Seite #2062823
Lesenswert?

Bei normalen Soundkarten ist der Datenaustausch immer blockweise. Die 
Blockgröße kann man normal in einigen Stufen einstellen. Normal ist es 
auch so, dass eine Karte einen gemeinsamen Wordclock hat, die Pakete 
werden daher zum Aufnehmen und Abspeilen zeitgleich übergeben. Damit 
muss man das Einlesen und Ausgeben nahezu zeitgleich handhaben können. 
Damit man noch Rechenzeit übrig hat, sollte man mit einer 
Mehrfachpufferung arbeiten, also drei Puffer einrichten:

* Einlesepuffer
* Puffer in Bearbeitung
* Ausgabepuffer

Jeder Puffer muss genau die Blockgröße haben, die die Soundkarte 
erwartet.

Wie man das in Labview macht, kann ich dir aber nicht sagen, ich 
programmiere Audioanwendungen immer in C++.

Grüße,

Peter

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