Forum: Digitale Signalverarbeitung / DSP / Machine Learning Kontinuierliches Abspielen in Matlab


von Peter (Gast)


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

von Peter D. (pdiener) Benutzerseite


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

von audio_eng (Gast)


Lesenswert?

Es gibt Matlab Toolboxen, die genau dein Problem lösen.

MSound: 
http://www.hoertechnik-audiologie.de/web/file/Forschung/Software.php

Soundmex Pro: http://www.soundmexpro.de/

Ersteres ist kostenfrei, zweiteres kostet Geld.
Beide Programm funktionieren sehr gut, erfordern aber Einarbeitungszeit.

Viel Erfolg!

von Peter (Gast)


Lesenswert?

Dankeschön vielmals für die Anworten ... genau das was ich brauche ;-9

lg Peter

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.