Beschreibung
Verfahren zum Codieren eines analogen Signals
Die Erfindung betrifft ein Verfahren zum Codieren eines analogen Signals , mittels einer Analyse durch Syntheseverfahren .
Derzeit wird eine Erweiterung der Bandbreite bei akustischen Signalen, z . B . eine Erweiterung von 4 kHz Telefoniebandbreite auf 8 kHz Breitbandtelefonie, vielfach diskutiert, da damit eine deutliche Verbesserung der Qualität des Sprachsignals einhergeht .
Allerdings ist, insbesondere bei mobiler Kommunikation, bei der zumindest ein Teil der Übertragung über eine Funkstrecke erfolgt, die Bandbreite eine begrenzte Ressource . D . h . , dass die vorgegebene, begrenzte Bandbreite auf eine Vielzahl von Benutzern verteilt werden muss . Wird nun für einen Benutzer die Bandbreite erhöht, so muss , bei einer gleich bleibenden Anzahl von Benutzern, zwangsläufig eine Reduktion der für die übrigen Benutzer zur Verfügung stehenden Bandbreite erfolgen .
Es werden daher verschiedene Verfahren angewandt, um aus dem Anregungssignal im Schmalband, d. h . z . B . mit einer 4 kHz Bandbreite im Bereich von 0 bis 4kHz , ein Signal höherer
Bandbreite, beispielsweise 8 kHz Bandbreite von 0 bis 8kHz , zu konstruieren .
Dies erfolgt beispielsweise durch ein Quadrieren des schmal- bandigen Signals im Zeitbereich und ein Erzeugen des fehlenden Bandes durch Spiegeln oder Verschieben des Schmalbandes im Frequenzbereich . Für das Beispiel der 4 kHz Bandbreite und einer gewünschten Bandbreite von 8 kHz bedeutet dies , dass
das Spektrum von 0 bis 4 kHz an beispielsweise 4 kHz bespiegelt wird und so das Spektrum von 4 bis 8 kHz erzeugt wird. Alternativ ist ein Verschieben um 4 kHz möglich . Mittels dieser Verfahren lässt sich nun aus einem Schmalbandsignal ein Breitbandsignal konstruieren, allerdings ergibt sich als Nachteil, dass diese Verfahren entweder das Spektrum des schmalbandigen Anregungssignals verzerren oder auch Datenfehler im Spektrum verursachen .
Ausgehend von diesem Stand der Technik ergibt sich als Aufgabe der vorliegenden Erfindung, eine Möglichkeit zu schaffen, ein qualitativ im Vergleich zum Stand der Technik hochwertiges Signal bei gleichzeitig geringer erforderlicher Übertragungsbandbreite zu kreieren .
Diese Aufgabe wird durch die unabhängigen Ansprüche gelöst . Vorteilhafte Weiterbildungen sind Gegenstand der abhängigen Ansprüche .
Ein analoges Signal wird zur Codierung in Zeitrahmen zerlegt und ein synthetisch hergestelltes Signal wird zeitrahmenweise an das analoge Signal angeglichen . Das synthetische Signal wird als Ausgangssignal eines Synthesefilters generiert, welcher durch ein Anregungssignal als Eingangssignal angeregt wird.
Zur Bildung des Anregungssignals wird zumindest ein adaptives Codebuch verwendet, in dem das Anregungssignal für frühere Zeitrahmen vorliegt . Das frühere Anregungssignal wird hierbei als eine Vielzahl von Abtastwerten dargestellt .
Zur Darstellung des aktuellen Anregungssignals wird ein der Länge des aktuellen Zeitrahmens entsprechendes Segment aus
der Vielzahl der im adaptiven Codebuch vorliegenden Abtastwerte ausgewählt . Die Auswahl wird mittels eines von einer Sprachgrundfrequenz abhängigen Referenzparameters vorgenommen, welcher auch nichtganzzahlige Werte annehmen kann, d. h . auf zwischen den tatsächlich vorliegenden Abtastwerten liegende Plätze für Zwischenwerte verweist .
Falls nun der Sprachgrundfrequenzparameter einen nichtganz- zahligen Wert annimmt, werden entsprechende Zwischenwerte zu den Abtastwerten in dem ausgewählten Segment gewählt . Wie bereits dargelegt entspricht das Segment in seiner Länge dem aktuellen Zeitrahmen und seine Lage im adaptiven Codebuch wird durch den Sprachgrundfrequenzparameter festgelegt .
Diese Bildung von Zwischenwerten erfolgt beispielsweise durch Interpolation . Eine Interpolation kann insbesondere mit einer (sin x) /x Funktion erfolgen .
Kern der Erfindung ist es nun, dass die Gesamtheit von Ab- tastwerten und Interpolationswerten zum Bilden des Anregungssignals verwendet wird.
Dies hat den Vorteil, dass eine effektive höhere Bandbreite erzielt wird, welche sich aus der effektiv höheren Abtastrate für die Abtastwerte und Zwischenwerte ergibt . Dadurch lässt sich die Qualität eines auf Empfängerseite reproduzierten, synthetischen Signals , welches dem tatsächlichen analogen Signal möglichst gut entspricht, deutlich verbessert wird. Diese Verbesserung geschieht ohne eine Erhöhung des Bedarfs an Übertragungsbandbreite, da diesselben Codierparameter wie bei einer Schmalbandlösung übertragen werden .
Die Verbesserung wird dadurch erzielt, dass bereits erzeugte Zwischenwerte im Codebuch -insbesondere auf Sender und Empfängerseite beibehalten und zur Erzeugung des Anregungssignals verwendet werden . Dies steht im Gegensatz zu bisherigen Lösungen, bei denen zwar ein nicht-ganzzahliger Sprachgrundfrequenzparameter vorgesehen war, der zwar die Lage des Segments im adaptiven Codebuch festlegte, j edoch wurde der Abstand zwischen den für die Erzeugung des Anregungssignals verwendeten Zwischenwerten nicht verringert .
Mit anderen Worten, wenn beispielsweise der Sprachgrundfrequenzparameter den Beginn des ausgewählten Segments festlegt und auf den Wert 5 1/3 verweist, so werden die entsprechenden Zwischenwerte 5 1/3, 6 1/3, 7 1/3 etc gebildet und nur diese zur Erzeugung des Anregungssignals benutzt und im adaptiven Codebuch beibehalten . Gemäß der Erfindung aber würden die Werte 5 1/3, 5 2/3, 6, 6 1/3, 6 2/3 etc verwendet, was ohne zusätzliche Übertragung von Information vorgenommen werden kann . Somit wird bei einer effizienten Ausnutzung der Über- tragungskapazität eine Qualitätsverbesserung erzeugt .
Insbesondere lässt sich der Sprachgrundfrequenzparameter als Bruchteil einer ganzen Zahl N darstellen . Dann ergibt sich eine Reduktion des zeitlichen Abstandes um l/N . Wird bei- spielsweise N=2 oder 3 gewählt, was einer Verdopplung bzw .
Verdreifachung der Bandbreite des zu darstellenden Anregungssignals entspricht, reduziert sich der Abstand zwischen einem Abtastwert und einem Zwischenwert auf H bzw . 1/3. Ebenso ist im Fall N größer oder gleich 3 der Abstand zwischen zwei Zwi- schenwerten auf denselben Wert reduziert .
Weiterhin lässt sich das Anregungssignal auch insbesondere mittels eines fixen Codebuches erzeugen . Beispielsweise liegen in einem fixen Codebuch feste Anregungssignale vor .
Gemäß einer vorteilhaften Ausgestaltung ist es vorgesehen, das fixe Codebuch in seiner ursprünglich vorgegebenen Bandbreite bzw . den ursprünglichen Abtastwerten beizubehalten und eine höhere Bandbreite nur mit dem adaptiven Codebuch zu erzielen . Dies hat den Vorteil einer besonders einfachen Umset- zung .
Um auch beim fixen Codebuch zwischen den ursprünglich vorliegenden festen Anregungssignalen Zwischenwerte zu schaffen kann eine Verschiebung eines fixen Codebucheintrags unter Beibehaltung der Zeitabstände zwischen den Signalkomponenten erfolgen . Weist beispielsweise ein fixer Codebucheintrag der Länge 4 eine Signalkomponente bei den Zeitpunkten 1 und 3 auf, und keine bzw . einen Nullwert der Signalkomponente bei den Zeitpunkte 0 , 2 und 4 , dann würde eine Verschiebung auf die Zeitpunkte 1/3 bis 4 1/3 erfolgen .
Alternativ kann es vorgesehen sein auch beim fixen Codebuch Zwischenwerte durch Interpolation zu bestimmen .
Zusätzlich oder alternativ zum fixen Codebuch kann ein weißes , d. h . im wesentlichen frequenzunabhängiges Rauschsignal zum Erzeugen des Anregungssignals herangezogen werden . Damit kann beipielsweise das fixe Codebuch eingespart werden . Es hat sich gezeigt, dass damit insbesondere bei Sprachsignalen eine sehr zufriedenstellende Qualität des auf Empfängerseite erzeugten Signals gewährleistet werden kann .
Das Rauschsignal wird aus der Umgebung aufgenommen oder mittels eines Rauschgenerators erzeugt .
Um beispielsweise ein Überbetonen der harmonischen Struktur in dem so erweiterten Frequenzbereich, also beispielsweise dem Frequenzbereich zwischen 4 und 8 Khz im Falle eines Schmalbandsignals mit 4kHz Bandbreite zu vermeiden, kann ein Filtern des gebildeten Anregungssignals vorgesehen sein, insbesondere bevor es als Eingangssignal für den Synthesefilter verwendet wird. Es kann hierbei beispielsweise eine Wiener- FIR (finite impulse response) Filterung vorgenommen werden .
Die vorgeschlagenen Verfahren können in einem Kommunikationsendgerät mit einer Codiereinheit, wie beispielsweise einem Mobiltelefon, einem PDA (personal digital assistant) , einem Computer oder einem Festnetztelefon etc . stattfinden .
Ein entsprechender Empfänger, beispielsweise Übergangselemente zwischen verschiedenen Kommunikationssystemen, eine TRAU (transmission and rate adaption unit) weist eine entsprechende Decodierungseinheit auf .
Ein geeignetes Kommunikationssystem weist zumindest ein Kommunikationsendgerät und einen Empfänger auf .
Weitere Vorteile werden anhand beispielhafter Ausgestaltungen dargelegt, welche teilweise auch in den Figuren gezeigt sind. Von diesen zeigen :
FIG Ia : Die Darstellung der Generierung eines synthetisierten Signals ;
FIG Ib : Die Darstellung der Generierung eines Anregungssignals für eine Breitbandlösung;
FIG 2 : Darstellung eines Codebucheintrags aus dem adaptiven Codebuch für unterschiedliche Bandbreiten;
FIG 3 : Eine beispielhafte Bandbreitenerweiterung im adaptiven Codebuch .
In FIG Ia ist die Verwendung eines Anregungssignals exe zur Anregung eines Synthesefilters A (z ) dargestellt . Der Synthesefilter A (z ) simuliert im Falle von Sprachsignalen im menschlichen Vokaltrakt, so dass in diesem Falle mittels eines geeigneten Anregungssignals exe ein synthetischen akusti- sches Signal AS syn generiert wird. Dieses wird mittels eines Komperators C mit dem tatsächlichen akustischen Signal as verglichen . Sukzessive wird das Anregungssignal exe so angeglichen, dass das synthetische akustische Signal AS_syn dem tatsächlichen akustischen Signal as möglichst gut ähnelt .
In FIG Ib ist dann die Generierung des Anregungssignals exe dargestellt . Dazu werden mehrere Parameter verwendet, welche letztlich zur effektiven Bandbreitennutzung übertragen werden, da die Übertragung dieser Parameter weniger Übertra- gungskapazität erfordert, als die Übertragung des Anregungssignals exe selbst :
In FIG Ib ist die Generierung eines Anregungssignals exe im Falle einer Breitbandlösung dargestellt . Unter Breitbandlösung wird in diesem Fall verstanden, dass die Bandbreite des auf Empfängerseite rekonstruierten Signals größer ist, als usprünglich - z . B . durch die Ausgestaltung von Codebüchern vorgesehen . Im Falle einer Erweiterung des
G .729 wird von einem Signal mit 4kHz Bandbreite als Schmalbandsignal gesprochen, von einem auf 8kHz Bandbreite erweiterten Signal als Breitbandsginal .
Zur Generierung des Anregungssignals ist ein adaptives Codebuch ACB vorgesehen, mit dem harmonische Anteile des akustischen Signals dargestellt werden . Dazu beinhaltet das adaptive Codebuch frühere Anregungssignale old_exc, d. h . solche aus vorhergegangenen Zeitrahmen bzw . Zeitabschnitten . Die Auswahl eines Eintrags aus dem adaptiven Codebuch ACB erfolgt über einen nicht ganzzahligen Sprachgrundfrequenzparameter p, welcher durch seinen ganzzahligen Anteil N* (int p) , wobei N eine Integerzahl darstellt, und den Bruchteil p frac dargestellt wird.
Beispielsweise wird der Sprachgrundfrequenzparameter in Fig .2 auf Basis der Bandbreite in Zeile a) ermittelt . Um beispielsweise zum 3. Abtastwert zu kommen wird p=3 gewählt . Um zu diesem Abtastwert zu gelangen, wenn ein N-tel geringerer Ab- stand zwischen Abtastwerten oder Zwischenwerten und Zwischenwerten vorliegt, d. h . das im adaptiven Codebuch ACB eine N- fach höhere Bandbreite aufweist, ist ein Wert von N*p + p frac erforderlich .
In FIG 2 sind hierbei Abtastwerte des Anregungssignals exe für unterschiedliche Abtastraten dargestellt . Je nach Abtastrate ergibt sich eine 4 kHz Bandbreite (Fall A) , eine 8 kHz Bandbreite (Fall B) oder eine 12 kHz Bandbreite (Fall C) . Die einzelnen Abtastwerte sind als Punkte dargestellt, die ver- schiedenen Abtastraten werden durch unterschiedliche zeitliche Abstände zwischen den Abtastwerten auf der Zeitachse deutlich .
Im Folgenden wird wieder auf Fig . Ib verwiesen . Zur Generierung des Anregungssignales exe ist auch ein fixes Codebuch SCB vorgesehen, welches oft auch als innovatives Codebuch be- zeichnet wird. Mittels einer Referenz idx s auf das fixe Codebuch SCB wird ein bestimmter Eintrag aus dem fixen Codebuch SCB ausgewählt . Dieser wird durch einen geeigneten Verstärkungsfaktor g_s verstärkt . Das daraus hervorgegangene Signal bildet das fixe Anregungssignal exe s .
Um ein bandbreitenerweitertes fixes Anregungssignal exe s zu erhalten, werden optional im fixen Codebuch Werte zwischen die vorhandenen Werte gesetzt . Die Anzahl der dazwischenge- setzten Werte hängt von der gewünschten Bandbreitenerweite- rung ab . Dieses Dazwischensetzen soll durch den Eintrag int N verdeutlicht werden .
In FIG 3 ist die im adaptiven Codebuch ACB erfasste Historie (history ACB) dargestellt, sowie ein aktueller Zeitrahmen (actual frame) . Der j eweilige aktuelle Rahmen ist einerseits rechts von der gestrichelten Linie dargestellt, wodurch die fortlaufende Zeit auf einer Zeitachse (t) nach rechts ausgedrückt werden soll . Zur besseren Sichtbarkeit ist der Rahmen andererseits oberhalb der im adaptiven Codebuch vorliegenden Abtastwerte und Zwischenwerte dargestellt .
Als Abtastwert werden die in einer ursprünglichen ersten Abtastfrequenz abgetasteten Werte bezeichnet . Als Zwischenwerte werden die zunächst künstlich dazwischengesetzten Werte be- zeichnet, welche zunächst den Wert 0 und dann in Abhängigkeit von den j eweiligen neuen Zeitrahmen des Signals Werte ≠ 0 annehmen . In Zeile a) sind Positionen an denen Abtastwerte in der ursprünglichen geringeren Bandbreite vorgesehen sind mit
Kreisen umrundet, die dazwischen liegenden Werte sind Zwischenwerte .
Für den ersten Rahmen (frame 1 ) ist das adaptive Codebuch ACB leer, d. h . es liegen lediglich Nullwerte an den Zeitpunkten vor, welche einer gewünschten Abtastrate entsprechen . Gleichzeitig sind bereits Nullen als Zwischenwerte eingefügt, so dass in Zeile a) im adaptiven Codebuch Null-Werte an den Zeitpunkten vorliegen, welche bereits einer höheren Abtastra- te entsprechen .
Liegt der erste Rahmen beispielsweise nur in einer ersten Abtastrate, beispielsweise 4 kHz vor, wie etwa durch die von Null verschiedenen Werte des aktuellen Rahmens in Zeile a und soll aber eine nachfolgende Codierung für eine dreifache Abtastrate, beispielsweise 12 kHz erfolgen, so werden entsprechend viele Nullwerte zwischen die vorhandenen Abtastwerte gesetzt . Dies ist auch in Zeile a für den aktuellen Rahmen dargestellt .
Erfolgt beispielsweise eine Erweiterung auf die dreifache Abtastrate, was dann einer dreifachen Bandbreite des damit erzielbaren Signals entspricht, so werden 3 minus 1 Zwischenwerte zwischen vorhandene Abtastwerte gesetzt . Für den zwei- ten Rahmen (frame 2 ) ist der erste Rahmen bereits im adaptiven Codebuch enthalten . Mittels eines Indexes , mit dem j eder der Abtastpunkte und Zwischenwerte ausgewählt werden kann, wird ein geeignetes Segment aus dem adaptiven Codebuch ausgewählt . Im adaptiven Codebuch ACB sind eine Anzahl von Ml Wer- ten enthalten, wobei Ml=MO * M3 wenn MO die Anzahl der bei der ersten Abtastrate, also z . B . bei 4 kHz , vorhandenen Werte darstellt . In Bezug auf die niedrigere erste Abtastrate (von beispielsweise 4 kHz ) gegen die zwischen den ursprünglichen
Abtastwerten liegenden Zwischenwerten bei nicht ganzzahligen Sprachgrundfrequenzparametern p .
Der zweite Rahmen wird beispielsweise durch das elliptisch eingerundete Segment aus dem adaptiven Codebuch ACB dargestellt .
Für den dritten Zeitrahmen (Zeile D) , der durch das elliptisch umrundete Segment aus dem adaptiven Codebuch ACB darge- stellt wird, sind bereits Zwischenwerte ≠ 0 im adaptiven Codebuch ACB vorhanden . In der gezeigten Weise baut sich sukzessive ein adaptives Codebuch auf .