Audiosignal invertiert ausgeben. Aber wie?

  • Liebe Forumsmitglieder.
    Zuerst möchte ich mich für die vielen Tipps hier bedanken. Als Anfänger konnte ich schon einige meiner Problemchen damit lösen.

    Ich habe nun ein "größeres" Anwendungs-Projekt im Sinn und möchte um Eure Hilfe bitten ob ich dieses grundsätzlich mit dem Pi realisieren kann:

    ich möchte von einem externen Mikrofon via externer USB Soundkarte ein Frequenzgemisch aufnehmen
    UND dieses möglichst zeitnah invertiert wieder an einen angeschlossenen Lautsprecher ausgeben.
    Den Frequenzbereich des Eingangssignals möchte ich gerne auch noch auf einen kleinen Frequenzbereich einschränken (weniger als hundert Hertz).

    Ginge das? Wie könnte ich vorgehen? Gibt es schon Hilfen die den ein- oder anderen Teil meiner Wünsche abdecken?

    Alles hilft!

    Herzlichen Dank

  • Du solltest damit anfangen das Eingangssignal und das Signal am Ausgang auf einem Oszilloskop zu betrachten und die Laufzeit im Pi feststellen. Ich befürchte, die liegt im zwei- bis dreistelligen Millisekundenbereich.

  • Du hast Recht, die Verzögerung ist ein wichtiger Parameter.
    Ich wünschte nur ich könnte ich die schon messen.
    Dafür fehlen mir allerdings noch die Basics. Sorry, bin leider wirklich Anfänger.

    Ich dachte es könnte Sinn machen das Projekt in Teile zu spalten:
    1. Entgegennehmen des Audiosignals
    2. Ausschneiden des gewünschten Frequenzbereiches
    3. Invertieren des Restsignals
    4. Signal eventuell weiter verzögern
    5. Ausgeben des neuen Signals auf einem Lautsprecher

    Leider bräuchte ich für so ziemlich alles Hilfe in der Art: nimm' dieses Projekt und verwende den Teil.
    Ich lese gerne und arbeite mich auch gerne ein. Aber aktuell ist mein Wissen so wenig, daß ich alleine einfach nicht weiterkomme.

    Einmal editiert, zuletzt von obod0002 (6. Mai 2013 um 12:25)

  • Die Aufnahme, Inverter und Ausgabe sind noch relativ einfach, für den Tiefpassfilter sehe ich schwarz. Der wird vermutlich einfach zu viel Rechenzeit verbraten.


    Das, was du da vor hast würde ich eher mit reinen Analog-Schaltungen lösen.
    Inverter, Verstärker und Filter sind leicht mit Operationsverstärkern realisierbar.

  • Hallo Freunde,

    was man für solch eine Anwendung braucht ist eine Audio-Software die aufnimmt, zwischenspeichert und
    ggf. die Daten bearbeitet/filtert und dann sofort wieder ausgibt in einer Art Dauerschleife.

    Ich habe dazu schon längere Zeit nach dafür geeigneter Software gegoogelt:
    < List of Linux audio software > oder < Signal Analysis/Processing Software >
    liefert zahlreiche Seiten mit links zu den entsprechenden Audio-Programmen unter Linux, natürlich ist dabei noch nicht sicher, ob diese auch auf dem RPi laufen wollen.
    Die meisten Programme zeichnen Audiosignale auf und ermöglichen die Bearbeitung der Sounddaten,
    oder sie spielen Sounddaten verschiedenster Daten-Formate ab und sind von und für Musiker geschaffen
    worden (habe ich den Eindruck).
    Mir ist leider bisher noch keine Software begegnet, die einfach Audio rein, die Samples bearbeiten und wieder abspielen kann , dies in einem Aufwasch und auf Dauer ausgeführt.
    Vielleicht ist jemand im Forum, der hier sachdienliche Tips bieten kann ??

    Die angesprochene Delay/Latenzzeit ist meist garnicht so kritisch, schließlich kann man auch bestens von einem Mobiltelefon (handy) zum Festnetz telefonieren, obwohl die Delaytime fast eine halbe Sekunde sein kann. Davon merkt man nur etwas, wenn man im gleichen Raum telefoniert.

    Grüße und bis bald mal wieder...

  • Das umfangreichste Tool dafür ist "sox" (swiss army knife of sound processing tools). Ob es Deiner Aufgabe gerecht wird, kann ich aber nicht sagen.
    Einfach mal installieren und für einen ersten Überblick "man sox" eingeben.

    Gruß, mmi

  • Hallo mmi,
    ja mit dem SoX habe ich auch schon geliebäugelt für derartige Anwendungen, zumindest liegen
    bereits Programmbeschreibungen von wikipedia vor. An einer Probeinstallation wird man sehen
    ob SoX die gewünschten Eigenschaften wirklich bietet. Melde mich bei neuen Erkenntnissen...
    arnoh

  • Hi und schon einmal danke für Eure Hilfestellungen.

    Gerne nehme ich auch eine Kombination aus Hardware und Software oder mache bei meinen Anforderungen Abstriche :shy:

    Das mit dem Program SoX hört sich interessant an. Aber kann ich damit in einem Rutsch aufnehmen, verändern und die geänderten Teile ausgeben? Oder muß ich dafür bspw. weitere Programm nutzen die ihre Ausgabe an das Folgeprogramm weitergeben? Wie ggfls. bitte?

    Ich melde mich wenn ich weitergekommen bin.

    Wenn Jemandem noch etwas einfällt, bitte posten.

    Lieben Dank

    Einmal editiert, zuletzt von obod0002 (28. Juni 2013 um 14:38)

  • Hi und nochmals vielen Dank für Eure Hilfe.

    Die Inversterstufe aus Post #10: hänge ich die direkt an das Eingangssignal vom Mikrofon (wird wohl wg. zu geringer Pegel nicht klappen) oder benötige ich da zuerst einen Mikrofonvorverstärker der mein Eingangssignal anhebt?

    Mein weiteres Problem: aktuell schicke ich das Signal ja direkt von dem Mikro zu einer externen USB-Soundkarte Richtung Notebook. Ich habe also aktuell nichts vorverstärkerähnliches (und wenn sollte es mein eigentliches Signal auch nicht wieter verändern...)

  • Wozu Vorverstärker, wenn man das Signal dann in nen Operationsverstärker einspeist ?

    Der Verstärkungsfaktor der Schaltung von Der_Imperator entscheidet sich von dem Verhältnis der Widerstände R102 und R103 (bzw. R202/R203). Also einfach R103 vergrößern und der Verstärkungsfaktor steigt.

    Wenn die Eingangsimpedanz zu klein ist, dann kann man zunächst mal R101/R201 weglassen, die sind sinnlos. Wenn das noch nicht reicht dann R102 und R103 mit dem selben Faktor vergrößern.

    Eine Endstufe brauchste auch nicht unbedingt, für die Einspeisung in andere Geräte reicht die Ausgangsleistung der üblichen OPV's aus. Nur wenn du direkt einen Lautsprecher anschließen willst wird es nicht reichen.

    Die +/-15V lassen sich recht einfach mit einem Wechselspannungs-Netzteil erreichen.

    Diese Schaltung liefert zwar einen sehr unsauberen Gleichstrom, aber das ist bei OPV-Schaltungen nicht so wichtig. Die Höhe der Spannung darf in einem sehr großen Bereich sein. Viele OPV's laufen von +/- 3V bis +/- 20V. Ausnahmen bestätigen die Regel ;). Und natürlich kann die Höhe des Ausgangssignals die Höhe der Versorgungsspannung nicht übersteigen.

    Edit: MIST. Kondensator falsch gezeichnet. Plus ist so wie es dran steht, nicht wie das Symbol ist.

    Einmal editiert, zuletzt von Ordoban (19. Juli 2013 um 12:59)

  • An den Widerständen sollte man nichts ändern, wenn man SW1 benutzen will, sonst hat man invertiert und nichtinvertiert unterschiedliche Pegel. Für ein Micro sollte man noch einen OP davor schalten.
    +/- 15Volt ist etwas übertrieben, am Ausgang ist nicht meht als 1Volt (eigendlich nur 0,775Volt) nötig.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!