+ All Categories
Home > Documents > Entwicklung eines Verfahrens in MATLAB und C zur Schätzung...

Entwicklung eines Verfahrens in MATLAB und C zur Schätzung...

Date post: 03-Nov-2019
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
100
Transcript
Page 1: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Entwicklung eines Verfahrens in

MATLAB und C zur Schätzung des

Spektrums der Hintergrundstörung bei

Sprachsignalen

Diplomarbeit an der Hochschule Niederrhein

Fachbereich ElektrotechnikZur Erlangung des akademischen Grades

Diplom-Ingenieur (FH)

vorgelegt vonThomas Wetschko

August 2009

Page 2: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Fachhochschule Niederrhein

Fachbereich Elektrotechnik und Informatik

Schriftliche Diplomarbeit

des Studenten: Thomas Wetschko

Matrikelnummer: 661241

Anschrift: Kirchplatz 5, 47475 Kamp-Lintfort

Thema:

Entwicklung eines Verfahrens in MATLAB und C zur Schätzung

des Spektrums der Hintergrundstörung bei Sprachsignalen

Ich versichere durch meine Unterschrift, dass die vorliegende Diplomarbeitausschlieÿlich von mir verfasst bzw. angefertigt wurde. Es wurden keine

anderen als die angegebenen Quellen und Hilfsmittel benutzt.

Diese Arbeit besteht aus 90 Seiten

Betreuender Dozent: Prof. Dr. Hirsch

Erster Prüfer: Prof. Dr. Hirsch

Zweiter Prüfer: Prof. Dr. Ho�mann

Krefeld, 10. August 2009

__________________________________________________

(Thomas Wetschko)

Page 3: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Danksagung

Ganz besonders bedanken möchte ich mich an dieser Stelle bei Herrn Prof.Dr.-lng. Hans-Günter Hirsch für die Ermöglichung meiner Diplomarbeit sowiefür seine Unterstützung bei der Erstellung und die umfassende und guteBetreuung meiner Arbeit.Des Weiteren bedanke ich mich bei Herrn Prof. Dr.-lng. Roland Ho�mannfür den Einsatz als zweiter Prüfer. Bedanken möchte ich mich auch bei FrauGertrud Schlenke, die mir bei der Korrektur dieser Diplomarbeit hilfreich zurSeite stand.Meiner Familie und meiner Lebensgefährtin, die mich durch ihren Zuspruchunterstützt haben, gilt mein ganz besonderer Dank.

Page 4: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Inhaltsverzeichnis

Abbildungsverzeichnis III

Tabellenverzeichnis VI

1 Einleitung 1

1.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Grundlagen 4

2.1 Rauschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.1 Nicht stationäres Rauschen . . . . . . . . . . . . . . . . 62.1.2 Stationäres Rauschen . . . . . . . . . . . . . . . . . . . 7

2.2 Transformation in den Frequenzbereich . . . . . . . . . . . . 82.2.1 Leck-E�ekt . . . . . . . . . . . . . . . . . . . . . . . . 112.2.2 Fensterfunktionen . . . . . . . . . . . . . . . . . . . . . 162.2.3 Anwendbarkeit der DFT . . . . . . . . . . . . . . . . . 18

2.2.3.1 Periodische Faltung . . . . . . . . . . . . . . 182.2.4 Rücktransformation in den Zeitbereich . . . . . . . . . 202.2.5 Overlap-Add-Methode . . . . . . . . . . . . . . . . . . 202.2.6 Normierung . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3 Präemphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.3.1 Deemphase . . . . . . . . . . . . . . . . . . . . . . . . 24

2.4 Prinzip eines Störunterdrückungs- Systems . . . . . . . . . . . 25

3 Ansätze zur Schätzung des Störspektrums 28

3.1 Schätzung durch �Mean of �rst frames� (MFF) . . . . . . . . . 283.2 Schätzung durch �Smoothing noise� (SN) . . . . . . . . . . . . 313.3 Schätzung durch �Threshold direct estimation� (TDE) . . . . . 36

I

Page 5: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

3.4 Schätzung durch �Minimum Statistics and optimal smoothing,Martin� (MSOPM) . . . . . . . . . . . . . . . . . . . . . . . . 39

3.5 Schätzung durch �Expectation Maximization� (EM) . . . . . . 423.5.1 Schätzung des Störspektrums . . . . . . . . . . . . . . 443.5.2 Erkennung von Störspektren . . . . . . . . . . . . . . . 473.5.3 Modi�zierung durch zeitliche Wichtung . . . . . . . . . 47

4 Berechnung der Güte des geschätzten Spektrum 50

5 Entwicklungsumgebung MATLAB 52

5.1 Implementierung der vorgstellten Algorithmen . . . . . . . . . 525.1.1 Mean of �rst frames . . . . . . . . . . . . . . . . . . . 535.1.2 Smooting Noise . . . . . . . . . . . . . . . . . . . . . . 555.1.3 TDE und MSOPM . . . . . . . . . . . . . . . . . . . . 565.1.4 Expectation-Maximization . . . . . . . . . . . . . . . . 56

5.2 Versuchsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . 595.2.1 Addition beider Signale . . . . . . . . . . . . . . . . . . 605.2.2 Spektraler Abstand . . . . . . . . . . . . . . . . . . . . 635.2.3 Optimierung des Algorithmus . . . . . . . . . . . . . . 635.2.4 Auswertung der verschiedenen Verfahren . . . . . . . . 67

6 Entwicklungsumgebung Linux mit C 69

6.1 Implementierung in ein Störunterdrückungssystem . . . . . . . 70

7 Auswertung der Tests 76

7.1 Mittlere spektrale Abweichung bei verschiedenen SNR . . . . . 767.2 Test bei SNR=0dB . . . . . . . . . . . . . . . . . . . . . . . . 797.3 Test bei steigendem Störpegel . . . . . . . . . . . . . . . . . . 807.4 Test mit sinkendem Störpegel . . . . . . . . . . . . . . . . . . 807.5 Funktionstest in C . . . . . . . . . . . . . . . . . . . . . . . . 81

8 Re�exion 87

8.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . 878.2 Leistungsbewertung . . . . . . . . . . . . . . . . . . . . . . . . 878.3 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

9 Anhang 90

II

Page 6: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Abbildungsverzeichnis

2.1 Entstehung von Rauschvorgängen innerhalb von Systemen . . 52.2 Beispiel für eine gestörte Umgebung . . . . . . . . . . . . . . . 62.3 Beispiel für ein nicht stationäres Geräusch . . . . . . . . . . . 72.4 Transformation eines zeitdiskreten Signals, f/fa=5/100 . . . . 102.5 Ausschnitt eines Sinus-Signals mit f=60Hz . . . . . . . . . . . 112.6 Realteil des transformierten Signals . . . . . . . . . . . . . . . 122.7 Imaginärteil des transformierten Signals . . . . . . . . . . . . 122.8 Betragsspektrum des Ausschnitt des Signals . . . . . . . . . . 132.9 Fortsetzung des Teilsignals . . . . . . . . . . . . . . . . . . . . 142.10 Rechteckfenster . . . . . . . . . . . . . . . . . . . . . . . . . . 152.11 transformiertes Rechteckfenster, Si(f) . . . . . . . . . . . . . . 152.12 Faltung des Sinus f=60Hz mit Si-Fkt. . . . . . . . . . . . . . . 162.13 Hamming-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . 172.14 Rechteckfenster . . . . . . . . . . . . . . . . . . . . . . . . . . 172.15 Vergleich der Spektren eines gewichteten und ungew. Signals . 182.16 Fensterung mit Timeshift von 12,5ms und Fensterlänge von

25ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.17 Überlappende Synthese . . . . . . . . . . . . . . . . . . . . . . 202.18 Leistungsverteilung der Sprache über die Frequenz[7] . . . . . 222.19 Rekursives Filter für die Präemphase . . . . . . . . . . . . . . 232.20 Frequenzgang des Rekursiven Filters für die Preämphase . . . 232.21 Frequenzgang der Deemphase . . . . . . . . . . . . . . . . . . 242.22 Filter für die Deemphase . . . . . . . . . . . . . . . . . . . . . 242.23 Störunterdrückungssystem . . . . . . . . . . . . . . . . . . . . 26

3.1 Schätzung des Störspektrums durch Berechnung des Mittel-wertes in den ersten 10 Frames . . . . . . . . . . . . . . . . . 30

3.2 Frequenzgang der Smoothing-Formel . . . . . . . . . . . . . . 32

III

Page 7: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

3.3 geglättetes Spektrummit a=0.01,rot=geglättet, schwarz=original. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.4 geglättetes Spektrummit a=0.99,rot=geglättet, schwarz=original. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.5 geglättetes Spektrummit a=0.09, rot=geglättet, schwarz=original. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.6 Schätzung durch Smoothing . . . . . . . . . . . . . . . . . . . 353.7 Verschiebung der Grenzen des NX-Verhältnis . . . . . . . . . . 373.8 TDE Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . 383.9 Minimum Statistics and optimal Smoothing . . . . . . . . . . 413.10 EM-Algorithmus Übersicht . . . . . . . . . . . . . . . . . . . . 433.11 Wahrscheinlichkeitsdichte Funktion eines Freqeunzbandes über

der Zeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.12 Verarbeitung des 5.Frequenzbandes . . . . . . . . . . . . . . . 453.13 Wichtungskurve . . . . . . . . . . . . . . . . . . . . . . . . . . 483.14 Funktionsablauf des EM-Schätzverfahrens . . . . . . . . . . . 49

4.1 Intrusiv und non -intrusive Typen zur Qualitätsbeurteilung . . 50

5.1 Programmablauf est_noise_f10f.m . . . . . . . . . . . . . . . 545.2 Programmablauf est_noise_sm.m . . . . . . . . . . . . . . . . 565.3 Programmablauf est_noise_em.m . . . . . . . . . . . . . . . . 585.4 Realisierung des Bu�ers . . . . . . . . . . . . . . . . . . . . . 595.5 Programmablauf addnoise.m . . . . . . . . . . . . . . . . . . . 625.6 Versuchsaufbau für die Optimierung . . . . . . . . . . . . . . . 645.7 Schätzung=rote Linie, gestörtes Signal=schwarze Linie . . . . 655.8 Schätzung=rote Linie, gestörte Signal=schwarz . . . . . . . . 655.9 Ablauf Routine anal_em_algo1.m . . . . . . . . . . . . . . . . 66

6.1 Programmablauf est_noise_em.c . . . . . . . . . . . . . . . . 726.2 Ausgelagerter Block Schätzung durch MFF . . . . . . . . . . . 736.3 Ausgelagerter Block Schätzung durch SN . . . . . . . . . . . . 746.4 Ausgelagerter Block Schätzung durch EM . . . . . . . . . . . 75

7.1 Vergleich der Verfahren-Auto.raw und Büro . . . . . . . . . . 777.2 Vergleich der Verfahren-Flughafen.raw . . . . . . . . . . . . . 787.3 Vergleich der spektralen Abstände bei SNR=0 . . . . . . . . . 797.4 Vergleich der spektralen Abstände bei SNR=-5dB/s . . . . . . 807.5 Vergleich der spektralen Abstände bei SNR=5dB/s . . . . . . 81

IV

Page 8: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

7.6 Vergleich klares und gestörtes Signal, SNR=3dB . . . . . . . . 827.7 Vergleich der Schätzalgorithmen EM,SN,MFF . . . . . . . . . 837.8 Vergleich klares und gestörtes Signal mit SNR= +3db/s . . . 847.9 Vergleich der Schätzalgorithmen EM,SN,MFF . . . . . . . . . 847.10 Vergleich klares und gestörtes Signal mit SNR= -5db/s . . . . 857.11 Vergleich der Schätzalgorithmen EM,SN,MFF . . . . . . . . . 86

V

Page 9: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Tabellenverzeichnis

5.1 optimales Beta . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6.1 Input des Programms est_noise_em.c . . . . . . . . . . . . . 706.2 Output des Programms est_noise_em.c . . . . . . . . . . . . 716.3 Bestandteile der Funktion est_noise_em.c . . . . . . . . . . . 71

VI

Page 10: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 1

Einleitung

Durch die Zunahme von Systemen im Alltag, die akustische Signale ver-arbeiten, sind die Ansprüche an diese auch immer gröÿer. In diesen Sys-temen werden Signale, für die Übertragung oder Archivierung verarbeitet.Unter anderem liegen die Anwendungsmöglichkeiten in Mobilfunkgeräten,Freisprechanlagen, Diktiersoftware, Info-Terminals oder in der Spracherken-nung bei Navigationssystemen. Allein durch die Optimierung alter Systeme,sowie die Entwicklung von neuen robusteren Modellen, haben sich neue An-wendungsbereiche erschlossen. Im Labor der digitalen Nachrichtentechnik ander Hochschule Niederrhein, ist die robuste Spracherkennung aktuelles For-schungssthema und unterteilt sich in viele Themenbereiche. An dem Beispielder Freisprechanlagen für Mobiltelefone im PKW, lässt sich eine Problem-stellung der robusten Spracherkennung beschreiben - die Unterdrückung vonStörsignalen. Da dieses System ausschlieÿlich im fahrenden PKW angewen-det wird, ergibt sich für diesen Fall ein sehr komplexes Störsignal, welchesdurch den Störreduktions-Algorithmus unterdrückt werden soll. Die Komple-xität des hier auftretenden Störsignals kann durch den sich verändernden Ge-räuschpegel, sowie die ständige Änderung des Störgeräusches gesteigert wer-den. Die hier auftretenden Störsignale können z.B. plötzlich stärker werdendeWindgeräusche oder Varriierung der Motorengeräusche sein. In anderen Um-gebungen können natürlich auch vielschichtige Hintergrund-Störungen auf-treten, wie z.B. in der Ab�ughalle eines Flughafens oder in einer dicht besetz-ten Fuÿgängerzone. Mit Hilfe der robusten Spracherkennung wird versucht,die Fehlerrate auch bei schwierigen Bedingungen so gering wie möglich zuhalten, um diese nicht erwünschten Störsignale zu unterdrücken. Ein wesent-licher Teil der robusten Spracherkennung beschäftigt sich mit der Schätzung

1

Page 11: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 1. EINLEITUNG

dieser Signale, welcher Bestandteil dieser Diplomarbeit ist. In einem Störun-terdrückungssystem lässt sich mit Hilfe des geschätzten Störsignals das unge-störte Akustiksignal wieder rekonstruieren, um dieses weiter zu verarbeiten.Die Schätzung spiegelt einen sehr wichtigen Teil des Störunterdrückungssys-tem wieder, denn nur durch eine gute Schätzung des Störsignale lassen sichgute Ergebnisse bei der Wiederherstellung des Sprachsignale erzielen.

1.1 Zielsetzung

Im Umfang dieser Diplomarbeit soll ein Algorithmus zur Schätzung von Hin-tergrundstörung in MATLAB entworfen werden, der in einem Störunter-drückungssystem die Sprachqualität verbessern soll. Durch Veränderungenverschiedener Parameter soll die entworfene Procedur optimiert werden. Un-ter Zuhilfenahme einer eigenständig erstellten Versuchsumgebung in MAT-LAB, werden verschiedene Sprachsignale mit verschiedensten Störsignalenadditiv überlagert und ausgewertet. Mit den Berechnungen der mittlerenspektralen Abstände, vom geschätztem und dem reinen additiven überlager-ten Störsignal, werden die verwendeten Verfahren quantitativ miteinanderverglichen. Die in MATLAB entworfene Procedur wird dann in einer LinuxUmgebung in C, nach dem ANSI Standart, implementiert. Der entwickelteAlgorithmus �ndet dann in einem Störunterdrückungssystem seinen Einsatz,in dem die Rauschreduktion mittels spektraler Subtraktion realisiert wird.

1.2 Aufbau der Arbeit

Nach der Einleitung über das Thema Spracherkennung und Rauschunter-drückung, werden die wichtigsten Grundlagen dieser Diplomarbeit darge-stellt. Unter anderem werden dort die Art der Rauschsignale besprochen, diedurch ein Störreduktionssystem vermindert werden sollen. Nach den Grund-lagen folgt die Darstellung der verschiedenen Schätzverfahren, die zur Veri�-zierung des entwickelten Schätz-Algorithmus verwendet wurden. Nachfolgendwird die Güte, die zum quantitativen Vergleich der Algorithmen dient vor-gestellt. Die Diplomarbeit erstreckt sich dann über die Beschreibungen derEntwicklungsumgebungen MATLAB und Linux, die zur Ver�zierung und zurKompilierung der Procedur in C dienten. In dem Kapitel Versuchsaufbauwird die Realisierung der verschiedenen Algorithmen in MATLAB beschrie-

2

Page 12: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 1. EINLEITUNG

ben. Des Weiteren werden die Versuchsaufbauten zur Optimierung und Veri-�zierung erläutert. Anschlieÿend wird in diesem Kapitel dann die Auswertungder Versuche dargestellt und eine Aussage über den entwickelten Algorith-mus gemacht. Die Kompilierung des Schätz-Algorithmus mittels C in einerLinuxumgebung, die ihren Einsatz in einem Störunterdückungsystem �ndet,wird nachfolgend beschrieben. Zum Schluss folgt die Zusammenfassung undder Ausblick, in dem die weiteren Möglichkeiten des Algorithmus dargestelltwerden.

3

Page 13: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 2

Grundlagen

In diesem Kapitel werden die Grundlagen mit der gröÿten Bedeutung für die-se Diplomarbeit besprochen. Unter anderem werden die Art der Störsignaledargestellt, die das Sprachsignal störend überlagern können. Des Weiterenwird die übliche Signal- Betrachtungsweise und deren E�ekte erläutert.

2.1 Rauschen

In der Elektrotechnik werden verschiedenste Vorgänge als Rauschen betittelt.Das Rauschen ist in jedem Fall ein unerwünschter E�ekt, der die Qualität desSignals negativ beeinträchtigt. Dies führt im Allgemeinen zu einer verringer-ten Wahrnehmung von akustischen Signalen. Ein Groÿteil dieser Vorgängeensteht bei der internen elektrischen Verarbeitung von Signalen, z.B in derSignalverarbeitung eines Mobiltelefones. Abbildung 2.1

4

Page 14: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

Abbildung 2.1: Entstehung von Rauschvorgängen innerhalb von Systemen

Diese Rauschvorgänge werden z.B. als Schrot-, Thermisches- oder 1/f -Rauschen bezeichnet. Die hier beschriebenen Störvorgänge überlagern sichdem Signal bei der internen Verarbeitung. In der Nachrichtentechnik gibt esviele Verfahren und Möglichkeiten die E�ekte der soeben genannten Vorgän-ge zu minimieren. Jedoch soll das entwickelte Schätzverfahren hauptsächlichdiese Stör- bzw. Rauschsignale behandeln, die aus Sicht des verarbeitendenSystems, der Sprache akustisch überlagert sind. Diese Störsignale sind Schall-wellen, die durch Kompression der Luft entstehen und sich ausschlieÿlichlongitudinal in der Luft ausbreiten und permanent in unserer Umgebung zu�nden sind (Abblidung 2.2).

5

Page 15: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

Abbildung 2.2: Beispiel für eine gestörte Umgebung

Das hier dargestellte Beispiel, soll eine Störumgebung im Straÿenverkehrdarstellen. In diesem Fall werden die Störgeräusche des Straÿenverkehrs addi-tiv mit dem reinem Sprachsignal des Redners überlagert. Allerdings spiegeltdiese Umgebung ein sehr komplexes Störsignal wieder. Ein weiteres Beispielfür eine Störumgebung bietet auch eine Fuÿgängerzone, in der ein Groÿteilder Geräuschumgebung durch Menschen erzeugt wird. Jedoch sind alle die-se Störgeräusche nur bedingt für das menschlische Ohr wahrnehmbar. DieWahrnehmbarkeit liegt in einem Frequenzbereich zwischen 16Hz bis 20kHz,wobei die obere Grenze je nach Alter und Verschleiÿ des menschlichen Gehörsimmer niedriger wird.

2.1.1 Nicht stationäres Rauschen

Mit nicht stationären Rauschen kann man eigentlich alle Geräusche betit-teln die in der realen Welt vorkommen. In der Literatur werden Signale alsnicht stationär bezeichnet, deren statistische Parameter zeitvariant sind. Ei-ne sehr groÿe Anzahl von Signalformen fallen in diesen Bereich. Typischenicht stationäre Signalformen sind Sprache oder Musik. Jedes Signal, dasunter anderem seinen Pegel und/oder die spektrale Zusammensetzung über

6

Page 16: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

0 1000 2000 3000 4000 5000 6000 7000−400

−200

0

200

400

Abtastwerte x(n)

Nicht stationaeres Stoergeraeusch

Abbildung 2.3: Beispiel für ein nicht stationäres Geräusch

der Zeit ändert, kann als nicht stationär bezeichnet werden. Daraus lässt sichableiten, dass die Betrachtungszeit dieser Signale eine groÿe Rolle spielt, umeine Aussage über die Eingruppierung zu machen. Betrachtet man einen sehrkleinen zeitlichen Abschnitt, so kann Sprache auch als stationär angenähertwerden. Ein typisches Beispiel für akustische nicht stationäre Störung bietetdie Geräuschkulisse eines fahrenden PKW`s , in der plötzlich ein Signalhornzu hören ist. Diese Signal hätte einen ähnlichen Verlauf wie die Signalabfolgein Abbildung 2.3.[11]

2.1.2 Stationäres Rauschen

Das Gebiet der stationären Vorgänge wird durch die zeitinvarianz der Wahr-scheinlichkeitsparameter begrenzt. Damit wird vorausgesetzt, dass der Mit-telwert, die Varianz, die spektrale Leistung und die Art der statistischenVerteilung konstant ist. Allerdings ergeben sich im praktischen Umfeld auchandere De�nitionen für stationäre Vorgängen, bei denen nicht alle Parame-ter zeitinvariant sind. Ein Beispiel für ein solches Signal wäre, wenn derMittelwert über die Zeit konstant bleibt aber die Leistung des Signals sichverändert. Diese Art der Störgeräusche spielen eine wesentliche Rolle in derSignalverarbeitung, da sich ihre statistischen Eigenschaften in der Störun-terdrückung zunutze gemacht werden. Ein wesentlicher Aspekt ist allerdingsauch die physische Wahrnehmbarkeit und die Wahrnehmbarkeit eines Sys-tems. Viele Systeme in denen Sprache verarbeitet wird, arbeiten mit einerAbtastfrequenz von fa=8000Hz und somit sinkt die obere Grenze der zu ver-

7

Page 17: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

arbeitenden Frequenzen auf <4000Hz (siehe Abtasttheorem Gleichung: 2.1).Dies grenzt den Bereich, in der Störsignale das reine Signal beein�ussen, sehrstark ein. [11]

fa > 2 · fmax (2.1)

Für diese Diplomarbeit sind die Rauschvorgänge interressant, bei denen dieArt der Verteilung eines Bandes des Leistungsdichtespektrums über den Si-gnalverlauf konstant bleibt. Als Verteilungsfunktion wird eine Gauÿvertei-lung zu Grunde gelegt, die eindeutig durch Varianz und Erwartungswertbestimmt wird. Es wird erwartet, dass sich der arithmetische Mittelwert unddie Varianz verändern. Deshalb lassen sich die hier untersuchten Störsignalenicht eindeutig in die durch die Literatur vorgegebenen Gruppierungen zu-weisen und werden als stationär bezeichnet. Als typisches Beispiel für dieseArt von Geräuschen sind zum Beispiel gleichbleibende Motorgeräusche einesFahrzeuges oder Windgeräusche, deren Lautstärke Pegel sich langsam än-dert. Diese Art von Geräuschen werden in dieser Diplomarbeit als stationärbezeichnet.

2.2 Transformation in den Frequenzbereich

Die Fourier Transformation beschreibt den Übergang periodischer Signalevon dem Zeitbereich in den Frequenzbereich. Häu�g lassen sich Signale leich-ter und eindeutiger im Frequenzbereich beschreiben. Für zeitkontinuierlicheSignale ist die Fourier-Transformation de�niert zu. [1]

X(f) =

inf∫−inf

x(t)·e−2π·f ·tdt =

inf∫−inf

x(t)·[cos(2·π·f ·t)−j·sin(2·π·f ·t)]dt (2.2)

Das Ergebnis dieser Transformation bezeichnet man Spektrum.Da man in der digitalen Nachrichtentechnik mit zeit diskreten Signalen ar-beitet, geht das Integral in eine Summe über und somit lässt sich die Fourier-Transformation für diskrete Signale berechnen zu[1]

Xab(f) =

inf∑n=−inf

x(n · T ) · e−j2π·f ·t (2.3)

8

Page 18: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

In der Signalverarbeitung werden allerdings Signale betrachtet, die eine end-liche Länge (N · T ) besitzen und erst zum Zeitpunkt Null beginnen. Da-durch kann das Spektrum nur für Frequenzen bestimmt werden, die in dembetrachteten Signalabschnitt mindestens eine Periode oder Vielfache dieserenthalten. Die Berechnung der möglichen Frequenzen, die mit Hilfe der DFTanalysiert werden, ergeben sich folgendermaÿen:

fk =k · faN

N=Anzahl Abtastwert; mit k = 0, 1, .., N − 1 (2.4)

Daraus ergibt sich die spektrale Au�ösung:

∆f = f2 − f1 = (k2 − k1) ·faN

=faN

(2.5)

Durch das Einsetzen der Gleichung 2.4 gelangt man zu De�nition der DFT.

X(k) =N−1∑n=0

x(n)·e(−j2πk nN

) N=Anzahl Abtastwert; mit k = 0, 1, .., N−1

(2.6)Die DFT kann nur Frequenzen detektieren, die sich aus der Abtastfreqeunzund Anzahl der Abtastwerte ergeben. Um die spektrale Au�ösung zu vergrö-ÿern, kann man die zu betrachtenden Abtastwerte erhöhen oder die Abtast-frequenz verringern. Durch die Wahl einer geringeren Abtastfrequenz wirdmaximale Frequenz verringert, die detektiert werden kann (siehe Abtast-theorem Gleichung: 2.1). Erhöht man die Anzahl der Abtastwerte, erhöhtsich auch das Datenvolumen. Beispiel für eine Transformation eines zeitdis-kreten Signals in den Frequenzbereich.

9

Page 19: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

0 2 4 6 8 10 12 14 16 18 20−1

−0.5

0

0.5

1

t/ms

Zeitdiskretes Signal

0 2 4 6 8 10 12 14 16 18 20

−10

−5

0

5

10

f(k)=k/(N*T)−>f(1)=50Hz

Imaginaerteil des Spektrums

0 2 4 6 8 10 12 14 16 18 200

5

10

f(k)=k/(N*T)−>f(1)=50Hz

Betragsspektrum

Abbildung 2.4: Transformation eines zeitdiskreten Signals, f/fa=5/100

Durch die Transformation in den Freqeuenzbereich entsteht ein komple-xes Spektrum (siehe Abbildung 2.4). Für die Schätzung der Störsignale wirdin den meisten Fällen nur das Betragsspektrum analysiert. Bei der entwi-ckelten Procedur, die sich den EM-Algorithmus zunutze macht, wird dasLeistungsdichtespektrum analysiert. Dies entspricht den Quadraten der Be-träge. An diesem übersichtlichen Beispiel kann man gut erkennen, dass dasBetragsspektrum an der halben Abtastfrequenz (fa/2 = 500Hz mit k =10) gespiegelt wird. Somit wird bei den verwendeten Schätz-Algorithmendas Betragsspektrum nur bis zu k

2+ 1 verarbeitet. Um in der Praxis noch

Rechen- und Speichere�zienz zu arbeiten, wird die so genannte Fast-Fourier-Transformation (FFT) verwendet. Die FFT ist ein Zusammenspiel von meh-reren Algorithmen, die einer Teilung der DFT in mehrere Teil-Segmente ent-spricht. Üblicherweise hat eine FFT die Länge L = 2x , es gibt aber auchAlgorithmen, die eine Länge ungleich L � 2x besitzen[9]. Bei der üblichenFFT wird ein Signal analysiert, welches 2x Abtastwerte besitzt. Es fallenanstatt N2 nur noch N · ld(N) Operationen an. Dieser E�ekt macht sich

10

Page 20: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

sehr stark bei gröÿeren FFT-Längen bemerkbar. Sollte dieses Signal wenigerWerte besitzen, wird durch Zero-Padding das Signal am Ende mit �0� auf-gefüllt. In der Entwicklungsumgebung MATLAB wurde ausschlieÿlich mitder FFT gearbeitet, sowie in dem Störunterdrückungssystem cs.exe (cepstralsmoothing) mit der schon vorhandene Funktion DFT_dft_rdx2.

2.2.1 Leck-E�ekt

In Abbildung 2.4 ist bei der Bildung des Betragsspektrum zu sehen, dasbei einer Transformation eines Zeitabschnitts einer kompletten Periode, nurdie Frequenzen des Sinus berechnet werden. Wird jedoch ein Signalabschnittbetrachtet, in dem keine ganze Periode oder Vielfache enthalten ist, führtdies bei der Transformation zur Verschmierungen im Betragsspektrum (sieheAbbildung 2.5 und 2.8). Dies hat in der Regel störenden Ein�uss auf dasSignal. Die Entstehungen von neuen Spektrallinien nennt man Leck- E�ekt(leakage).

0 2 4 6 8 10 12 14 16 18 20−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

t/ms

Ausschnitt eines Signals

Abbildung 2.5: Ausschnitt eines Sinus-Signals mit f=60Hz

11

Page 21: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

0 2 4 6 8 10 12 14 16 18 20−2

−1

0

1

2

3

4

5

6

f(k)

Realteil des Spektrums

Abbildung 2.6: Realteil des transformierten Signals

0 2 4 6 8 10 12 14 16 18 20−8

−6

−4

−2

0

2

4

6

8

f(k)

Imaginaerteil des Spektrums

Abbildung 2.7: Imaginärteil des transformierten Signals

12

Page 22: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

0 2 4 6 8 10 12 14 16 18 200

1

2

3

4

5

6

7

8

9

f(k)

Betragsspektrum

Abbildung 2.8: Betragsspektrum des Ausschnitt des Signals

In der Abbildung 2.5 kann man gut erkennen, dass die dargestellte Fre-quenz weder eine volle Periode noch ein ganzzahliges Vielfaches der Frequenzdarstellt. Zur Veranschaulichung kann man das dargestellte Signal mit sichselber fortsetzten -wie in Abbildung 2.9- und erkennt somit, dass an der Stellet=20ms eine Unstetigkeitsstelle entstanden ist. Diese Unstetigkeitsstelle hatzur Folge, dass im Freqeunzbereich neue Spektrallinien entstehen.

13

Page 23: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

0 5 10 15 20 25 30 35 40−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1Fortsetzung des Signals

t/ms

Abbildung 2.9: Fortsetzung des Teilsignals

Um diesen E�ekt näher zu erläutern, muss man sich die Multiplikation desRechteckfensters mit dem Signal im Frequenzbereich vorstellen. Die Multipli-kation des Rechteckfenster mit dem Teilsignal entspricht im Frequenzbereicheiner Faltung mit einem Sinus cardinalis (Si-Funktion.)

x(t) · [∞∑

n=−∞

δ(t− n · t)] · rect( t

N · T) (2.7)

X(f) ∗ 1

T[∞∑

n=−∞

δ(f − n · fa)] ∗ N · T · Si(π · f ·N · T )

14

Page 24: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

0 10 20 30 40 50 600

0.5

1

Zeit/ms

Rechteckfenster

Abbildung 2.10: Rechteckfenster

−450 −400 −350 −300 −250 −200 −150 −100 −50 0 50 100 150 200 250 300 350 400 450−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

f/Hz

Transformiertes Rechteckfenster

Abbildung 2.11: transformiertes Rechteckfenster, Si(f)

Bei einer zeitlichen Länge des Rechteckfensters von 20ms und einer Ab-tastfreqeunz von 1000Hz (->N=20), ergeben sich bei der Si-Funktion Null-stellen bei f0 = 50Hz und Vielfachen.

Si(π · f ·N · T ) = 0 wenn f ·N · T = 1, 2, 3. =⇒ f = 50, 100, 150....

Durch die Faltung des Signals ähnlich aus Abbildung 2.5 mit der Si-Funktionändert sich die spektrale Zusammensetzung des Signals. In Abbildung 2.12wird das Ergebins der Faltung beider Signale dargestellt. Dort kann man

15

Page 25: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

erkennen, dass die spektrale Au�ösung durch den Abstand der ersten Null-stelle bestimmt wird. Die rot gestrichelten Linien in dem Diagramm stellendie diskreten Werte dar, die nach der Faltung entstehen. Die einhüllendeKurve soll die Form des diskreten Signals nochmal verdeutlichen. Betrachtetman die rechte Seite des unteren Diagramms kann man die Struktur des Be-tragsspektrums von Abbildung 2.8mit den neu entstandenen Spektrallinienerkennen.

−500 −400 −300 −200 −100 0 100 200 300 400 500

f/Hz

Faltung eines Sinus mit einer SI−Funktion

−500 −400 −300 −200 −100 0 100 200 300 400 500

0

f/Hz

−500 −400 −300 −200 −100 0 100 200 300 400 500

0

Abbildung 2.12: Faltung des Sinus f=60Hz mit Si-Fkt.

2.2.2 Fensterfunktionen

Um diese Fehler so gering wie möglich zu halten, wird das Signal (siehe Abbil-dung 2.5 ) mit einer Fensterfunktion gewichtet. Es gibt eine Reihe von Fens-terfunktionen wie das Hamming-, Hanning-, Bartlett-, Kaiser- oder Welch-Fenster. Üblicherweise verwendet man allerdings das Hamming-Fenster fürdie Wichtung von Sprachsignalen. Das Hamming Fenster hat den Vorteil ge-genüber dem ungewichteten Signalabschnitt (Rechteckfenster), dass die Ne-benkeulen stärker gedämpft sind (siehe Abbildung 2.13 und 2.14).

16

Page 26: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

10 20 30 40 50 600

0.2

0.4

0.6

0.8

1

Abtastwerte

Leckeffekt Faktor 0,03%

Am

plitu

de

Zeitbereich

0 0.2 0.4 0.6 0.8−100

−80

−60

−40

−20

0

20

40

genormte Frequenz (´π rad/sample)Haupkeulenbreite bei −3db: 0,039 Nebekeulendämpfung: −42dB

Mag

nitu

de (

dB)

Frequenzbereich

Abbildung 2.13: Hamming-Fenster

10 20 30 40 50 600

0.2

0.4

0.6

0.8

1

Abtastwerte

Leck−Effekt Faktror: 9,14%

Am

plitu

de

Zeitbereich

0 0.2 0.4 0.6 0.8−20

−10

0

10

20

30

40

genormte Frequenz (´π rad/sample)Hauptkeuelenbreite bei −3dB: 0.027344

rel. Nebenkeulen Dämpfung: −13,3

Mag

nitu

de (

dB)

Frequenzbereich

Abbildung 2.14: Rechteckfenster

Dadurch werden bei der Faltung die Freqeunzen, die weiter von der Haupt-keule entstehen, stärker gedämpft. Jedoch ist die Hauptkeule etwas breiter alsdie des Rechteck-Fensters, was eine geringere Selektivität zur Folge hat. ImVergleich zum Rechteckfenster entstehen bei der Frequenzanalyse mit demHamming-Fenster fast nur neue Spektrallinien, die sich näher an der realenSpektrallinie be�nden (siehe Abbildung 2.15). In der Abbildung ist zu sehen,dass die 3. Spektralline beim vorher gewichteten Signal nicht so deutlich auf-tritt wie beim ungewichteten Signal. Dies hat zur Folge, dass das berechneteSpektrum einen geringeren Leck-E�ekt aufweist als ein Signalabschnitt ohne

17

Page 27: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

Wichtung. In den Abbildungen 2.14 und 2.13 ist der Leck-E�ekt-Faktor inBezug auf die dargestellten Signale angegeben.

0 2 4 6 8 10 12 14 16 18 20−1

0

1

t/ms

Sinus mit 60Hz

0 2 4 6 8 10 12 14 16 18 200

5

10

f(k)−> k=50,100,150...

Betragsspektrum ohne Wichtung durch Hamming

0 2 4 6 8 10 12 14 16 18 200

5

10

f(k)−> k=50,100,150...

Betragsspektrum mit Wichtung durch Hamming

Abbildung 2.15: Vergleich der Spektren eines gewichteten und ungew. Signals

2.2.3 Anwendbarkeit der DFT

Die diskrete Fourier-Transformation kann in einem Störunterdrückungs- Al-gorithmus nicht immer auf das komplette Signal angewendet werden, da manin der Realität nicht immer das gesamte Signal zu Verfügung hat. Das Stör-unterdrückungssystem muss ein Gespräch in quasi Echtzeit verarbeiten, undbekommt daher nur kurze Signalabschnitte eines noch nicht abgeschlossenenGespräches zugeführt. Dies hat zur Folge, dass man das eingehende Signal inkurze Teilabschnitte unterteilt. Diese Teilabschnitte nennt man Fenster oderRahmen.

2.2.3.1 Periodische Faltung

Als periodische Faltung wird die sich wiederholende Faltung des Signals mitder Fensterfunktion genannt (siehe Abschnitt 2.2.1). Üblicherweise unterteiltman das Signal in Fenster, die eine Länge von N = 200 besitzen. Bei einerAbtastfrequenz von fa = 8000Hz, ergibt sich eine Fensterlänge von 25ms.

18

Page 28: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

Der Algorithmus verarbeitet dann die einzelnen Fenster (siehe Abbildung2.16).

Abbildung 2.16: Fensterung mit Timeshift von 12,5ms und Fensterlänge von25ms

Die Zerlegung des gesamten Signals in Teilabschnitte kann man auch alsMultiplikation des vollständigen Signals mit einem Rechteckfenster mit derAmplitudengröÿe 1 betrachtet werden (siehe Abschnitt 2.2.1). Die Multiplika-tion im Zeitbereich entspricht einer Multiplikation im Frequenzbereich(sieheGleichung 2.7). Um den beschriebenen Leck-E�ekt so gering wie möglich zuhalten, wird das Fenster in üblicherweise mit einem Hammingfenster gewich-tet.Um das Nyquist Kriterium nicht zu verletzen muss man ein Fenster mindes-tens mit der doppelten Bandbreite als die des Hammingfenster abtasteten.Dies hat zur Folge, dass jedes Fenster mit einem Zeitversatz einem so ge-nanntem Timeshift von maximal Fensterlange/2 abgetastet werden muss.Bei einer üblichen Fensterlänge von 25ms und fa =8000Hz ergibt sich einmaximaler Timeshift von 12,5ms (siehe Abbildung 2.16). Allerdings ist derTimeshift von der Art des Fensters abhängig. Wichtet man das Rechteckfens-ter mit einer Hanning-Funktion, ergibt sich wiederum eine anderer zeitlicherVersatz, der notwendig ist. Desweiteren ist zu beachten, das der zeitlicheVersatz unmittelbar von der Breite der Hauptkeule abhängt (siehe Abbil-dung 2.11). Die Breite ist wiederum abhängig von der Stelle wo sie abgelesenwird, üblicherweise nimmt man die 3db Grenze. Daraus ergibt sich ein groÿer

19

Page 29: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

Spielraum für die genaue De�nition des Timeshiftes. In der Praxis hat sichdurch empirische Experimente herausgestellt, dass bei einem Timeshift von10ms und einer Wichtung mittels Hamming-Fenster gute Ergebnisse in derSprachverarbeitung zu erwarten sind.

2.2.4 Rücktransformation in den Zeitbereich

Die Inverse Digitalen Fourier Transformation (kurz: IDFT oder eben IFFT)verhält sich von dem Rechenaufwand, wie die DFT und ist wie folgt de�niert:

x(n) =N−1∑k=0

X(k) · exp(+j2πkn

N) n = 0, . . . , N − 1 (2.8)

Es ergeben sich wieder N diskrete Zeitwerte, die dem sprachverbessertenSignalabschnitt entsprechen. Bei der periodischen Faltung des Signals ent-spricht die Rücktransformation einem Fenster, hier 200 Abtastwerte (fa=8000Hz,Länge des Fensters von 25ms).

2.2.5 Overlap-Add-Methode

Die Overlap Add Methode bezeichnet die Synthese des analysierten Signals,das auf der der periodischen Faltung beruht. Die Synthese wird durch dieAddition der überlappenden Fenster beschrieben (siehe Abbildung 2.17).[10]

Abbildung 2.17: Überlappende Synthese

20

Page 30: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

2.2.6 Normierung

Durch die überlappende Anlayse der Fenster muss vor der Rücktransfor-mation darauf geachtet werden, dass die Signalabfolge normiert wird. Dadie Überlappung als Addition von Frequenzbändern angesehen werden kann(siehe Abbildung 2.17), würde die Synthese dann nicht mehr der Analyse ent-sprechen. Um den Normierrungsfaktor XNorm zu bestimmen, berechnet manzuerst den Mittelwert der Fensterfunktion über den Zeitbereich des Fenstersund dann den Überlappungsgrad der Fenster. Somit gilt:

XNorm =

∑N−1n=0 wFenster(n)

N· FensterlangeT imeshift

Dies wird mit dem rücktransformierten Fenster multipliziert.

2.3 Präemphase

Die Präemphase beschreibt die Wichtung des Teilspektrums vor der Wich-tung durch die Fensterfunktion. Das Spektrum der Sprache nimmt ca. 8-10dbpro Oktave ab[7] (siehe Abbildung 2.18). Das heiÿt höhere Freqeunzen weiseneine kleinere Leistungen auf als niedrigere Frequenzen.

21

Page 31: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

Abbildung 2.18: Leistungsverteilung der Sprache über die Frequenz[7]

Um die Tiefpass-Charakteristik des Sprachsignals auszugleichen wird ver-sucht, durch Filterung eine ebene Enveloppe des Spektrums zu erhalten. Dieswird mittels eines rekursiven Filters 1. Ordnung realisiert (siehe Gleichung2.9 und Abbildung 2.19). Die Werte für a und b sind aus empirischen Experi-menten enstanden, wobei der optimale Koe�zient b vom Sprecher abhängt.In der Literatur sind Werte von b zu�nden, die einen Bereich von 0.9 bis 1eingrenzen. Gewöhnllich liegt a bei 1. [5][6]

y(n) = αpra · x(n)− βpra · x(n− 1) (2.9)

22

Page 32: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

T

aprä=1

bprä=0.95

x(n) y(n)

Abbildung 2.19: Rekursives Filter für die Präemphase

Mittels der Z-Transformation kann man die Übertragungsfunktion be-stimmen.

HPra(z) = αpra − βpra ∗ z−1 (2.10)

Der Frequenzgang dieses Filter weist eine Hochpass-Charakteristik auf, umdie höheren Frequenzen weniger stark zu dämpfen als die niedrigeren (sieheAbbildung 2.20).

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

Normfrequenz f/fa

Frequenzgang

Abbildung 2.20: Frequenzgang des Rekursiven Filters für die Preämphase

23

Page 33: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

2.3.1 Deemphase

Um die Präemphase nach der Verarbeitung zu kompensieren, wird das Si-gnal mittels Deemphase gewichtet. Dies entspricht dem inversen Filter derPräemphase.

Hde(z) =1

HPra(z)(2.11)

→ y|α=1(n) = x(n) + βdey(n− 1)

Daraus ergibt sich folgender Frequenzgang mit folgendem Filter

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50

2

4

6

8

10

12

Normfrequenz f/fa

Frequenzgang

Abbildung 2.21: Frequenzgang der Deemphase

Tbde=0.95

x(n) y(n)

Abbildung 2.22: Filter für die Deemphase

24

Page 34: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

2.4 Prinzip eines Störunterdrückungs- Systems

Es gibt viele Realisierungen von Störunterdrückungs- Algorithmen. Das hierdargestellte (siehe Abbildung 2.23) Verfahren, soll als übersichtliches Bei-spiel dienen. Dieser Störunterdückungs-Algorithmus basiert auf der spektra-len Subtraktion mittels Wiener Filter. Fast alle Verfahren arbeiten im Fre-quenzbereich, daher muss das gestörte Sprachsignal mittels der FFT trans-formiert werden. Vor der Transformation wird das zu betrachtende Fensternoch mittels der Präemphase und der Fensterfunktion gewichtet werden. Dasgestörte Sprachsignal wird dann mittels dem geschätztem Signal ge�ltert. Esist noch zu erwähnen, das die Präemphase und die Deemphase hauptsächlichin Spracherkennungssystemen und bei der Kodierung ihre Anwendung �ndenund weniger in reinen Störreduktions-Algorithmen. Sie dienen zur Vervoll-ständigung der Darstellungsweise dieses Blockschaltbildes.

25

Page 35: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

Präemphase

FFT

Filterung des gestörten

Signal

Schätzung des

Störsignals

IFFT

Deemphase

gefiltertes Signal

Wichtung durch Fenster

Abbildung 2.23: Störunterdrückungssystem

26

Page 36: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 2. GRUNDLAGEN

Die Filterung basiert darauf, das man das gestörte Betragsspektrum |Y |gest(k)als Addition des Sprachsignals und des Störsignals (|S|(k) und |N|(k)) an-nimmt.

|Y |gest(k) = |S|(k) + |N |(k) (2.12)

Durch ein geeignetes Schätzverfahren wird das aktuelle Rauschen ˆ|N |(k) er-mittelt und damit das ungestörte Sprachsignal |S|(k) berechnet.

|S|(k) = |Y |gest(k)− ˆ|N |(k) (2.13)

Allerdings ist dies die einfachste Form des Wiener Filters. Das Störunter-dückungssystem in dem der entwickelte Schätz-Algorithmus eingesetzt wer-den soll, arbeitet mit dem modi�zierten Wiener Filter und Cepstral Smoo-thing. An der Gleichung 2.13 kann man gut erkennen, dass die Schätzung desStörspektrums eine fundamentale Rolle in einem Störunterdrückungssystemspielt. Denn nur durch eine Schätzung, die dem realen Störspektrum nahekommt, lassen sich gute Ergebnisse erzielen.

27

Page 37: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 3

Ansätze zur Schätzung des

Störspektrums

In der Störschätzung gibt es viele Verfahren und Ansätze, in denen derenE�ektivität, durch die Art der Störumgebung und durch die Komplexitätder Algorithmen bestimmt wird. Alle nennenswerten Verfahren schätzen dasStörspektrum durch rekursive Algorithmen, der Unterschied liegt allerdingsin der Art, wie sie ihre rekursiven Formeln erneuern[4]. In den meisten Ver-fahren wird versucht, das Störspektrum in den Sprachpausen zu schätzen.Um das gestörte Sprachsignal von dem Störsignal zu unterscheiden, verwen-det man einen so genannten Voice activity detector (Vad). Allerdings gibt esauch Verfahren, die den Vad nicht benötigen und das Störspektrum durch dasLeistungsminimum bestimmen. Für diese Verfahren ist eine gewisse Mengenan zurückliegenden Daten nötig. Die hier vorgestellten Verfahren beschreibeneinen kleinen Auschnitt der verschiedenen Möglichkeiten, die zur Störschät-zung verwendet werden.

3.1 Schätzung durch �Mean of �rst frames� (MFF)

Dieser Algorithmus basiert auf der Au�assung, dass bei einem Sprachsignalzu Beginn des Signals, ca. in den ersten 150ms nur Störgeräusche in demSignal enthalten sind. Als Beispiel kann man sich ein Telefongespräch vor-stellen, bei dem das Gespräch erst eine gewisse Zeit nach dem Verbindungs-aufbau statt�ndet. Der Algorithmus berechnet bis einschlieÿlich zum 10.Fenster (Fensterlänge=25ms, Timeshift=12,5 entspricht das einer Zeit von

28

Page 38: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

150ms) nach dem Signalbeginn, den jeweils aktuellen arithmetischen Mit-telwert über alle Bänder(k) und gibt dies als geschätztes Störsignal an denWiener Filter weiter (siehe Gleichung 3.1 und Abbildung 3.1) (N=Anzahl derFenster; no Index für Störspektrum, k=Index für Frequenzbänder, s= Indexfür eingehendes Spektrum)

|Yno|(k) =1

N·N−1∑n=0

|YS|(n, k) (3.1)

29

Page 39: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

Start

Input :-Spek(k); Spektrum des zu verarbeitenden Fensters-Count; Index des aktuellen Fensters-Noise(k); geschätztes Störspektrum

Count==1? Noise(k)=Spek(k)

Ende

Count<=10?

ja

nein

ja

nein

Noise(k)=aktueller Mittelwert

Output:-Noise(k); geschätztes Störspektrum

Abbildung 3.1: Schätzung des Störspektrums durch Berechnung des Mittel-wertes in den ersten 10 Frames

Dieses Verfahren zeichnet sich durch seine Übersichtlichkeit aus, was dieImplementierung und Rechenzeit angeht. Bei einem stationären Störsignal,das sich vom Pegel und von der spektralen Zusammensetzung nicht ändert,kann der Algorithmus erfolgreich angewendet werden. Allerdings kann das

30

Page 40: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

Schätzverfahren überhaupt nicht auf irgendeine Veränderung des Störspek-trums reagieren, da das geschätzte Störspektrum, nach der letzten Berech-nungen, ab dem 10. Fenster immer gleich bleibt.

3.2 Schätzung durch �Smoothing noise� (SN)

Das Smoothing der Störgeräusche ist auf die rekursive Glättung zurück zu-führen. Der Hintergrund der Glättung ist die Verringerung der Varianz. Indiesem Algorithmus wird versucht von den ersten Frames ausgehend, das ge-schätzte Störspektrum ständig zu glätten. Die Glättung oder Smoothing ist inder digitalen Signalverarbeitung weit verbreitet und wird in unterschiedlichs-ten Bereichen eingesetzt. In dieser Diplomarbeit wird die rekursive Glättungfür das Betragsspektrum über der Zeit betrachtet. Die Berechnung kann alsWichtung der einzelnen Bänder (k) über den gesamten Signalverlauf inter-pretiert werden. Smoothing de�niert sich zu:

|yS|(k, n) = (1− a) · |ySi|(k, n) + a · |yS|(k, n− 1) (3.2)

Wobei |ysi|(k,n) der aktuelle Wert eines Frequenzbandes ist und |ys|(k,n) dergeglättete Wert. Die Smoothing-Formel ist ein IIR-Filter 1.Ordnung. Die Fre-quenzgang (siehe Abbildung 3.2) ähnelt einem Tiefpass, dessen �Flankensteil-heit� vom Parameter a bestimmt wird. Aus der Z-Transformation lässt sichableiten, das α ≤ 1 sein muss, damit das so genannte Filter stabil bleibt.

Ys(Z) = (1− α) · YSi + α · z−1 → H(z) =(1− α)

1− α · z−1(3.3)

→ Polstelle : z(0) ≤ 1 bei α ≤ 1 (3.4)

31

Page 41: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50

0.2

0.4

0.6

0.8

1

1.2

Normfrequenz f/fa

Frequenzgang

Abbildung 3.2: Frequenzgang der Smoothing-Formel

Daraus ergibt sich ein Bereich von 0 ≤ a ≤ 1. Aus den Diagrammen(siehe Abbildung 3.3, 3.4 und 3.5) kann man erkennen, dass mit sinkendema das Spektrum weniger geglättet wird. In der Praxis hat sich gezeigt, dasman mit a=0,9 gute Ergebnisse erzielen kann.

32

Page 42: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

0 50 100 150 200 2500

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000Spektrum

k

Abbildung 3.3: geglättetes Spektrum mit a=0.01,rot=geglättet,schwarz=original

0 50 100 150 200 2500

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000Spektrum

k

Abbildung 3.4: geglättetes Spektrum mit a=0.99,rot=geglättet,schwarz=original

33

Page 43: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

0 50 100 150 200 2500

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000Spektrum

k

Abbildung 3.5: geglättetes Spektrum mit a=0.09, rot=geglättet,schwarz=original

In dem Algorithmus wird das erste zu verarbeitende Spektrum |yS|(0, k)über alle Frequenzen mit 0.9 gewichtet. Damit wird der Anfangswert für jedesBand etwas niedriger.

|yN |(o, k) = 0, 9· > |yS|(0, k) (3.5)

Die folgenden Schätzungen werden dann von dem ersten gwichteten Spek-trum aus berechnet (siehe Abbildung 3.6).

|yN(n > 0, k)| = (1− α) · |yS(n > 0, k)|+ α · |yN(n− 1, k)| (3.6)

Jedes aktuelle Frequenzband wird mit seiner letzten Schätzung verglichen,beim Überschreiten einer gewissen Schwelle wird entschieden, dass diesesBand kein Teil des Störsignals ist und somit wird die Glättung für diesesBand nicht durchgeführt. Bedingung für Smoothing

|yS(n, k)| ≤ 3 · |yN(n− 1, k)| und |yS(n, k) ≥ 0.3 · |yN(n, k)| (3.7)

Dieses Verfahren kann als quasi Mittelswertsbildung der Störumgebung an-gesehen werden, da eine Verringerung der Varianz in guter Annäherung dem

34

Page 44: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

Erwartungswert entspricht. Dieses Verfahren ist auch sehr übersichtlich, al-lerdings kann es in gewissermaÿen auf Veränderungen des Gesamtsignals rea-gieren.

StartAlpha=0.9

Input :-Spek(k); Spektrum des zu verarbeitenden Fensters-Count; Index des aktuellen Fensters-Noise(k); geschätztes Störspektrum

Count==1? Noise(k)= 0.9*Spek(k)

Ende

k=Anzahlder Bänder ?

ja

nein

ja

nein

Noise(k)=(1-Alpha)*Spek(k)+Alpha*Noise(k)

Output :-Noise(k); geschätztes Störspektrum

k=0

Spek(k)>3*Noise(k)

ja

k=k+1

nein

Abbildung 3.6: Schätzung durch Smoothing

35

Page 45: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

3.3 Schätzung durch �Threshold direct estima-

tion� (TDE)

Diese Verfahren beruht auf eine Schätzung durch einen Schwellwert. Es wurdemir von Herrn Prof. Dr.-lng. Hans-Günter Hirsch zur Verfügung gestellt. Indiesem Algorithmus wird der Schwellwert für jedes Band und in jedem Fens-ter neu angepasst. Die Anpassung wird durch das so genannte NX Verhältnisrealisiert. Zusätzlich werden noch einige Modi�kationen vorgenommen, umdie aktuelle Schätzung zu verbessern.In dem Algorithmus wird vor dem eigentlichen Schätzverfahren, das Signalgeglättet. (siehe Abschnitt3.2). Bis zum 10. Fenster wird das geglättete Spek-trum an das Wiener Filter weitergegeben. Die Grundlage für die eigentlicheSchätzung wird durch die Berechnung des arithmetischen Mittelwertes (sie-he Abschnitt 3.1) nach dem 10. Fenster gebildet. Die Besonderheit dieserProcedur ist ständige Berechnung des Threshold für jedes Band in jedemFenster. Sie wird durch das NX -Verhältnis über alle Bänder (k) realisiert(siehe Gleichung 3.8).

NXi(k) =geschatztes Rauschen(k)

aktuelles Spektrum(k)(3.8)

Das Verhältnis gibt eine eine relative Aussage über den Anstieg des Pegelseines Bandes, von der letzten Schätzung des Pegels zum aktuellen Fenster.Für dieses Verhältnis wird für jedes Band immer ein relativer minimalerund maximaler Grenzwert im Vergleich zum vorherigen Band bestimmt, d.hsollte NXi(K) kleiner sein als das aktuelle Minimum oder gröÿer sein als dasaktuelle Maximum, werden die Grenzen angepasst. Die möglichen Bereichefür das NX Verhältnis sind:

0 < NXimin(k) < 0, 5 (3.9)

0, 6 6 Nimax(k) 6 1 (3.10)

In der nachfolgenden Abbildung wird die Anpassung der Grenzen dargestellt.

36

Page 46: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

0 0.005 0.01 0.015 0.02 0.0250

0.2

0.4

0.6

0.8

1

t/ms0 0.005 0.01 0.015 0.02 0.025

0

0.2

0.4

0.6

0.8

1

Verschiebung der Gernzen eines Bandes zwischen zwei Fenstern

t/ms

NX

Abbildung 3.7: Verschiebung der Grenzen des NX-Verhältnis

Dadurch dass der Threshold von der unteren Grenze abhängig ist, ergibtsich ein relativer Threshold. Das Verfahren kann somit auf Änderungen desStörpegels reagieren. Bei einem Anstieg des Störspektrums wird die unte-re Grenze angehoben (siehe Abbildung 3.7), durch die neue Berechnung desThresholdes kann der Anstieg bis zu einem gewissen Maÿe kompensiert wer-den. Der NX Verhältnis wird noch auf die aktuellen Grenzen normiert (sieheGleichung 3.11) und dann mit dem Threshol verglichen.

NXirel(k) =NXi(k)−NXimin(k)

NXimax(k)−NXimin(k)(3.11)

Das realtive NX liegt dann zwischen den neuen Grenzen. Die Modifaktionenbetre�en das geschätze Spektrum, es wird überprüft ob es gröÿer Werte auf-weist als das aktuelle, dies wird dann durch Glättung korrigiert. Ablauf desAlgorithmus siehe Abbildung 3.8. Die Detektion der aktiven Bänder kannauch als robuster VAD benutzt werden. [2]

37

Page 47: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

Start

Input:-Spek(k); Spektrum des zu bearbeitenden Fensters-Count; Index des akt. Fensters-Noise(k); geschätzes Störspektrum

Smoothing über alle Bänder wenn „Spek(n,k)<3*Noise(k,n-1)“ erfüllt

Count>11?

Verarbeitung des 1. Fensters

nein

ja

Berechnung des NX Verhältnis ,der Grenzen und des Thresholdes

Nxir<

Threshold?

neinja

Über alle BänderNoise(k)=Faktor*Spek(k)

Noise(k)>Spek(k)?->Korrektur durch Glättung

Ende

Output:-Noise(k); geschätztes Störspektrum

Abbildung 3.8: TDE Algorithmus

38

Page 48: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

3.4 Schätzung durch �Minimum Statistics and

optimal smoothing, Martin� (MSOPM)

Das Verfahren Minimum Statistics von Herrn Martin schätzt das Störspek-trum gestörter Sprache basierend auf der optimalen Glättung und dem su-chen des statistischen Minimum des Störspektrums. Dieser Algorithmus ver-wendet keinen VAD oder einen Threshold und sucht anstatt dessen, das Mi-nimum in jedem Band. Zu Beginn des Algorithmus wird das eingehendeSpektrum geglättet. Vor der Glättung wird versucht, den optimalen Glät-tungsfaktor α zu bestimmen. Daraus ergibt sich schon die erste Problem-stellung, der Smoothing Parameter α sollte nahe 1 sein, um eine möglichstgeringe Varianz zu bekommen (siehe Abbildung 3.4) und auf der anderenSeite verringert dies die Möglichkeit, den �nicht stationären Verlauf� desStörsignals zu folgen. Um Alpha zu optimieren, muss er frequenz- und zeit-abhängig sein. (|P|(l,k)= Leistungsspektrum des geglätteten Störspektrum;|Y|²= Leistungsdichtespektrum des gestörten Signals; l= Zeitindex und k=Freqeunzindex).

|P |(λ, k) = α(λ, k)|P |(λ− 1, k) + (1 + α(λ, k))|Y |2(λ, k) (3.12)

Um für jedes Band in jedem Fenster das optimale α zu�nden, wird versuchtdie Quadrate der Abweichung zwischen dem geglättetem Spektrum und demStörspektrum zu minimieren. Nach Herleitung ergibt sich ein optimales αopt

aopt(l, k) =1

1 + (P (l− 1, k)/svN²(l, k)− 1)²(3.13)

Im Normalfall liegt das geschätzte Störspektrum zeitlich hinter dem wahrenStörspektrum, dadurch ist aopt ist immer etwas zu klein oder zu groÿ. Es kön-nen Probleme entstehen wenn aoptnahe 1 ist, dann kann der Schätzer nicht soschnell reagieren. Dadurch muss der so entstehende Fehler beobachtet wer-den. Sollten Fehler detektiert werden, muss a verkleinert werden. Um denFehler zu berechnen wird der Mittelwert des vorherigen geschätzten Spek-trum mit dem Mittelwert des aktuellen Spektrums verglichen. Des Weiterenwird noch ein Korrekturfakor für Alpha eingeführtαc und einen Maximalwertαmax = 0, 96 bestimmt, dies soll die Optimierung von Alpha noch mehr ver-bessern. Aus der Herleitung der Verö�entlichung von Herrn Martin, ergibtsich ein α(λ, k) zu.

a(l, k) =amax · ac(l)

1 + (P (l− 1, k)/sv2(l− 1, k)− 1)2(3.14)

39

Page 49: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

Der Algorithmus sucht in jedem Fenster das Minimum. Für die Bestimmungdes Minimums, wird vorausgesetzt, dass Sprachsignale deutliche Spitzen undTäler aufweist. Spitzen in dem Signal werden der Sprache zugeordnet und dieTäler dem Rauschen. Für die Schätzung des Rauschens wird das geglätteteSpektrum verwendet. In dem geglättetem Spektrum wird dann das Minimumgesucht. Dieses wird mit dem voherigen Werten verglichen und gewichtet. Fürdie Berechnung des Minimums, müssen noch weitere Parameter bestimmtwerden, diese sind hier allerdings nicht aufgeführt. Mit diesem Verfahrenkann man sehr gute Ergebnisse erzielen, wenn man auf eine groÿe Anzahlvon zurückliegenden den Werten zurück greifen kann. Dieser Algorithmus istnicht sehr komplex und kann auch Rauschen detektieren, das seinen Pegel ingewissen Maÿen ändert. [8]

40

Page 50: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

Start

Input :-Spek(k); Spektrum des zu verarbeitenden Fensters-Count; Index des aktuellen Fensters-Noise(k); geschätztes Störspektrum

Count==1? Initialisiere Algorithmus

Ende

ja

nein

Berechnung von alpha _opt und Korrektur

Output:-Noise(k); geschätztes Störspektrum

Glättung der Frequenzbänder

Berechnung des Minimums mittels Minimum Statistics

Abbildung 3.9: Minimum Statistics and optimal Smoothing

41

Page 51: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

3.5 Schätzung durch �Expectation Maximizati-

on� (EM)

Der Expectation-Maximization-Algorithmus ist ein Verfahren, das aus dermathematischen Statistik stammt. Dieser Algorithmus basiert darauf, dassman Messwerte einer bekannten Dichtefunktion besitzt und dass Teile die-ser Messwerte schlichtweg faslch oder gar nicht vorhanden sind. Aus die-sen Werten versucht der Algorithmus durch mehrere aufeinander folgendenIterationsschritte die optimalen Parameter der angenommenen Verteilungs-funktion zu �nden. Den Ablauf kann man folgendermaÿen beschreiben, alserstes nimmt man an, dass die erzeugten Messwerte einer bestimmten Ver-teilungsfunktion, z.B. einer Normalverteilung, entsprechen und berechnet fürdie Annahme die notwendigen Parameter. Da eine Normalverteilung eindeu-tig durch Erwartungswert und Varianz zu bestimmen ist, reicht es aus Erwar-tungswert und Varianz zu berechnen. Daraus berechnet man die Wahrschein-lichkeiten für das Auftreten dieser Werte. In der nächsten Iteration werdendie Messwerte mit den Wahrscheinlichkeiten gewichtet, damit werden Er-wartungswert und Varianz neu bestimmt. Dies wird solange durchgeführtbis sich die bestimmten Parameter, Mittelwert und Varianz, nicht mehr be-deutend ändern (siehe 3.10). Die Anwendbarkeit dieses Algorithmus beruhtdarauf, dass die Beträge zum Qaudrat eines Frequenzband |Xn(n, k)|2 überder Zeit, sich in einer Normalverteilung darstellen, somit ergibt sich für dieWahrsscheinlichkeitsdichte Funktion folgende Gleichung.

42

Page 52: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

Berechnung des Erwartungswertes (µ)

und Varianz (var)

Berechnung der Wahrscheinlichkeiten der

Werte

Wichtung der Werte 1.Iteration I=0->p(x)=1

p(x)I=I+1

µ, var

Abbildung 3.10: EM-Algorithmus Übersicht

y = f(|xn(k)|2|µ, σ) =1

σ√

2πe−(x−µ)2

2σ2 (3.15)

Die Wahrscheinlichkeitsdichtefunktion eines Bandes sollte den Verlauf wie inAbbildung 3.11 haben. Man kann sich aber gut vorstellen, dass in der Realitätnicht bei jedem stationärem Rauschen exakt der gleiche Verlauf zu erwartenist. Die Werte für Erwartungswert und Varianz sind rein �ktiv und zur Ver-anschaulichung wurde eine stetige Funktion gewählt. In der Abbildung 3.10wird das Suchen der optimalen Parameter für eine Zahlenmenge dargestellt.Dadurch dass man in der Störunterdückung nur mit kurzen Abschnittenseines Signals arbeiten kann, wird dem EM-Algorithmus für jeden Iterations-schritt ein Spektrum übergeben. Dies bedeutet, dass der Algorithmus fürjedes Spektrum nur eine Schätzung der Parameter durchführt. Daraus er-gibt sich die Notwendigkeit, dass zurückliegende Spektren gebu�ert werdenmüssen. Damit keine Schätzungen von eingehenden Sprachspektren gemachtwerden, muss durch den Algorithmus eine Entscheidung getro�en werden, obdas eingehende Spektrum Sprache oder Störung ist.

43

Page 53: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

−10 −8 −6 −4 −2 0 2 4 6 8 100

0.02

0.04

0.06

0.08

0.1

0.12

0.14Wahrscheinlichkeitsdichte Funktion eines Freqeunzbandes

p(|Xk|2)

Abbildung 3.11: Wahrscheinlichkeitsdichte Funktion eines Freqeunzbandesüber der Zeit

3.5.1 Schätzung des Störspektrums

Für die Betrachtungsweise der Procedur in diesem Unterabschnitt, wird dieEinschränkung gemacht, dass nur aufeinander folgende reine Störspektrenbetrachtet werden (->Index no für noise). Durch Betrachtung der einzelnenFrequenzbänder über der Zeit, müssen zwei Bu�er angelegt werden. Der ers-te Speicher ist der sogenannte Spek.-Bu�er in ihm werden die |Nb(k, n)|2 =nno(n, k) hinterlegt, dies sind die Quadrate der Betragsspektren, die als Stö-rung detektiert wurden. Dieser Bu�er soll eine Obergrenze von Nmax zurück-liegenden Werten besitzen. Der zweite Bu�er, der sogenannte Prob.-Bu�er,enthält die Wahrscheinlichkeiten von |Nb(k, n)|2, er besitzt die gleiche Grö-ÿe wie der Spek.-Bu�er. Um die Verarbeitung der Freqeunzbänder zu ver-anschaulichen, ist in der folgenden Abbildung (3.12) nur ein Frequenzbanddargestellt, denn diese Abfolge ist für alle Bänder gleich. Mit Hilfe der Ab-bildung kann man den Ablauf der Schätzung ganz gut erkennen. Am linkenRand ist der Prob.-Bu�er abgebildet, er enthält die Wahrscheinlichkeiten,die aus der letzten Iteration berechnet wurden. Nun wird der Prob.-Bu�ermit den aktualisierten Spek.-Bu�er multipliziert. Das Ergebnis ist ein ge-wichtetes Freqeunzband. Daraus wird der neue Mittelwert und die Varianzberechnet, der Erwartunsgwert entspricht einem Teilband des geschätztemStörspektrums. Es sei noch zu erwähnen, dass das Ergebnis dieser Multi-plikation nicht den Bu�er überschreibt, es ist rein lokal und steht für dienächste Iteration nicht mehr zur Verfügung. Mit Hilfe der berechneten Para-meter und dem aktuellen Spek.-Bu�er werden die Wahrscheinlichkeiten für

44

Page 54: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

die nächste Iteration berechnet (siehe Pfeil nach unten in Abbildung 3.12).

|Nb(5,n-1)|²

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

p(|Nb|²,5)aktuelle

Wahrscheinlichkeiten

|Nb(5,n)|²

Berechnung der Wahrscheinlichkeiten

p(|Nb|²,k)

ältester Eintrag wird gelöscht

Verarbeitung des 5. Frequenzbandes eines Iterationsschritt

p(|Nb|²,5) des Prob. - Buffer der

letzten Iteration

|Nb(5,n)|²

Letzter Spek. -Buffer

Eintrag

Letzter Prob.-Buffer

Eintrag

Spek. - Buffer des 5.Bandes

Letzter Prob .-Buffer

Eintrag

Mittelwert-> 5. Teilband des Störspektrums

|Nb(5,n)|²

|Nb(5,n-1)|²

letzter Eintrag

gewichteter Buffer(nur lokal )

x =

Abbildung 3.12: Verarbeitung des 5.Frequenzbandes

Für die vollständige formale Beschreibung muss man jedoch alle Fre-

45

Page 55: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

quenzbänder betrachten und somit ergibt sich für die erste Bestimmungdes Mittelwertes mno(k) und der Varianz varno(k) folgender Zusammen-hang.(N=Anzahl der Fenster, n=Zeitindex; k=Frequenzindex; no entsprichtNotation für Störpektrum)

mno(k) =1

N·N−1∑n=0

nno(n, k) (3.16)

varno(k) =1

N − 1·N−1∑n=0

(mno(k)− nno(n, k))2 (3.17)

σno(k) =√varno(k) (3.18)

Die Berechnung der Wahrscheinlichkeitswerte geschieht durch:

Prob.Buffern(n, k) =1

σno(k)√

2πe−(nno(n,k)−mno(k))2

2σ2no(k) (3.19)

Ab dem 10.Spektrum wird der Mittelwert mit den voherigen berechnetenWahrscheinlichkeiten gewichtet, somit ergibt sich

mno(k) =

∑N−1n=0 Prob.Buffer(n, k) · Spek.Buffer(n, k)∑N−1

n=0 Prob.Buffer(n, k)(3.20)

varno(k) =

∑N−1n=0 (Spek.Buffer(n, k)−mno(k))2∑N−1

n=0 Prob.Buffer(n, k)(3.21)

σno(k) =√varno(k) (3.22)

46

Page 56: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

3.5.2 Erkennung von Störspektren

Eine weitere Herausfordung, die der Algorithmus lösen muss, ist die Erken-nung von eingehenden Störspektren. Wie oben erläutert versucht der Algo-rithmus die Parameter einer Normalverteilung zu berechnen. Da es keinenSinn macht das Spektrum von eingehenden Sprache zu schätzen, muss dar-auf geachtet werden, das eingehende Spektren |Y (k)|, die Sprache enthalten,nicht durch den Algorithmus verarbeitet werden. Die Realisierung geschiehthier durch einen Threshold, dieser berechnet sich durch das letzte geschätzeStörspektrum |N(k)| und einem Faktor β.

Tr = β · |N(k)| fur 1.5 ≤ β ≤ 3.0 (3.23)

Es wird jedes Band eines Fensters überprüft, sollte eine gewisse Anzahl vonBändern diese Bedingung (siehe Gleichnung 3.24) erfüllen, wird dieses Fens-ter als Sprache detektiert und nicht verarbeitet. Die Anzahl der notwendigenBänder liegt bei 30 Stück, für ein Betragspektrum der FFT Länge von 256.Dieser Wert ist empirisch entstanden.

|Y (k)| > β · |N(k)| (3.24)

3.5.3 Modi�zierung durch zeitliche Wichtung

Um auf Veränderungen des Störspektrums besser zu reagieren, kann mandie Quadrate der Betragspektren noch über der Zeit wichten. Es wird ver-sucht mittels Wichtungsfunktion die Werte im Spek.-Bu�er zu wichten. Fürdie Wichtung wurde eine Exponentialfunktion mit der Basis 0.95 gewählt.Die Länge des sich ergebenen Wichtungsvektors Wv(n) ist gleich der zeit-lichen Länge der Bu�er, Nmax (siehe Gleichung 3.25). Die Wichtungskurveist in Abbildung 3.13 dargestellt. In der Gra�k sind 2 Kurven zu sehen, derkleinste Index n=0, entspricht dem aktuellsten Wert des Bu�ers. Hier wurdeder Bu�er auf n=200 begrenzt. Mit steigendem α (schwarze Kurve) sinktdie Reaktionsfähigkeit, d.h. weiter zurückliegende Werte werden stärker ge-wichtet. Durch die Variation der Basis kann nun die Reaktionsfähigkeit desAlgorithmus gesteigert werden.

Wv(n) = 0, 95n (3.25)

47

Page 57: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

0 20 40 60 80 100 120 140 160 180 2000

0.2

0.4

0.6

0.8

1Wichtungskurven

Index des Buffers n

Wic

htun

gsko

effiz

ient

alpha=0.98alpha=0.90

Abbildung 3.13: Wichtungskurve

Die Wichtung wird in der Formel 3.20 vorgenommen somit ergibt sich

mno(k) =

∑N−1n=0 Prob.Buffer(n, k) · Spek.Buffer(n, k) ·Wv(n)∑N−1

n=0 Prob.Buffer(n, k) ·Wv(n)(3.26)

varno(k) =

∑N−1n=0 (Spek.Buffer(n, k)−mno(k))2∑N−1n=0 Prob.Buffer(n, k) ·Wv(n)

(3.27)

σno(k) =√varno(k) (3.28)

Zum Überblick ist der ganze Algorithmus schematisch als Flussdiagrammdargestellt (siehe Abbildung 3.14).

48

Page 58: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 3. ANSÄTZE ZUR SCHÄTZUNG DES STÖRSPEKTRUMS

Ende

Start

Spek(k), aktuelles SpektrumCount, Index des aktuellen FenstersNoise(k), geschätztes Störspektrum

C=0?

Initialisiere Schreibe in Spek_buffer

C<10?

Ja

Nein

Ja

Noise(k)durch Glättung

von Spek(k)

C==9?

Nein

Ja Berechnung von m, sigma und p

Schreibe in Spek_buffer

Nein

Spek(k)=Sprache?

Ja

Nein

Schreibe in Spek _buffer

Berechne gewichteten Mittelwert-> Noise(k) aus

Wahrscheinlickeiten

Noise(k), geschätztes Störspektrum

Berechne gewichtete Varianz

Berechne gewichtete Varianz

Noise(k)=0.9*Spek(k)

Abbildung 3.14: Funktionsablauf des EM-Schätzverfahrens

49

Page 59: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 4

Berechnung der Güte des

geschätzten Spektrum

Zur Berechnung der Qualität eines Signals gibt es 2 verschiedene Arten (sieheAbb. 4.1), die sich von den Eingabe-Parameter unterscheiden. Das Verfahrenohne Referenz, bei dem nur das gestörte Signal zur Verfügung steht odermit Referenz, bei der das Störsignal und das gestörte Signal zur Verfügungsteht. Durch die künstliche Störung der Sprachsignale in der Testumgebungbietet sich das Verfahren mit einer Referenz an. Da die Schätz-Algorithmen

Abbildung 4.1: Intrusiv und non -intrusive Typen zur Qualitätsbeurteilung

im Frequenzbereich arbeiten macht es Sinn ein Verfahren zu wählen, welchesdie Berechnung ebenfalls in dem Spektralberreich ausführt. Es gibt einigeMethoden, die in der Praxis ihre Anwendung �nden, wie z.B. die Itakura

50

Page 60: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 4. BERECHNUNG DER GÜTE DES GESCHÄTZTENSPEKTRUM

Saito (IS) oder der Cepstrale Abstand. Allerdings wurde hier die Methodemit der meisten Akzeptanz in der Praxis gewählt, -gain normalized spectraldistortion (SD) (siehe Gleichung )

d(n)SD(s, y) =

∫ π

−π[10 · log10(

Ps(n, k)

Py(n, k))]2dk

2π(4.1)

Dieses Verfahren bestimmt den spektralen Abstand zweier Spektren (k=Indexfür die Freqeunz, n=Zeitindex), mittels Berechnung des Abstandes in db zumQuadrat über alle Freqeunzen. Gewöhnlich wird der arithmetische Mittelwertüber alle Fenster gebildet, um eine Aussage über das komplette Signal zutre�en.

dSD(s, y) =1

N

√√√√ N∑n=1

d(n)SD(s, y) (4.2)

Für die Berechnung von Zeitdiskreten Signalen geht das Integralzeichen ineine Summe über, somit ergibt sich:

d(n)SD(s, y) =

N−1∑n=0

[10 · log10(Ps(n, k)

Py(n, k))]2 (4.3)

Der mittlere spektrale Abstand des gesamten Signals berechnet sich wie inGleichung 4.2. Mit der Bestimmung des Abstandes zwischen dem reinenund dem geschätzen Störspektrum kann man somit eine qualitative Aussageüber das Schätzverfahren machen. Mit diesem Wert kann man dann die un-terschiedlichen Verfahren miteinander vergleichen. Allerdings muss beachtetwerden, dass die berechnete Güte des Schätzverfahrens keine Aussage dar-über macht wie gut das Schätzverfahren in einem Störunterdrückungssystemfunktioniert. Mit folgendem Beispiel kann man die Nachteile des mittlerenSpektralenabstand erläutern. Sollte der Schätzalgorithmus bei Fenstern indenen Sprache auftritt besonders groÿe Werte gegenüber den eigentlichenStörgeräuschen schätzen und in den Fenstern in denen keine Sprache auf-tritt besonders niedrige Werte relativ zum Störsignal schätzen, wirkt sichdas nicht besonders stark auf den mittleren spektralen Abstand aus. Dieskann jedoch für das Wiener Filter bedeuten, dass wichtige Teile der Spracheherausge�ltert werden. Aus diesem Grund muss das Ergebnis mit Sorgfaltbetrachtet werden.[3]

51

Page 61: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 5

Entwicklungsumgebung MATLAB

Die Entwicklungsumgebung MATLAB kann man als eine intergrierte Test-und Programmierumgebung bezeichnen. MATLAB ist primär für die Be-rechnung von Matrixen ausgelegt. Es ist sehr vielschichtig, da man einfachs-te Rechnungen durchführen oder aber komplizierte Programme entwickelnkann. Diese werden als M-Files bezeichnet. M-Files werden mit einer Syntaxgeschrieben, die man als eine Vereinfachung der C-Syntax ansehen kann. DerVorteil dieser Entwicklungsumgebung liegt in der unkomplizierten Visuali-sierung und Auswertung verschiedenster Daten. Auch vielseitige Bibliotheks-Funktionen stehen dem Anwender zur Verfügung, unter anderem auch Funk-tionen der digitalen Signalverarbeitung. Der Nachteil dieser Umgebung liegtallerdings in der Rechenzeit, die sich bei gröÿeren Datenmengen bemerkbarmacht. Deswegen macht es Sinn, Konzepte für Algorithmen der digitalen Si-gnalverarbeitung dort zu entwerfen und zu ver�zieren, um sie später in dergewünschten Umgebung zu implementieren.

5.1 Implementierung der vorgstellten Algorith-

men

In diesem Unterpunkt wird die Programmierung der verschiedenen Algorith-men in MATLAB erläutert. Jedoch waren die Verfahren TDE und MSOPMschon als M-File vorhanden, sodass keine Neuimplementierung notwendigwar. Für jedes Verfahren wurde ein separates M-File erstellt. Diese M-Filesenthalten nur den Schätz-Algorithmus, d.h. Wichtung, Transformation usw.wurde durch die Versuchsumgebung realisiert (siehe Unterpunkt 5.2). Aus

52

Page 62: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

der Sicht eines Störunterdrückunssystem, wird dem Schätz-Algorithmus fürjeden Programmdurchlauf nur ein Spektrum (d.h. 1 Fenster) und die für dieSchätzung notwendigen Parameter übergeben. Alle verwendeten Algorith-men sind auf der beiliegenden CD im Anhang zu�nden.

5.1.1 Mean of �rst frames

Dieser Algorithmus zeichnet sich durch seine Übersichtlichkeit aus. Der Namedes M-�le lautet �est_noise_f10f.m�. Nachfolgend ist der Programmablaufdargestellt.

53

Page 63: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

Start

Input:-count -> Integer-> Nummer des Fensters-spec -> 1D Array of double -> aktuelles Spektrum-nest2.noise -> Struktur -> 1D Array of double -> geschätztes Störspektrum

Output:-nest2

Lokale Variable:-i ->Integer ->Index für Mittelwertsberech .

Count==1?

ja

nein

Reserviere Speichernest2.noise=zeros(1,length(spec))

nein

ja

i=count

nest2.noise(k)=Mittelwert aller bisherigen Spektren

Ende

Output

Input

Count<=10?

Abbildung 5.1: Programmablauf est_noise_f10f.m

Das Besondere dieses Algorithmus ist die Berechnung des Mittelwertes, sie

54

Page 64: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

ist sehr rechene�zient (siehe Gleichung 5.1).( k=Index für die Frequenzsbän-dern, i= Nummer des aktuellen Fensters).

nest2.noise(k) =i− 1

i· nest2.noise(k) +

1

i· spec(k) (5.1)

5.1.2 Smooting Noise

Das M-File dieses Algorithmus lautet �est_noise_sm.m�. Die Implementie-rung wurde nach dem folgendem Programmablauf vollzogen.

Input:-count -> Integer-> Nummer des Fensters-spec -> 1D Array of double -> aktuelles Spektrum-nest3.noise -> Struktur -> 1D Array of double -> geschätztes Störspektrum

Output:-nest3

Lokale Variable:-k ->Integer ->Index für For - Schleife

Konstanten :-Alpha=0.9 >double ->Smooting Parameter

55

Page 65: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

Start

Count==1?

ja

nein

nest3.noise = 0.9 * spec

(spec(k) > 3*nest3.noise(k)) ||

(spec(k) < .33* nest3.noise(k))?

nein

ja

nest3.noise(k) = (1 - ALPHA) * spec(k) + ALPHA * nest3.noise(k)

Ende

Output

Input

Abbildung 5.2: Programmablauf est_noise_sm.m

5.1.3 TDE und MSOPM

Diese Verfahren wurden mir als M-Files zur Verfügung gestellt, deswegenwurde kein Programmablaufplan für diese Algorithmen erstellt. (Schemati-scher Ablauf siehe Abbildung 3.10 und 3.8)

5.1.4 Expectation-Maximization

Die Implementierung dieses Verfahren wurde in demM-File �est_noise_em.m�realisiert.

56

Page 66: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

Input: -spec, Spektrum -count, Nummer des Fenster-Struktur: nest4 nest4.noise, geschätztes Rauschspektrum nest4.buff_smspec, Buffer der eingehenden Spektren .. nest4.ALPHA, Smoothing Parameter nest4.BETA, Faktor zu Berechnung des Thresholdes nest4.prob , buffer , Buffer der berechneten Wahrscheinlichkeiten nest4.wichm, Vektor mit den Wichtungsfaktoren nest4.vec_ind, aktueller Index des Buffers nest4.spcount, gezählte Sprache

Output: -nest4

Lokale Variablen:-len, 1d Array größen des Arrays-nbands , Anzahl der Frequenzbänder-vd, Anzahl der detektierten Sprachbänder-n, 1d Array , Exponenten für die Wichtugsfunktion-m, 1d Array, Mittelwerte jedes Bandes-var, 1d Array , Varianz jedes Bandes-si, 1d Array , Sigma jedes Bandes-sum1, 2d Array , sum1=nest4.prob * nest4.wichm -sub, 2d Array , sub=nest4.buff_smspec-m-quad , 2d Array , quad=subᄇ

Konstanten:-nv, Anzahl der Bänder -maxf, Größe des Buffers

57

Page 67: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

Start

Count==1?

ja

nein

nest4.noise(k) = 0.9 * spec(k)

Ende

Input

Speicher reservieren

Erstelle „nest4.wichm“

nest4.buff_smspec(0,k)=spec(k)

ja

nein

nest4.buff_smspec(0,k)=spec(k)

glätten des Spektrum -> spe(k)

Count==10?

ja

nein

Berechnung vonm

varnest4.prob

ja

nein

nest4.buff_smspec(0,k)=spec(k)

m=nest4.noise(k)=nest4.prob *nest4.buff_smspec*

nest4.wichm

Berechnung vongewichteter var und si

Berechnung vonnest4.prob

Output

Count<1?

Sprache?

Abbildung 5.3: Programmablauf est_noise_em.m

Die Realisierung des �Spek_Bu�er� wurde wie in folgender Abbildungdargestellt. Alle Einträge des Bu�ers werden um einen Index verschoben

58

Page 68: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

(Spek(0,k)-> Spek(1,k)) und das aktuelle Spektrum übergeben durch dieHauptroutine, wird unter dem Index n=0 abgelegt.

n=Nmax-1

k=FFT_Länge/2

Frequenzindex k

Zeitindexindex n

Abbildung 5.4: Realisierung des Bu�ers

5.2 Versuchsaufbau

Um die genannten Algorithmen auszuwerten, musste ein Versuchsaufbau inMATLAB realisiert werden, an den verschiedene Anfordungen gestellt wur-den. Zu Beginn muss das Signal in der Frequnezbereich und mittels der pe-riodischen Faltung (überlappende Analyse) transformiert werden. Die zweiteAnforderung ist die Addition des reinem Störsignals mit dem klarem Sprach-signal. Um eine Aussage mit einer gewissen statistischen Wertigkeit zu tref-fen, müssen mehrere Sprachsignale mit verschiedenen Störumgebungen undunterschiedlichen Störpegeln beaufschlagt werden. Des Weiteren sollte dieOptimierung des EM-Algorithmus möglich sein. Zum Schluss wird der opti-mierte Algorithmus unter verschiedenen Bedingungen quantitativ über dem

59

Page 69: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

spektralen Abstand mit den anderen Verfahren verglichen.

5.2.1 Addition beider Signale

Die verfügbaren Sprach- und Störsignale wurden aus der Sprachdatenbankdes DNT-Labors genutzt. Bei den Störsignalen wurde eine Auswahl von 4verschiedenen Umgebungen gewählt, Auto.raw, Büro.raw, Flughafen.raw undZug.raw. Diese Störumgebungen bieten verschiedene Schwierigkeitsstufen fürdie verwendeten Algorithmen. Bei den Sprachsignalen wurde eine Liste von35 Sprach�les gewählt, bei denen darauf geachtet wurde, dass sie keine Stör-geräusche enthalten und dass die Sprache erst nach einem kurzen zeitlichenVersatz beginnt. Die Addition sollte nicht nur die beiden Signale mit einan-der addieren. Durch den Eingabeparameter -SNR- muss das Misschsignal dasgeforderte Verhältnis besitzen. Um den Verfahren Eigenschaften bei diesenSNR`s zu zuweisen. Die verfügbaren Störumgebungen sind allerdings sehr viellänger als die Sprachsignale. Dies hat den Vorteil, dass man das Teilstück desStörsignals, für jeden Versuchsdurchlauf, mittels einer Zufallsfunktion wäh-len kann. Damit wird sichergestellt, dass bei jedem Testdurchlauf ein anderesSegment des Störsignals mit allen Sprach�les additiv überlagert wird. Eineweitere Forderung für diese Routine war das Wählen eines steigenden oderfallendes SNR, damit sollte der Anstieg oder Verringerung des Störpegelssimuliert werden. Daraus ergab sich folgender Programmablauf für �addnoi-se.m�:

60

Page 70: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

Input: -speech, klare Sprache-noise-snr, kann ein Skalar sein für konstantes SNR oder ein Vektor [ Anfangswert für SNR Steigung des SNR/s ]

Output: -y, gestörtes Sprachsignal-rd_noise, addiertes Störsignal

Variablen: -sl1, Leistung des Sprachsignals-sl2, Leistung des -snorm, normiertes Sprachsignal-nnorm , normiertes Störsignal-v, Faktor um gewünschtes SNR zu erhalten , kann aber auch ein Vektor sein-snr_end, Endwert des SNR bei der gewählten Steigung

Funktionen:-svp56_level, function to the compute power of signal (itu)

61

Page 71: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

Start

Start

Files empty?

ja

nein

Meldung an User

rd_noise=Teilsegment aus Noisefile

Snorm = speech/max(speech);nnorm = rd_noise/max(rd_noise);

sl1 = svp56_level(snorm);sl2 = svp56_level(nnorm);

Konstantes SNR?

ja

nein

v = 10^((sl1-snr)-nl2)/20);

y = (snorm+v*nnorm )*max(speech);rd_noise = v*nnorm *max(speech);

Bestimme snr_end

Bestimme v-Vektor

Input

Output

Abbildung 5.5: Programmablauf addnoise.m

Da das Störsignal nur angepasst werden soll, ergibt sich für den Faktorv folgende Gleichung (SNRgef=gefordertes SNR; SNRvorvorhandenes SNR;

62

Page 72: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

sl1=berchente Leistung des Signal in dBm; sn2=berechnete Leistung desStörsignals in dBm)

SNRgef = SNRvor − v|dB → 10 ∗ log10(v) = (sl1− nl2)− SNRgef

v = 10sl1−nl2−SNRgef

10

Für die Berechnung eines steigenden oder fallenden SNR`s, wird für das ge-forderte SNR der Vektor mit den SNR-Werten in dieser Formel eingesetzt.Dieser Vektor ergibt sich durch eine gleichmäÿige Aufteilung der Werte zwi-schen dem Anfangswert und dem Endwert bei vorgegebener SNR-Steigung.Der Endwert berechnet sich folgendermaÿen.

SNREnd = SNRAnfang + (1

fa· SNRSteigung · (N − 1)) (5.2)

5.2.2 Spektraler Abstand

Die Berechnung des spektralen Abstand wird in demM-File �compute_error.m�realisiert. Diese Funtkion wurde ausgelagert, da sie an mehreren Stellen inden Versuchsumgebungen eingesetzt wird. Die Ermittlung des spektralen Ab-stand wird wie in Kapitel 4 durchgeführt.

5.2.3 Optimierung des Algorithmus

In diesem Unterabschnitt wird die Bestimmung der Parameter erläutert. Diefür die Analyse verwendeten Parameter entsprechen den typischen Werten,die in der Störschätzung verwendet werden (siehe Grundlagen). Diese werdenin den übrigen Versuchsreihen auch zu Grunde gelegt. Nach der Implemen-tierung der Schätz-Algorithmen wurde eine Versuchsumgebung entwickelt,mit der man sich die Schätzung der Frequenzbänder über der Zeit anschauenkonnte. Damit kann man ziemlich genau die Grenzen der Parameter abschät-zen.

63

Page 73: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

Datenbank Sprachsignale

DatenbankStörsignale

ys(n)

Yns(b,w)

yns(n)

yn(n)

Y`ns(b,w)Yns(b,w)

addnoise .m

yn(n)

Variation des Parameter β undWichtungsfunktion

Schätzung des Störspektrums

überlappende spektrale Analyse

Berechnung des Mittelwertes des

Spektralenabstand über alle Fenster

letztes Fenster?

Darstellung der Bänder über der Zeit

ja

nein

Abbildung 5.6: Versuchsaufbau für die Optimierung

In den nachfolgenden Darstellungen wurde die Funktion für die zeitlicheWichtung verändert. Es wurden für WF die Werte 0.9, 0.95 und 0.99 ge-wählt. Noch kleinere Werte für WF machen keinen Sinn, da die Wichtung

64

Page 74: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

der vergangegenen Werte sich nicht mehr auf die Schätzung auswirkt.

Wv(n) = WF n

0 50 100 150 200 250 300 350 4000

500

1000

1500Freqeunzband Nr.:6 mit Wichtungsfunktion mit WF=0.9

t/ms

0 50 100 150 200 250 300 350 4000

500

1000

1500Freqeunzband Nr.:6 mit Wichtungsfunktion mit WF=0.95

t/ms

Abbildung 5.7: Schätzung=rote Linie, gestörtes Signal=schwarze Linie

0 50 100 150 200 250 300 350 4000

500

1000

1500Freqeunzband Nr.:6 mit Wichtung mit WF=0.99

t/ms

Abbildung 5.8: Schätzung=rote Linie, gestörte Signal=schwarz

An den Gra�ken kann man erkennen, dass man mit einem Faktor von0.95 gute Ergebnisse erzielen kann. In der Gra�k mit WF=0.9 kann man

65

Page 75: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

gegen Ende des Bandes sehen, dass etwas zu viel geschätzt wurde, was beieiner Filterung zu einer Verringerung der Qualität der Sprache führen kann.Der Faktor ÿ spielt für die Routine eine wesentliche Rolle, denn dieser Fak-tor entscheidet, ob das eingehende Spektrum als Störung oder als Sprachedetektiert wird. Die Wahl des richtigen Faktors ÿ, der vom SNR und von derArt der Störumgebung abhängt, ist sehr schwierig. Um die Wahl etwas ein-zugrenzen wurden verschiedene Versuche durchgeführt. Es wurde eine TestRoutine geschrieben, die das ÿ für den minimalen spektralen Abstand angibt.Dies ist die Routine �anal_em_algo1.m�. Sie berechnet für ein SNR und ei-ne Störumgebung den minimalen spektralen Abstand für verschiedene Wertevon ÿ. Dieser Bereich liegt zwischen 1,3 bis 3 in 0,1 Schritten.

Start

ß=1.4 : 0.1 : 3i=0

i==Length (ß)?

Beta=ß[i]

Analyse aller Signale

Berechnung des mittleren spektralen Abstand über

aller Files

i=i+1 Auswertung

ja

nein

Abbildung 5.9: Ablauf Routine anal_em_algo1.m

66

Page 76: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

Aus dieser Versuchsreihe ergaben sich folgende optimale ÿ

StörumgebungSNR

Auto.raw Büro.raw Flughafen.raw

0dB 2.1 1.8 1.95dB 2.2 1.8 1.610dB 2.3 1.9 1.615dB 2.3 1.9 1.620dB 2.2 1.9 1.525dB 2 1.7 1.530dB 1.5 1.6 1.535dB 1.5 1.5 1.5

Tabelle 5.1: optimales Beta

Aus dieser Tabelle kann man erkennen, dass bei SNR=35dB die Wertegleich sind. Dies ist darauf zurückzuführen, dass die Störungumgebung fastkeinen Ein�uss mehr ausübt. Der interessante Bereich für Beta liegt zwischen0dB und 15dB. Dort liegt der Bereich der optimalen Beta zwischen 1.6 und2.3. Die Störumgebung Flughafen.raw ist eine nicht stationäre Umgebung,deswegen macht es Sinn diesen Bereich nicht so sehr zu berücksichtigen. ->ÿ=2.0.

5.2.4 Auswertung der verschiedenen Verfahren

Um die verschiedenen Verfahren auszuwerten, ist ein weiterer Versuchsauf-bau notwendig. In dieser Umgebung müssen alle Schätzverfahren mit dengleichen Signalen getestet werden. Des Weiteren muss die Möglickeit beste-hen, die Störumgebung und das gewünschte SNR über Eingabe Parameterzu wählen. Aus diesen Forderungen ist folgender Versuchsaufbau entstanden.Dieser wurde unter dem Namen �anal_est_noise.m� hinterlegt.

67

Page 77: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 5. ENTWICKLUNGSUMGEBUNG MATLAB

DatenbankSprachsignale

Störumgebung , Listfile, SNR, Zielordner

DatenbankStörsignale

addnoise .m

est_noise_mff.mCompute_error .m

ÜberlappendeAnalyse

Nur eine Störumgebung Nur ein

Sprachsignal

est_noise_sm.mCompute_error .m

est_noise_tde.mCompute_error .m

est_noise_msopm.mCompute_error .m

est_noise_msopm.mCompute_error .m

alle Fenster analysiert?

alle Files analysiert?

ja

ja

Auswertung

68

Page 78: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 6

Entwicklungsumgebung Linux mit

C

Um den entwickelten Algorithmus in der Praxis in einem Störunterdrückungs-system einzusetzten, muss eine Programmiersprache gewählt werden, die inder digitalen Nachrichtentechnik ihren Einsatz �ndet. Die meisten Anwen-dungen in der Störunterdrückung werden auf einem Mikrocontroller imple-mentiert, welche mittels C programmiert werden. Im Labor der digitalenNachrichtentechnik sind alle Arbeitsplätze mit einem Suse Betriebssystemauf Linux Basis ausgestattet. Da bietet es sich an, die entwickelten Schätz-Algorithmen mittels C zu implementieren. Das Betriebssystem bietet einegroÿe C-Libary, die bei der Implementierung sehr hilfreich ist. Auf dieser Li-nux Plattform wird auch ein sehr übersichtlicher Debugger zur Verfügung ge-stellt, der bei Programmierfehlern sehr nützlich ist. Des Weiteren ist die Pro-grammiersprache �C� Plattform unabhängig und kann auch durch Windows-Systemen implementiert werden. Der Vorteil von C gegenüber MATLABliegt ganz klar in der Ausführungsgeschwindigkeit, da die Umwandlung inden Objekt-Code e�zienter umgesetzt wird. Durch versierte Kenntnisse inder Mikrocontroller Programmierung lässt sich der entwickelte Algorithmusin einem Conroller zur �Online Anwendung� implementieren. Der Nachteildieser Umgebung liegt in der Auswertbarkeit von Algorithmen, die digitaleSignale verabeiten. Es ist nicht ohne weiteres möglich ähnliche Auswertungenwie in MATLAB durchzuführen. Deswegen macht es Sinn, die Algorithmenin MATLAB zu entwickeln und nach ausführlichen Tests in C zu implemen-tieren.

69

Page 79: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 6. ENTWICKLUNGSUMGEBUNG LINUX MIT C

6.1 Implementierung in ein Störunterdrückungs-

system

Der entwickelte Algorithmus soll als Funktion einer Störunterdrückungspro-cedur dienen. In diesem Algorithmus sind die 3 von mir selbst entwickeltenAlgorithmen enthalten und jeweils durch einen Parameter auswählbar, diesermuss beim Starten des Hauptprogramms eingegeben werden. Die VerfahrenTDE und MSOPM wurden nicht in C implementiert, da dies den Umfangder Diplomarbeit überschritten hätte. Nähere Informationen zum Hauptpro-gramm �ndet man in der Diplomarbeit �Entwicklung eines Verfahrens in Cund MATLAB zur Verbesserung gestörter Sprachsignale� von Herrn Minor.Alle Algorithmen verwenden die unter MATLAB eingesetzten Parameter.Um eine Funktion in ein Hauptprogramm einzubinden, müssen einige Ver-einbarungen getro�en werden. Ein Teil dieser Vereinbarungen sind die Ein-gabewerte und der Rückgabewert. Sie sind wie folgt de�niert.

Input:Name Datentyp Bemerkung

spec double *gestörtesSprachspektrum

est_noise double *geschätztesStörspektrum

count integerNummer des akt.Fensters

�t integer Länge des Spektrums

vec_ind integer *interner Zähler fürverwendeten Bu�er

prob double *berechnetenWahrscheinlichkeiten

est_bu� double *Bu�er für dieSpektren

type unsigned integerArt desSchätzverfahrens

Tabelle 6.1: Input des Programms est_noise_em.c

Die Funktion besteht aus einem c-File, einem h-File und den verwendetenUnterfunktionen. Diese sind in folgender Tabelle übersichtlich dargestellt.

70

Page 80: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 6. ENTWICKLUNGSUMGEBUNG LINUX MIT C

Output:

Name Datentyp Bemerkung

error integer OK->error=0leeres Datenfeld alsInput->error=-1

Tabelle 6.2: Output des Programms est_noise_em.c

Name: Input Output Bemerkungest_noise_em.c siehe Oben siehe Oben Funktion

est_noise_em.h XXXXXX XXXXXX

enthält alleIincludes, de�nesundUnterfunktionen

refresh_bu�er.c

*spec,*est_bu�,�t_length,*vec_ind

voiderneuert denBu�er wie inAbbildung 5.4

mean.c*est_bu�,*vec_ind;�t_length, *m

voidberechnet dieMittelwerte allerBänder (Spalten)

sig.c

*est_bu�,*vec_ind,�t_length, *m,*si

voidberechnet Sigmaaller Bänder(Spalten)

normpdf.c

*si, *bu�, *m,*vec_ind,�t_lenght,*prob, pi

void

berechnet dieWahrscheinlichkei-ten derAmplituden² jedesBandes (Spalten)

Tabelle 6.3: Bestandteile der Funktion est_noise_em.c

Der Programmablauf ist in den folgenden Struktogrammen aufgezeigt.Allerdings wurden aus Gründen der Übersichtlichkeit, nicht auf jede Bere-chung eingegangen. Die Berechnungen sind in dem Kapitel 3 genau erläutert.

71

Page 81: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 6. ENTWICKLUNGSUMGEBUNG LINUX MIT C

Zu Beginn des Programms werden die Variablen de�niert und für Datenfelderder Speicherplatz mit dem Befehl �calloc� reserviert. Durch den im Hauptpro-gramm eingegebenen Parameter �type� wird der entsprechende Algorithmusausgewählt. Als Default Fall ist der EM-Algorithmus de�niert.

est_noise_em.cInput:

double *spec, double *est-noise, int fft, int *vec_ind, double *prob, double *est_buff, int type

Output:

error

Lokale Variablen:

sum, vd, fft-length, *m, *si, *est_noise_buff, *sum_prob, *sub, *prob_var, *sum_var, *sum_prob_var,

*sum_est_noise_buff, *wmatrix, *sum_mult, *mult

Konstanten:

maxf, alpha, beta, nv, wf, pi

Initialisierung der Funktion

-Definition von Variablen

-Speicher Reservierung von Lokalen Variablen

-Variablen mit Default-Werte besetzten

type?

type==0 type==1 type>=2(default)

ausgelagerter Block:

Schätzung durch MFF

ausgelagerter Block:

Schätzung durch SN

ausgelagerter Block:

Schätzung durch EM

return error;

Abbildung 6.1: Programmablauf est_noise_em.c

72

Page 82: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 6. ENTWICKLUNGSUMGEBUNG LINUX MIT C

ausgelagerter Block: Schätzung durch MFF

sum=0;

for (i=0; i<fft_length: i++)

sum=sum+spec[i];

sum=0?ja nein

error=-1;

count>9?ja nein

nothing to do

int n;

i=count+1;

for (i=n; i<fft_length: n++)

est_noise[n]=(i-1)/i+est_noise[n]+1/i*spec[n]

return error;

Abbildung 6.2: Ausgelagerter Block Schätzung durch MFF

73

Page 83: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 6. ENTWICKLUNGSUMGEBUNG LINUX MIT C

ausgelagerter Block: Schätzung durch SN

double alpha_sm=0.9

sum=0;

for (i=0; i<fft_length: i++)

sum=sum+spec[i ];

sum=0?ja nein

error=-1;

count==0?ja nein

nothing to do

for (i=0; i<fft_length: i++)

est_noise[i]=0.9*spec[i]

for (i=0; i<fft_length: i++)

spec[i]>3*est_noise[i]

| |

spec[i]<0.33*est_noise[i]

ja nein

Smoothing jedes Bandes

est_noise[i]=(1-alpha_sm)*spec[i]+

alpha_sm*est_noise[i]

return error;

Abbildung 6.3: Ausgelagerter Block Schätzung durch SN

74

Page 84: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 6. ENTWICKLUNGSUMGEBUNG LINUX MIT C

ausgelagerter Block: Schätzung durch EM

sum=0;

for (i=0; i<fft_length: i++)

sum=sum+spec[i];

sum==0?ja nein

error=-1;

count==0?ja nein

nothing to do

f or (i=0; i<f f t_length: i++)

est_noise[i]=

0.9*spec[i]

Erstelle Wichtungsmatrix

wmatrix[j,i]=pow(wf ,i)

ref resh_buf f er(spec, est_buf f ,

f f t_length, v ec-ind)

count<10

?ja nein

Smoothing

des Spektrums

ref resh_buf f er(spec, est_buf f ,

f f t_length, v ec-ind)

mean(est_buf f , v ec_ind, m, si)

sig(est_buf f , v ec_ind, m, si)

normpdf (si,est_buf f ,v ec_ind,

f f t_length, prob, pi)

Sprache?ja nein

Erstelle Wichtungsmatrix

wmatrix[j,i]=pow(wf ,i)

ref resh_buf f er(spec, est_buf f ,

f f t_length, v ec-ind)

est_noise[i,j]=

prob[i,j]*wmatrix*est_buf f

m[j]=est_noise[i,j];

Berechne neues Sigmar

si[j]

normpdf (si,est_buf f ,v ec_ind,

f f t_length, prob, pi)

return error;

Abbildung 6.4: Ausgelagerter Block Schätzung durch EM

75

Page 85: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 7

Auswertung der Tests

Die Experimente in der Versuchsumgebung in MATLAB wurden mit 35 ver-schiedenen Sprachsignalen durchgeführt. Diese Daten sind von männlichensowie weiblichen Sprechern und variieren in ihrer Länge. Die ausgewähltenStörumgebungen sind Auto.raw, Büro.raw und Flughafen.raw. Um das Ver-halten bei verschiedene SNR`s zu beobachten, wurden diese mit unterschied-lichen Pegeln addiert (addnoise.m). Alle Testproceduren sind leichte Verän-derungen des Versuchsaufbaus (siehe Abbildung 5.6) in MATLAB.

7.1 Mittlere spektrale Abweichung bei verschie-

denen SNR

Bei diesem Versuch wurde die mittlere spektrale Abweichung über alle Sprach-�les bei verschiedenen SNRs und jeweils einer Störumgebung aufgenom-men. Die Werte des SNR strecken sich über einem Bereich von 0dB bis35dB. Der leicht veränderte Versuchsaufbau wurde unter dem Namen �ana-lyz_est_noise.m� gespeichert. Bei allen Testdurchläufen kann man davonausgehen, dass ein unterschiedliches Teilsegment aus dem Störsignal genom-men und dem Sprachsignal additiv überlagert wurde.

76

Page 86: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

0 5 10 15 20 25 30 35

0.35

0.4

0.45

0.5

0.55

0.6

0.65

0.7

0.75

0.8Darstellung des spektralen Abstandes bei der Stoerumgebung Auto.raw

SNR / dB

Mitt

elw

ert d

es s

pekr

tral

en A

bsta

nd

TDEMFFSNEMMSOPM

0 5 10 15 20 25 30 350.35

0.4

0.45

0.5

0.55

0.6

0.65

0.7

0.75Darstellung des spektralen Abstandes bei der Stoerumgebung Buero

SNR / dB

Mitt

elw

ert d

es s

pekr

tral

en A

bsta

nd

TDEMFFSNEMMSOPM

Abbildung 7.1: Vergleich der Verfahren-Auto.raw und Büro

77

Page 87: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

0 5 10 15 20 25 30 350.3

0.35

0.4

0.45

0.5

0.55

0.6

0.65

0.7

0.75

0.8Darstellung des spektralen Abstandes bei der Stoerumgebung Flughafen

SNR / dB

Mitt

elw

ert d

es s

pekr

tral

en A

bsta

nd

TDEMFFSNEMMSOPM

Abbildung 7.2: Vergleich der Verfahren-Flughafen.raw

Aus den 3 verschiedenen Diagrammen lässt sich entnehmen, dass der EM-Algorithmus in den 3 Störumgebungen sehr stabil ist und immer Fehler ineinem ähnlichen Bereich auf weist. Der MFF Algorithmus zeigt in den Um-gebungen, Büro.raw und Flughafen.raw, immer schlechtere Ergebnisse auf,da für ihn diese Störumgebungen nicht stationär genug sind. Bei der Um-gebung Auto.raw kann man erkennen, dass er ähnliche Werte wie der EMund TDE- Algorithmus aufzeigt. Vergleicht man den EM-Algorithmus mitden etablierten Algorithmen TDE und MSOPM, kann man eine deutlicheTendenz erkennen. Sein mittlerer spektraler Abstand weist nahezu gleicheWerte wie der TDE Algorithmus auf. Der MSOPM liegt bei jeder Störumge-bung immer deutlich höher als TDE und EM, aber weist ein sehr konstantesVerhalten auf. Der interessante Bereich um die Leistungsfähigkeit der Algo-rithmen zu beobachten liegt unter einem SNR von 15dB, da man ab dieserGrenze die Unterschiede in der Sprachqualität nicht mehr so deutlich Un-terscheiden kann. Es muss nochmal darauf hingewiesen werden, dass diesnur Mittelwerte sind. Um die Aussagen zu Veri�zieren, müsste man sich diespektralen Abstände für die einzelnen Files anschauen.

78

Page 88: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

7.2 Test bei SNR=0dB

Bei diesem Test werden die Algorithmen bei einem SNR von 0dB und ei-ner festen Störumgebung mit einander Verglichen. Diese wird mittels demVersuchsaufbau in MATLAB (siehe Abbildung 5.6) getestet.

0 5 10 15 20 25 30 350.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8TDE −>SNR=0

SD

0 10 20 300.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8MFF −>SNR=0

0 10 20 300

0.2

0.4

0.6

0.8

1

1.2

1.4SN −>SNR=0

0 10 20 300.1

0.2

0.3

0.4

0.5

0.6EM −>SNR=0

SD

0 10 20 300.2

0.4

0.6

0.8

1

1.2

1.4

1.6MSOPM−Alorithmus. −>SNR=0

TDE MFF SN EM MSOPM0

0.1

0.2

0.3

0.4

0.5

0.6

0.7Mittelwert aller Sprachsignale

Abbildung 7.3: Vergleich der spektralen Abstände bei SNR=0

Man kann deutlich die Unterschiede der einzelnen Sprach�les sehen unddass die Tendenzen aus dem ersten Test belegt werden können. Vergleichtman die einzelnen Files, kann man erkennen, dass der EM-Algorithmus fastimmer bessere Ergebnisse zeigt als MFF, SN und MSOPM. Alle Graphenbesitzen einen ähnlichen Verlauf. Dies bestätigt auch die Tendenzen aus dem1.Diagramm. Es hat sich gezeigt, dass die Ergebnisse sich mit allen 3 Stör-umgebungen und den verschiedenen SNR`s bestätigen lassen.

79

Page 89: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

7.3 Test bei steigendem Störpegel

Um die Reaktionsfähigkeit der Algorithmen zu vergleichen, wird bei die-sem Experiment ein sinkendes SNR gewählt. Die Steigung des SNR beträgt-5dB/s gewählt bei einem Beginn von 20dB. Als Störumgebung wurde Au-to.raw gewählt, da die anderen Störumgebungen für dieses Experiment zunicht stationär sind.

0 10 20 30

0.35

0.4

0.45

0.5

0.55

0.6

0.65

0.7TDE −>SNR=−5dB/s

SD

0 5 10 15 20 25 30 35

0.35

0.4

0.45

0.5

0.55

0.6

0.65

0.7MFF −>SNR=−5dB/s

0 10 20 300.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1SN −>SNR=−5dB/s

0 10 20 300.25

0.3

0.35

0.4

0.45

0.5

0.55

0.6

EM −>SNR=−5dB/s

SD

0 5 10 15 20 25 30 350.2

0.4

0.6

0.8

1

1.2

1.4

1.6MSOPM −>SNR−=−5dB/s

TDE MFF SN EM MSOPM0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8Mittelwert aller Sprachsignale

Abbildung 7.4: Vergleich der spektralen Abstände bei SNR=-5dB/s

Man erkennt einen erheblichen Anstieg des spektralen Abstandes. Aller-dings erkennt man an diesem Diagramm die Vorteile des EM-Algorithmus,da er besser mit der zeitlichen Änderung des SNR`s zurechtkommt.

7.4 Test mit sinkendem Störpegel

Die Steigung des SNR beträgt 5dB/s bei einem Beginn von 0dB.

80

Page 90: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

0 5 10 15 20 25 30 350.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8TDE −>SNR=5dB/s

SD

0 5 10 15 20 25 30 350.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8MFF −>SNR=5dB/s

0 10 20 300

0.2

0.4

0.6

0.8

1SN −>SNR=5dB/s

0 5 10 15 20 25 30 350.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8EM −>SNR=5dB/s

SD

0 5 10 15 20 25 30 350.2

0.4

0.6

0.8

1

1.2MSOPM −>SNR=5dB/s

TDE MFF SN EM MSOPM0

0.1

0.2

0.3

0.4

0.5

0.6

0.7Mittelwert aller Sprachsignale

Abbildung 7.5: Vergleich der spektralen Abstände bei SNR=5dB/s

Man sieht hier ein ähnliches Ergebnis wie bei dem Test mit einem kon-stantem Störpegel.

7.5 Funktionstest in C

Um die Funktionalität der Schätzalgorithmen zu testen, wurde ein Sprach�-le mit einer Störumgebung (Auto.raw) mit 3 verschiedenen Pegeln getestet.Dieses Ergebnis wird in den nachfolgenden Diagrammen erläutert. In denDiagrammen sind die verschiedenen Frequenzen über die gesamte Signaldau-er dargestellt. Die Stärke der Amplituden wird über die Farbe signalisiert.Die Farbskala ist in dB de�niert. In dem 1. Testfall (konstantes SNR=3dB),kann man gut erkennen, dass beim EM-Algorithmus und SN-Algorithmusein besseres Ergebnis erzielt als beim MFF. Dies ist darauf zurückzuführen,dass das Störsignal sich in seiner Art leicht ändert, obwohl das SNR konstantbleibt. Beim Vergleich des EM-Algorithmus mit SN kann man nur geringfü-gige Vorteile des EM-Algorithmus sehen.

81

Page 91: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

klares Sprachsignal

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000

gestoertes Sprachsignal mit Auto.raw und SNR=3dB

t/s

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

500

1000

1500

2000

2500

3000

3500

4000−20

0

20

40

60

80

−20

0

20

40

60

80

Abbildung 7.6: Vergleich klares und gestörtes Signal, SNR=3dB

82

Page 92: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

EM−Algorithmus

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000

SN−Algorithmus

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000

MFF−Algorithmus

t/s

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000 −50

0

50

−20

0

20

40

60

80

−20

0

20

40

60

80

Abbildung 7.7: Vergleich der Schätzalgorithmen EM,SN,MFF

Beim 2. Funktionstest wurde die gleiche Störumgebung gewählt, aller-dings steigt hier das SNR von 0db mit 3dB/s an. Bei dem Test kann manganz klar die Vorteile des EM-Algorithmus erkennen. In der ersten Sekundeist der Störanteil wesentlich geringer als bei den anderen Verfahren. Zu Be-ginn ist wieder das klare und das gestörte Signal dargestellt, in der nächstenAbbildung sind die 3 Verfahren abgebildet.

83

Page 93: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

klares Sprachsignal

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000

gestoertes Sprachsignal mit steigendem SNR +3dB/s

t/s

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000 −20

0

20

40

60

80

−20

0

20

40

60

80

Abbildung 7.8: Vergleich klares und gestörtes Signal mit SNR= +3db/s

EM−Algorithmus

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

2000

4000

SN−Algorithmus

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

2000

4000

MFF−Algorithmus

t/s

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

2000

4000

−20

0

20

40

60

80

−20

0

20

40

60

80

−20

0

20

40

60

80

Abbildung 7.9: Vergleich der Schätzalgorithmen EM,SN,MFF

Im letzten Test wurde das klare Signal mit der Störumgebung Auto.rawversehen, die einen steigenden Pegel aufweist. Das SNR sinkt von 20dB miteiner Steigung von -5dB. In dieser Darstellung ist zu sehen, dass der EM-Algorithmus für dieses Signal mit der Störumgebung schlechtere Ergebnisse

84

Page 94: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

liefert als der SN Algorithmus. Dies ist auf die starke Änderung zurückzu-führen, da beim EM Algorithmus eine zeitliche Wichtung durch die Wich-tungsfunktion vorgenommen wird und die vergangenen Werte noch zu starkgewichtet werden. Man muss an dieser Stelle betonen, dass dieses Ergebnis,die Berechnung des spektralen Abstands bestätigt. In Kapitel 5.2.4 und Ab-bildung 7.4 ist zu sehen, dass der SN-Algorithmus für das 1. Sprachsignaleinen minimaleren spektralen Abstand aufweist als der EM-Algorithmus.

klares Sprachsignal

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

500

1000

1500

2000

2500

3000

3500

4000

gestoertes Sprachsignal

t/s

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

500

1000

1500

2000

2500

3000

3500

4000 −20

0

20

40

60

80

−20

0

20

40

60

80

Abbildung 7.10: Vergleich klares und gestörtes Signal mit SNR= -5db/s

85

Page 95: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 7. AUSWERTUNG DER TESTS

EM−Algorithmus

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000

SN−Algorithmus

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000

MFF−Algorithmus

t/s

f/Hz

0 0.5 1 1.5 2 2.5 3 3.5

0

1000

2000

3000

4000

−20

0

20

40

60

80

−20

0

20

40

60

80

−20

0

20

40

60

80

Abbildung 7.11: Vergleich der Schätzalgorithmen EM,SN,MFF

86

Page 96: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 8

Re�exion

Im folgendem Kapitel, soll noch einmal ein Überblick über die entwickeltenAlgorithmen, zur Schätzung von Spektren gestörter Sprachsignale verscha�twerden. Weiterhin wird die Leistungsfähigkeit der Prozeduren beurteilt. Ab-schlieÿend wird ein Ausblick auf mögliche Weiterentwicklungen und Einsatz-gebiete gegeben.

8.1 Zusammenfassung

In den vorherigen Kapiteln wurden die Eigenschaften der entwickelten undden zur Verfügung gestellten Algorithmen erläutert, sowie die Parameter-Anpassung des entwickelten EM-Algorithmus. Es hat sich als Vorteil erwie-sen, die Entwicklung des EM-Algorithmus mit MATLAB zu realisieren, daman schon kleine Entwicklungsschritte durch die unkomplizierte Visualisie-rung veri�zieren konnte. Damit man in dem Störunterdrückungssystem Refe-renzen besitzt, wurden der MFF- und SN-Algorithmus zusätzlich implemen-tiert. Somit konnte man auch diese Schätzalgorithmen in einem praxisnahenStörunterdrückungssystem vergleichen.

8.2 Leistungsbewertung

Die dargestellten Ergebnisse durch MATLAB zeigen die Eigenschaften dereinzelnen Algorithmen auf. Diese sollte man immer mit einer gewissen Vor-sicht betrachten, da der mittlere spektrale Abstand keine Aussage darüber

87

Page 97: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 8. REFLEXION

tri�t, wie das geschätzte Spektrum die Qualität des ge�lterten Signals beein-�usst. Man sollte noch beachten, dass bei jedem Testdurchlauf ein anderesSegment aus dem Störsignal dem Sprachsignal additiv überlagert wurde. DesWeiteren wurde durch alle Versuche bestätigt, dass der EM-Algorithmus fastimmer ein besseres Ergebnis liefert als MFF, SN und MSOPM. Teilweise wur-den auch bessere Werte gegenüber dem TDE-Algorithmus erzielt. Dies lässtauf ein groÿes Potential schlieÿen. An dieser Stelle sei noch zu erwähnen, dassder EM-Algorithmus wesentlich übersichtlicher strukturiert ist als der TDEAlgorithmus. Es war zu erwarten, dass der SN und der MFF-Algorithmus inder Summe schlechtere Ergebnisse erzielen, als die anderen Prozeduren, da siedurch ihre Übersichtlichkeit doch sehr eingeschränkte Fähigkeiten besitzen.Das bessere Ergebnis des SN-Algorithmus bei dem 1. Sprachsignal von Abbil-dung 7.4 gegenüber dem EM-Algorithmus kann man als zufällig bezeichnen.Das heiÿt speziell für diesen Fall mit dieser Störumgebung weist die SN Pro-zedur ein besseres Ergebnis auf. Der MSOPM Algorithmus ist doch sehr starkvon der Anzahl der zurückliegenden Werte abhängig. In den Auswertungender Unterabschnitte 7.2, 7.3 und 7.4 ist zu sehen, dass der Algorithmus beiden ersten 5 Sprachsignalen ähnlich gute Ergebnisse erzielt, wie der TDE-und EM-Algorithmus. Dies ist darauf zurückzuführen, dass dies sehr langeSprach�les gegenüber dem Rest der Signale sind. Der MSOPM benötigt einelange Zeit, um sich auf die Störumgebung zu adaptieren. Genau dort liegendie Vorteile des TDE und EM-Algorithmus. Beim TDE wird diese Adaptionmittels der Anpassung des Thresholdes sichergestellt. Die EM-Prozedur rea-lisiert dies unter anderem durch die zeitliche Wichtung der Frequenzbänder.Allerdings kann man die Tendenzen der Ergebnisse durch die Darstellung desSpektrums über der Zeit in Kapitel 7.5 veri�zieren. Abschlieÿend kann mandie Entwicklung eines Schätz-Algorithmus mittels EM-Verfahren als gelungenbezeichnen.

8.3 Ausblick

Der EM-Algorithmus hat sich bei allen Experimenten als sehr robust erwie-sen und auch teilweise bessere Ergebnisse als die etablierten Verfahren, TDEund MSOPM, erzielt. Sicherlich gibt es noch Möglichkeiten die Perfomancedes entwickelten Algorithmus zu steigern, wie die Optimierung der zeitlichenWichtungsfunktion oder mehrere Iterationschritte des EM Algorithmus ineinem Fenster. In Bezug auf einen praktischen Einsatz liefert diese Proze-

88

Page 98: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

KAPITEL 8. REFLEXION

dur gute Ergebnisse. Dieses Verfahren kann in der Praxis bei den gleichenApplikationen wie der TDE oder MSOPM eingesetzt werden.

89

Page 99: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Kapitel 9

Anhang

Im Anhang ist eine CD-Rom beigefügt, die in Schriftform vorliegende Di-plomarbeit, die Abbildungen und die entwickelten Programme enthält. DieOrdnerstruktur ist folgendemaÿen aufgebaut, MATLAB, C und Diplomar-beit. In dem Ordner MATLAB be�nden sich alle M-Files und die Auswertun-gen dieser. Der Ordner C enthält alle C-Files sowie die ausführbare Versiondes Störunterdrückungssystems. In �Diplomarbeit� be�nden sich die Abbil-dungen sowie die Diplomarbeit als PDF und Lyx Version.

90

Page 100: Entwicklung eines Verfahrens in MATLAB und C zur Schätzung ...dnt.kr.hs-niederrhein.de/download/diplom_wetschko_08_09.pdf · Entwicklung eines erfahrensV in MATLAB und C zur Schätzung

Literaturverzeichnis

[1] Prof. Dr.-lng.Hirsch. Digitale Nachrichtentechnik. Hochschule Nieder-rhein, 1 edition, 2008.

[2] Hirsch; Ehrlicher. Noise estimation techniques for robust speech reco-gnition. page 153 bis 156, 1995.

[3] Benestry; Sondhi; Huang. Speech Processing, volume 2. 2008.

[4] Meyer; Simmer; Kammeyer. Comparsion of one- and two channel noiseestimation techniques. page 17 bis 20, 1997.

[5] P�ster; Kaufmann. Sprachverarbeitung. Springer, 1 edition, 2008.

[6] Kitzig. Entwicklung eines Trainingsverfahren unter Matlab zur sprecher-abhaengigen Spracherkennung in gestoerter Umgebung. Kitzig, 1 edition,2007.

[7] Kolossa. Einfuehrung in die automatische Spracherkennung. Vorlesungs-skript TU Berlin, 2007.

[8] Martin. Noise power spectral density estimation based on optimal smoo-thing and minimum stattistics. IEE Transactions on Speech and AudioProcessing, 9(5):504 bis 512, 2001.

[9] Varay; Martin. Digital Speech Transmission. Wiley, 1 edition, 2005.

[10] Allen; Rabiner. A uni�ed approach to short-time fourier analysis andsynthesis. Proceedings of the IEEE, 65(11), 1977.

[11] Vaseghi. Advanced Digital Signal Processing and Noise Reduction. Wi-ley, 2006.

A


Recommended