Fakultät Informatik, Institut für Angewandte Informatik, Professur Technische Informationssysteme Übung 11 zur Vorlesung SYSTEMORIENTIERTE INFORMATIK HW-, SW-CODESIGN Übungsleiter: Dr. Ing. H. D. Ribbecke Dipl. Inf. T. Wagner Dipl. Ing. B. Hensel Bearbeitungszeitraum: 2.2. 6.2.2015 ALLGEMEINE BEMERKUNGEN Sollten Sie Verbesserungsvorschläge, Fragen oder Probleme haben, so diskutieren Sie diese am besten mit Ihren Kommilitonen und wenden sich persönlich an Ihren Übungsleiter oder schreiben ihm eine E-Mail ({heinz-dieter.ribbecke, burkhard.hensel}@tu-dresden.de).
Signalverarbeitung und Filter SIGNALVERARBEITUNG UND FILTER LERNZIELE VON ÜBUNG 11 Mit Übung N soll das in den vergangenen Übungen gelernte Wissen auf eine praktische Anwendung außerhalb der Automatisierungstechnik, nämlich die Signalverarbeitung im Audio-Bereich, übertragen werden. Dabei soll insbesondere der Umgang mit verschiedenen Filtertypen geübt werden. Eigene Implementierungen erlauben das Anwenden der Theorie an praktischen Beispielen. SZENARIO DER ÜBUNG Sie arbeiten bei einem Hersteller für eine Videokonferenz-Software. Dieser beauftragt Sie, Möglichkeiten zur Klangbeeinflussung (Lautstärke, Tiefen, Höhen usw.) zu implementieren. Der Computer zeichne das Sprachsignal vom Mikrofon mit der üblichen Abtastfrequenz von 44,1 khz auf (http://en.wikipedia.org/wiki/44,100_hz). Abb. 1: Signalweg: Signalaufzeichnung Signalverarbeitung Datenübertragung Wiedergabe (hier nur eine Richtung dargestellt, bei Telefonkonferenz beide Richtungen verwendet) Folgende physikalischen Zusammenhänge könnten nützlich für Sie sein: Die Lautstärke eines Tonsignals wird (näherungsweise) durch seine Amplitude bestimmt. Die Tonhöhe eines Tonsignals wird durch seine Frequenz bestimmt. Komplexe Klänge wie Sprache enthalten Komponenten vieler Frequenzen. Hörbar sind Töne mit einer Frequenz zwischen ca. 20 Hz und ca. 20 khz. Sprachsignale enthalten meist nur Signalanteile zwischen 80 Hz und 12 khz. Vom Übungsleiter können Sie ein Java-Framework erhalten, in welchen Sie selbst die Implementierung der Filter etc. vornehmen und ihre Wirkung mit Ihren eigenen Ohren überprüfen können. AUFGABE 11.1: LAUTSTÄRKEREGELUNG Entwerfen Sie als Erstes eine Möglichkeit, um die Lautstärke des Tonsignals einzustellen. Das (unbehandelte) Signal vom Mikrofon sei x(kt). Der Nutzer hat einen Schieberegler auf seinem Benutzerinterface, mit dem er die Lautstärke zwischen 0 und 100% einstellen kann (Faktor L). Ausgegeben wird das Signal y(kt). 2
Signalverarbeitung und Filter a) Welchen Systemtyp müssen Sie implementieren? Geben Sie den Wirkungsplan an. b) Geben Sie die Gleichung zur Berechnung des Ausgangssignals y(kt) aus dem Eingangssignal x(kt) an. AUFGABE 11.2: TIEFPASSFILTER Damit das Sprachsignal bei Bedarf mit geringerer Datenrate übertragen werden kann, soll eine (vom Analog-Digital-Wandler unabhängige) nachträgliche Reduzierung der Abtastfrequenz auf 22,05 oder 11,025 khz möglich sein. Dazu genügt es im Prinzip, jedes 2. bzw. 4. Sample herauszugreifen und den Rest unbeachtet zu lassen. a) Warum sollten Sie dann vor der Reduzierung der Abtastrate ein Tiefpassfilter verwenden? b) Können Sie, um Prozessorlast zu sparen, die Filterung auch nach der Reduzierung der Abtastrate durchführen? c) Zeichnen Sie das Frequenzspektrum eines idealen Tiefpassfilters und eines Tiefpassfilters erster Ordnung. d) Das Tiefpassfilter werde als IIR-Filter mit der Differenzengleichung 1 1 mit, 1 2 beschrieben. Wie sieht die Impulsantwort des Tiefpassfilters für eine Grenzfrequenz f G =8 khz aus? Stellen Sie sie grafisch dar. AUFGABE 11.3: HOCHPASSFILTER Sprachsignale enthalten häufig die Sprachverständlichkeit beeinträchtigende Anteile tiefer Frequenzen ( Trittschall, z. B. durch Bewegungen von Personen, die durch Körperschallübertragung vom Mikrofon mit aufgezeichnet werden). Diese tieffrequenten Signalanteile sollten diese herausgefiltert werden. a) Geben Sie die Gleichung eines IIR-Hochpassfilters erster Ordnung an. Gehen Sie dabei davon aus, dass das Hochpasssignal gerade die Differenz zwischen ungefiltertem Signal und tiefpassgefiltertem Signal ist. b) Wie sieht die Impulsantwort des Tiefpassfilters für eine Grenzfrequenz f G =8 khz aus? Stellen Sie sie grafisch dar. c) Wie müssen Tief- und Hochpassfilter miteinander verschaltet werden, damit beide Effekte uneingeschränkt wirksam sind? d) Kann das Hochpassfilter auch erst nach der Reduzierung der Abtastrate angewendet werden? 3
Signalverarbeitung und Filter AUFGABE 11.4: ECHO Als witziges Feature will Ihr Arbeitgeber einige amüsante optionale Effekte in die Software integrieren. Er schlägt vor, als erstes ein Echo (wie in den Bergen) einzufügen, welches das Sprachsignal in einem einstellbaren Zeitabstand etwas leiser noch einmal ausgibt. a) Was für einen Systemtyp müssen Sie implementieren? Geben Sie den Wirkungsplan und die Benennung nach der in Vorlesung verwendeten Nomenklatur an. b) Geben Sie die Gleichung zur Berechnung von y(kt) als Funktion von x(kt) an. c) Realistische Echos klingen dumpfer (mit weniger Höhenanteil) als das Original. Wie können Sie das mit Ihren schon implementierten Möglichkeiten simulieren? Geben Sie den Wirkungsplan und die Benennung nach der in Vorlesung verwendeten Nomenklatur an. d) Welche Möglichkeiten haben Sie, um mehrfache Echos zu erzeugen? Geben Sie dazu einige mögliche Wirkungspläne an und beschreiben Sie die Unterschiede in der Wirkung. 4
ZUSATZAUFGABEN FÜR INTERESSIERTE Zusatzaufgaben für Interessierte Die nachfolgenden Aufgaben sind nicht mehr Pflichtgegenstand der Übung und auch nicht klausurrelevant. Sie sind dafür gedacht, um auf freiwilliger Basis mit den in der Vorlesung gelernten Mitteln weitere typische Audio-Aufgaben zu lösen. Alle nachfolgenden Aufgaben können im o. g. Framework implementiert und dadurch durch eigenes Hören auf Richtigkeit überprüft werden. Sie können Ihre Lösungsideen vor oder nach der Übung mit dem Übungsleiter diskutieren. ZUSATZAUFGABE 11.5: KLANGREGELUNG Für die Wiedergabe des Klangs beim Empfänger soll der Klang mit einem 2-Band-Equalizer einstellbar sein (Klangregelung, um wie bei älteren Radios Tiefen und Höhen separat einzustellen). Dazu sollen der Tief- und Hochpassfilter erster Ordnung verwendet werden. a) Wie müssen Sie Tief- und Hochpassfilter verschalten, um beide Frequenzbereiche mehr oder weniger unabhängig einstellen zu können und keine Frequenzen (nahezu) ganz auszulöschen? Gehen Sie zweckmäßigerweise vom Frequenzsprektrum von Hoch- und Tiefpassfilter aus. b) Welchen Filtertyp können Sie verwenden, um die Einstellung feiner zu machen (d. h. mehr Frequenzbänder separat einstellen zu können, wie z. B. Tiefen Tiefmitten Hochmitten Höhen)? Wie sollten Sie die Filter verschalten, damit sie sich möglichst wenig gegenseitig beeinflussen? ZUSATZAUFGABE 11.6: NACHHALL Weil der Echoeffekt bei vielen Nutzern Begeisterung ausgelöst hat, wollen Sie einen Schritt weiter gehen, und den Nachhall eines großen Saales imitieren. Nachhall besteht aus einer Vielzahl von Echos (http://de.wikipedia.org/wiki/nachhall). a) Warum besteht Raumhall aus einer Vielzahl von Echos? b) Die Berechnung vieler Echos und der zugehörigen Filter in eigenen Funktionen ist hier nicht mehr effizient. Wie können Sie vorgehen, um möglichst wenig Rechenaufwand zur Laufzeit zu haben? ZUSATZAUFGABE 11.7: KOMPRESSOR Die Erfahrung zeigt, dass Menschen unterschiedlich laut in die Mikrofone sprechen (wegen unterschiedlich lauter Sprechweise und unterschiedlichem Abstand vom Mikrofon). Außerdem kann sich die Lautstärke auch ungewollt ändern. In Telefonkonferenzen kann das dazu führen, dass manche Personen kaum zu verstehen sind, während andere unangenehm laut zu hören sind. Ein Kompressor hat die Aufgabe, unterschiedlich laute Tonsignale auf ein ähnliches Lautstärkeniveau zu bringen. a) Geben Sie einen prinzipiellen Vorschlag an, wie ein Kompressor arbeiten könnte. Zeichnen Sie dazu einen Wirkungsplan. b) Welchen Nachteil hat die Angleichung der Sprecherlautstärke? Was kann man gegen diesen unerwünschten Effekt tun? 5
Zusatzaufgaben für Interessierte ZUSATZAUFGABE 11.8: EFFIZIENZVERBESSERUNG Es stellt sich heraus, dass Ihre Anwendung relativ viel Prozessorleistung verbraucht. Nennen Sie einige Möglichkeiten, um die Prozessorleistung trotz gleicher Funktionalität durch verbesserte Programmierung zu verringern. 6