DE3335026C2 - - Google Patents

Info

Publication number
DE3335026C2
DE3335026C2 DE3335026A DE3335026A DE3335026C2 DE 3335026 C2 DE3335026 C2 DE 3335026C2 DE 3335026 A DE3335026 A DE 3335026A DE 3335026 A DE3335026 A DE 3335026A DE 3335026 C2 DE3335026 C2 DE 3335026C2
Authority
DE
Germany
Prior art keywords
register
significant
binary number
switches
bit position
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE3335026A
Other languages
English (en)
Other versions
DE3335026A1 (de
Inventor
Chen San Bruno Calif. Us Carson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Semiconductor Corp
Original Assignee
National Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of DE3335026A1 publication Critical patent/DE3335026A1/de
Application granted granted Critical
Publication of DE3335026C2 publication Critical patent/DE3335026C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3852Calculation with most significant digit first
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Analogue/Digital Conversion (AREA)

Description

Die Erfindung bezieht sich auf eine digitale Daten­ verarbeitungsschaltung zur raschen annäherungsweisen Be­ stimmung des Produkts einer ersten Binärzahl und einer zweiten Binärzahl, insbesondere für die Spracherkennung, Spracherzeugung oder Kodierung und Dekodierung von Sprech­ laugen zum Zwecke einer Übertragung gemäß dem Oberbegriff des Patentanspruchs 1.
Um Sprechlaute zu erzeugen, zu erkennen oder zum Zweck einer Übertragung zu kodieren oder zu dekodieren, ist es erwünscht, die Möglichkeit zu haben, die komplexen Wellenformen der menschlichen Sprache in ihre digitalen Darstellungen mit so gutem Wirkungsgrad wie möglich umzuwandeln bzw. wieder zurückzuverwandeln, so daß die digitalen Teile des Systems nur die kleinstmöglichen Datengeschwindigkeiten zu verarbeiten brauchen. Die bestehenden wirtschaftlichen und technischen Beschränkungen erfordern stets, daß die digitalen Daten jeweils die wesentliche Information darstellen. Z. B. ist es erforderlich, daß die Daten in einem Speicher festgehalten werden, und daß die Größe des Speichers so klein wie möglich gehalten wird. Ein anderes Beispiel ist gegeben bei Spracherkennungssystemen. Hier kommt es darauf an, daß Daten vorzugsweise in Echtheit so schnell analysiert werden wie die Sprache von einem menschlichen Wesen hervorgebracht wird. Daher gibt es stets eine praktische Grenze für die Verarbeitungs­ leistung, die für diese Aufgabe aufgewandt werden kann. Eine Digitalübertragung erfordert naturgemäß sowohl eine digitale Kodierung, d. h. eine Art von Erkennung und am an­ deren Ende eine Dekodierung, also eine Art von Erzeugung, Da die menschliche Sprache voller überschüssiger Information ist, wurde bereits eine Anzahl Wege entwickelt, um nur den kleinsten wesentlichen Inhalt der Sprechlaute für die Umwandlung in die digitale Form zu extrahieren. In diesem Zusammenhang wird verwiesen auf Seite 28 der Ausgabe vom Oktober 1973 des IEEE Spectrum, wo über verschiedene Verfahren dieser Art zusammenfassend berichtet wird. Ein Verfahren zum Kodieren nur des wesentlichen Informationsgehaltes umfaßt die Berechnung eines linearen voraussagbaren Koeffizienten und die digitale Kodierung dieses Koeffizienten (K) statt den Versuch zu machen, die tatsächliche analoge Wellenform zu kodieren, welche der Sprache entspricht. Auf diese Weise werden nur die wahrnehmbaren wichtigsten Eigenschaften der Wellenform erhalten.
Grundsätzlich besteht die menschliche Spache aus stimmhaften und stimmlosen Komponenten. Stimmhafte Sprechlaute werden durch Schwingungen von Vokalsaiten erzeugt und umfassen glatte und harmonische Wellenform einer Vielfalt von Frequenzen. Untergruppen dieser Frequenzen werden durch die Resonanzeigenschaften des Vokaltraktes betont, welche die Leistung oder die Energie auf bestimmte Bereiche des Frequenzspektrums konzentrieren. Im Gegensatz hierzu sind stimmlose Sprechlaute Geräusche, die durch Luftturbulenzen im Bereich von Verengungen von Lippen oder Zunge hervorgebracht werden. Zwar werden durch Resonanzbedingungen stimmlose Sprechlaute in einem bestimmten Frequenzbereich kon­ zentriert. Es besteht aber zumindest in diesem Frequenzbereich die Neigung, daß ihre Leistung oder Energie gleichmäßig über den Frequenzbereich verteilt ist. Um Sprechlaute digital darzustellen, ist es erforderlich, festzustellen, ob die Wellenform stimmhaft oder stimmlos ist, d. h. ob die Wellenform glatt und harmonisch oder ein ungeregeltes Geräusch (noisy and random) ist, und die Frequenzuntergruppen (Formanten genannt) in dem stimmhaften Teil durch ihren Energiegehalt festzustellen. Dies kann dadurch geschehen, daß die analoge Sprechlautwellenform mit einem üblichen im Handel erhältlichen Analog/Digital-Wandler in eine Reihe von Digitalzahlen umgewandelt wird, welche der Größe der Wellenform zu jedem gegebenen Zeitpunkt entsprechen. Diese Zahlen werden dann fortlaufend analysiert, um zu sehen, wie voraussagbar und glatt sie sich während eines gewählten Zeitabschnitts oder Zeitrahmens ändern, womit ein Indiz dafür erhalten wird, welche Formanten vorherrschend sind, ob das Signal stimmhaft oder nicht stimmhaft ist. Dieses Vorgehen wird als Autokorrelation bezeichnet und es wird in einem Zeitbereich, im Gegensatz zu einem Frequenzbereich, durchgeführt.
Zur tatsächlichen Analyse gehört die Berechnung bestimmter Zahlenverhältnisse mit großer Geschwindigkeit, wenn die Zahlen empfangen werden, und zwar für jedes inter­ essierende Frequenzband. Die Berechnung ist äußerst multi­ plikationsintensiv und erfordert sehr große, sehr schnelle Rechner, wenn in Echtzeit mit der Sprache Schritt gehalten werden soll. Nach dem bisherigen Stand der Technik ist es wenig vorteilhaft, eine Umwandlung von der analogen in die digitale Form auf einer Echtzeitgrundlage vorzunehmen. Dieser rechnertechnische Engpaß könnte allerdings beseitigt werden, wenn eine digitale Datenverarbeitungsschaltung zur Verfügung stünde, mit der eine Multiplikation zweier Binärzahlen wesentlich schneller durchgeführt werden könnte.
Bekannte Multiplikationsschaltungen, wie sie z. B. in der DE-OS 27 43 575 beschrieben werden, kommen nicht in Betracht, da dort die Multiplikation das Durchlaufen mehrerer Verschiebungs- und Additionszyklen erfordert, so daß für die vollständige Rechenoperation ein Vielfaches der Zykluszeit aufgewendet werden muß.
Es ist daher die Aufgabe der vorliegenden Erfindung, eine Schaltung anzugeben, mit der eine Multiplikation, insbesondere in angenäherter Form, in einem einzigen Zyklus möglich ist.
Die Aufgabe wird bei einer Schaltung der eingangs genannten Art durch die Merkmale aus dem Kennzeichen des Anspruchs 1 gelöst.
Grundsätzlich wird die Beschleunigung durch Multiplikation auf einem abgekürzten Wege erreicht. Statt sehr lange detaillierte Multiplikationsverfahren zweier Binärzahlen zu gebrauchen, wird gemäß der Erfindung die Bitstelle höchster Wertigkeit in mindestens einer der Zahlen, welche eine Eins enthält, festgestellt und dann einfach die andere Zahl um die gleiche Anzahl von Bitstellen, wie sie dieser Bitstellung entspricht, nach links verschoben. Auf diese Weise ergibt sich das Produkt viel rascher als durch Multiplikation üblicher Art, und da eine große Anzahl von Multiplikationen benötigt wird, um die K-Werte abzuleiten, wird eine beachtliche Menge an Zeit eingespart. Allerdings ist das so erhaltene Produkt nicht ganz genau, es kann sogar manchmal ziemlich ungenau sein, jedoch ist die Formel zur Ermittlung des K-Wertes so beschaffen, daß diese Ungenauigkeiten die Tendenz haben, sich gegenseitig aufzuheben. Daher ist der schließlich sich ergebende Wert von K durchaus brauchbar. Dieses rasche Multiplikationsverfahren wird bei vielen Anwendungen der Verarbeitung digitaler Signale benutzt, wo Verhältniswerte errechnet werden, wie z. B. Leistungs- oder Energieverhältnisse, geometrische Mittelwerte, Autokorrelation, Querkorrelation, maximale Entropie, harmonische Mittelwerte und andere Funktionen.
Durch diese näherungsweise Art der Multiplikation wird es gleichzeitig möglich, die gesamte Rechenoperation in einem Zyklus durchzuführen, indem die Binärzal im ersten Register als ganzes geprüft und die Binärzahl im zweiten Register nach Maßgabe des Prüfergebnisses in einem einzigen Schritt um die entsprechende Stellenzahl verschoben wird. Dazu dienen die verschiedenen Gruppen von Schaltern, von denen jeweils eine Gruppe für eine bestimmte Verschiebung vorgesehen ist.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Im folgenden ist die Erfindung anhand der Zeichnungen erläutert. Es zeigt
Fig. 1 bis 4 zum besseren Verständnis eine Veranschaulichung der bereits bekannten Autokorrelationsrechnung, die aufgrund der Erfindung beschleunigt durchgeführt werden kann, und
Fig. 5 das Schema einer Ausführungsform der erfindungsgemäßen Schaltung zur raschen Bestimmung des angenäherten Produkts zweier Binärzahlen.
Fig. 1 und Fig. 2 sind gleichzeitig zu betrachten. Fig. 2 zeigt ein analoges Eingangssignal 10, das in Fig. 1 ebenfalls symbolisch dargestellt ist. Die Amplitude des Signals 10 ist zeitlich veränderbar. Der Kurvenabschnitt von Fig. 2 entspricht einem Zeitintervall von etwas mehr als 128 Abtast- oder Musterperioden (sampling Perioden). Die 128 Musterperioden bilden zusammen einen Musterrahmen, dessen Länge vielleicht 20 Millisekunden beträgt. Während jeder Musterperiode t mißt ein Analog/Digitalwandler 12 die Amplitude und bildet eine Binärzahl, welche dieser Amplitude entspricht, so daß das Signal digitalisiert analysiert werden kann.
Korrelationstheorie
Ein sehr brauchbares digitales Analysationsverfahren besteht darin, den Korrelationskoeffizienten zu errechnen. Ein Weg zur Bestimmung der Korrelation zwischen jeweils zwei Signalen besteht darin, die in einem Signal enthaltene Leistung oder Energie mit derjenigen in dem anderen zu vergleichen und diesen Vergleich als ein Verhältnis darzustellen. Offensichtlich enthalten zwei analoge Signale, die beide die in Fig. 2 gezeigte Wellenform auch die gleichen Amplituden aufweisen, die gleiche Energie oder Leistung. Eine Teilung der Leistung des einen durch die des anderen Signals ergibt ein Verhältnis im Wert Eins oder einen Koeffizienten Eins, was einer perfekten Korrelation entspricht. Natürlich könnten zwei Signale grundlegend verschiedene Wellenformen und dennoch die gleiche Leistung aufweisen, aber die Wahrscheinlichkeit hierfür ist gering, besonders wenn eine große Zahl von Vergleichen zu verschiedenen Zeitpunkten durchgeführt wird. Daher ist der Leistungsvergleich ein brauchbares Mittel zur Entscheidung darüber, ob ein Analogsignal einem anderen gleich ist.
Die Energie oder Leistung in einem Analogsignal ist proportional dem Quadrat der Fläche unter der Kurve, wenn die Wellenform in passenden Einheiten graphisch aufgezeichnet wird wie in Fig. 2 geschehen. Nach klassischem Vorgehen würde man diese Fläche unter der Kurve 10 dadurch bestimmen, daß die Amplitude oder Höhe a der Kurve 10 an jeder Stelle längs der waagerechten Zeitachse mit der Breite des gewählten Zeit­ inkrements multipliziert und alle diese Flächenbits zur Ge­ samtfläche aufsummiert werden. Wird das gewählte Zeitinkrement unendlich klein gemacht, so ist die Berechnung der Fläche eine genaue. Wenn aber das Zeitinkrement so groß ist wie der Abschnitt T in Fig. 2, ist noch immer eine gute Annäherung der Fläche und damit der Leistung oder Energie bestimmbar. Ein anderer Weg zur Vereinfachung des mathematischen Vorgehens besteht darin, willkürlich eine Zeitmessungseinheit zu verwenden, so daß T=1 ist. Dann erhält man durch Multiplikation von a mit T einfach den Wert a und bei dessen Quadrierung zwecks Erhaltung des Energie- oder Leistungsbetrags erhält man a². Durch Summieren aller 128 Rechenergebnisse für a² in dem Musterrahmen von Fig. 2 ergibt sich die Gesamtenergie oder Leistung unterhalb der Kurve 10. Mathematisch ausgedrückt:
Um zwei Signale in Beziehung zueinander zu bringen und festzustellen, ob sie gleich sind, kann man nach einem bekannten Verfahren die Energie oder Leistung beider Signale gleichzeitig im Zeitabschnitt eines Musterrahmens prüfen. Fig. 3 zeigt zwei Signale mit den Amplituden a bzw. b. Die beiden Signale haben gleiche Form, d. h. gleichen zeitlichen Verlauf, stehen aber nicht in zeitlicher Übereinstimmung miteinander. Daher kann die Korrelation zumindest für den Musterrahmen t₀ bis t₁₂₈ dadurch bestimmt werden, daß die Energie unter den beiden Kurven dort, wo sie sich überlappen (schraffierter Bereich) mit der Gesamtenergie oder Leistung beider Kurven verglichen wird. Es sind bisher bereits mehrere mathematische Ausdrücke verwendet worden, um diesen Vergleich durchzuführen und einen Korrelationskoeffizienten K zu bestimmen. Zwei solche Ausdrücke sind:
Dabei ist zu beachten, daß der Nenner quadriert ist, so daß jedes etwa mögliche negative Vorzeichen in dem Nenner eliminiert wird. Es ist ferner zu beachten, daß beide Ausdrücke eine große Zahl von Multiplikationen für jeden Musterrahmen erfordern.
Autokorrelationstheorie
Statt die Korrelation eines Signals zu einem anderen rechnerisch zu ermitteln kann man auch die Korrelation eines Signals zu einem zeitlich verschobenen Abbild seiner selbst berechnen. Dies wird als Autokorrelation bezeichnet. Signale von normalem, glattem, periodischem, voraussagbarem und harmonischem Verlauf haben hohe Autokorrelationskoeffizienten im Wert von annähernd Eins.
Störungs- oder rauschbehaftete unvoraussagbare Signale, die herumspringen oder hüpfen, haben niedrige Autokorrelationskoeffizienten im Wert von annähernd Null. Der Koeffizient ist noch immer mit Hilfe der Gleichung 2 oder 3 berechenbar, aber die Kurve b stimmt praktisch mit der Kurve a überein und ist dieser gegenüber nur etwas in der Zeit verzögert, so daß sich bei übermäßiger Verzögerung ein Bild ergibt, das annähernd Fig. 3 entspricht. Nach dem Stand der Technik wird die Verzögerung in einem weiten Bereich verändert, wobei auf bedeutungsvolle Korrelationen geachtet wird.
Spracherkennung
Sprachlaute und Worte, wie sie von menschlichen Wesen gesprochen werden, haben charakteristische zeitlich veränderliche Autokorrelationskoeffizienten. Dies bedeutet, für jedes Frequenzband in dem gesprochenen Wort ändert sich der Koeffizient K in dem Bereich von Null nach plus oder minus Eins während der Zeitdauer in der das Wort gesprochen wird. Fig. 4 zeigt eine Tabelle mit einer Reihe von Autokorrelations­ koeffizienten K₁ bis KN, von denen jeder einem bestimmten Frequenzband entspricht, und zeigt, wie sich diese Koeffizienten zu aufeinanderfolgenden Zeitpunkten T₁ bis TN ändern, während der durch sie dargestellte Sprachlaut gesprochen wird.
Die Tabelle von Fig. 4 kann in einem Computerspeicher festgehalten und mit den durch den Computer aus einem gesprochenen Wort errechneten Koeffizienten verglichen werden. Wenn die errechneten Koeffizienten innerhalb von etwa 10% der Werte in der Tabelle liegen, kann der Computer ein Zusammenpassen erklären und damit die Sprache oder den Sprachlaut erkennen.
Koeffizientenberechnung
Fig. 1 zeigt innerhalb der gestrichelten Umrandung 14 das Grundschema der Schaltung, die benötigt wird, um einen der Koeffizienten K für ein Frequenzband zu errechnen. Die Amplitude des Eingangssignals wird in jedem Intervall t gemessen und von dem Wandler 12 als ein binäres Wort dargestellt bzw. abgegeben. Das binäre Wort umfaßt einfach eine Zahl, die der Amplitude proportional ist, welche an den zwei Knotenpunkten 15 und 16 auftritt. Die Zahl am Knotenpunkt 15 wird von einem K-Rechner 18 als Größe "a" in der Gleichung (3) benutzt. Zur Erleichterung der Beschreibung wird nachstehend ein typischer Rechenvorgang entsprechend der Gleichung (3) durchgeführt. Die Zahl an dem Knotenpunkt 16 wird durch eine Verzögerungsvorrichtung 17 um eine Zeitspanne t, die gleich der Meß-Zeitspanne (sampling period) ist, verzögert und dann dem Rechner 18 zugeleitet, wo sie als "b"- Wert in der Gleichung (3) benutzt wird. Der Rechner 18, der zum Teil aus einem gewöhnlichen Mikroprozessor besteht, führt ein Programm durch, das zur Lösung der Gleichung (3) dient. Dies erfordert, daß der Rechner 18 jede Zahlengruppe aus dem Wandler 12 aufnimmt und die Werte "a" und "b" miteinander multipliziert, und daß er diesen Vorgang 128 mal bis zum Ende des Muster- oder Meßrahmens wiederholt und danach sämtliche 128 Produkte addiert, um den Zähler in der Gleichung (3) zu bilden. Die Bestimmung des Nenners der Gleichung ist komplizierter. Es müssen 128 a-Werte und b- Werte quadriert, aufsummiert und dann miteinander addiert werden. Durch diese Zahl wird das Zweifache des im Zähler stehenden Ausdrucks geteilt. Da sämtliche a-Werte und b-Werte bis zum Ende des Musterrahmens nicht bekannt sind, kann die Berechnung von K bis zu diesem Zeitpunkt durchgeführt werden. Sobald aber der Koeffizient K einmal berechnet ist, wird er in einem Speicher festgehalten, um ihn mit einer Tabelle von der in Fig. 4 gezeichneten Art vergleichen zu können. Damit ist der erste Koeffizient K des ersten Musterrahmens rechnerisch ermittelt.
Um die K-Werte für Frequenzbänder höherer Frequenzen zu ermitteln, ist es erforderlich, die vorherrschenden größeren Amplitudenänderungen in dem Signal zu eliminieren, welche die Komponenten mit höherer Frequenz maskieren und verdunkeln. Zum Beispiel enthält die in Fig. 2 gezeigte Kurve 10 einen merklichen kleinen Buckel in der Nähe des Zeitpunkts t₁₂₈, der, obgleich er als Information wichtig ist, nur geringen Einfluß auf die Berechnung von K hat, da K sich als Mittelwert der K-Einzelwerte längs des Musterrahmens ergibt. Der Großteil der Kurve 10 ggf. Die Grundfrequenz, wird durch die Einheit 14 beseitigt, indem der erste K-Wert, der für den Musterrahmen errechnet wurde, hergenommen, mit einem negativen Vorzeichen versehen und die zu den Knotenpunkten 15 und 16 gehörenden Zahlenwerte mittels der Multipliziervorrichtung 19 und 20 K mal multipliziert werden. Die zu den Knotenpunkten 15 und 16 gehörenden Zahlen werden während der Dauer des Musterrahmens in einem Speicher festgehalten, um auf diese Weise die Vollendung der Berechnung von K abzuwarten. Am Ende des Musterrahmens, nachdem K bestimmt ist, wird die Zahlenfolge aus dem Speicher zurückgeholt, um sie mittels der Multipliziervorrichtungen 19 und 20 K mal zu multiplizieren. Da der Wert K eine Annäherung dafür darstellt, um wieviel sich die Kurve 10 von Meßperiode zu Meßperiode durchschnittlich ändert, ergibt die Multiplikation mit -K der zeitlich verschobenen etwas veränderten Zahl eine negative Zahl, die dicht bei der ursprünglichen nicht verschobenen Zahl liegt. Wenn die Zahlenwerte mit Hilfe der Addiervorrichtungen 21 und 22 zusammengezählt werden, wird das meiste der Signalamplitude ausgelöscht, wobei an den Ausgängen 23 und 24 Digitalzahlen verbleiben, die nur solche Teile der Kurve 10 darstellen, die nicht durchschnittlich sind und von den Änderungen der Gesamtdurchschnittseigenschaften, welche die Kurve 10 aufweist, abweichen. Mit anderen Worten, die Ausgänge 23 und 24 führen höhere Frequenzkomponenten der Wellenform, z. B. den Buckel am Ende des Musterrahmens in Fig. 2.
Die Ausgänge 23 und 24 werden nunmehr einer anderen Einheit 14 zugeleitet, um den Koeffizienten K für dieses höhere Frequenzband zu errechnen. Der Vorgang wird so oft wiederholt, wie Einheiten 14 erwünscht sind, je nach der Komplexität der gewünschten Analyse. Es sind bereits bis zu 20 Einheiten 14 anzuwenden versucht worden. Die Endaus­ gänge 25 und 26 können in einem Speicher direkt festgehalten werden, um die gesamte übrige Information zu erhalten.
Praktisch werden natürliche sämtliche Multiplikationen, Additionen und K-Berechnungen aller Einheiten 14 von demselben Mikroprozessor durchgeführt. Alle diese Berechnungen erfordern verhältnismäßig viel Zeit, besonders, wenn bedacht wird, wielange es dauert, auch nur eine Multiplikation zweier Digitalzahlen mit 16 Bits auszuführen. Außerdem müssen, um in Echtzeit zu arbeiten, die Multiplikationen mit K, die Additionen mittels der Addiervorrichtung 21 und 22 für sämtliche Einheiten 14 einer sehr kurzen Zeitspanne nach dem Ende jedes Musterrahmens und bevor neue Berechnungen aufgrund neuer Daten begonnen werden, ausgeführt werden. Praktisch ist es daher nach dem bisherigen Stand der Technik einfach nicht möglich, eine Spracherkennung in Echtzeit, wenn jeder Laut empfangen wird, zu erhalten. Hierzu wären unannehmbar kostspielige und große Rechner erforderlich. Statt dessen nehmen die gegenwärigen Erkennungssysteme auf der Grundlage der Verwendung von Mikroprozessoren mit wirtschaftlich tragbarem Aufwand eine verhältnismäßig lange Zeit in Anspruch, um jedes Wort zu analysieren, womit Gespräche, die mit normaler Geschwindigkeit stattfinden, verhindert werden. Durch die Erfindung wird dieses Problem mittels eines Verfahrens und einer Apparatur gelöst, die es ermöglicht, den Koeffizienten K genügend rasch zu berechnen, so daß eine Echtzeit- Spracherkennung möglich wird.
Schnellmultiplikation
Durch die Erfindung wird die Berechnung von K dadurch beschleunigt, daß jeder Multiplikationsvorgang mit einer Schaltung wie in Fig. 5 gezeigt bei hoher Geschwindigkeit auf einem abgekürzten Weg durchgeführt wird. Um zwei Zahlen zu multiplizieren, werden die Zahlen von einer Datenschiene 30 in zwei Register übertragen. Die eine Zahl wird in ein Schieberegister 32 übertragen, wobei sich der Bit mit der höchsten Wertigkeit (MSB) auf der linken Seite in Fig. 5 befindet. Die andere Zahl wird in ein Prüfregister 36 über­ tragen. Die Zahl in dem Prüfregister wird geprüft, um die Bitstelle höchster Wertigkeit zu bestimmen, die eine Eins enthält. Die Zahl in dem Prüfregister 32 wird dann um die gleiche Anzahl von Stellen verschoben, um sie praktisch in einem Schritt mit der Leistung oder Energie von zwei, dargestellt durch die in der Zahl in dem Register 36 vor­ handenen Ziffer mit der höchsten Wertigkeit, zu multiplizieren. Mit anderen Worten gesagt, das Register 36 kann so angesehen werden als wenn es die Stellen Null bis Fünf aufweist, gezählt von unten nach oben. Wenn die Stelle höchster Wertigkeit, die eine Eins aufweist, die Stelle Null ganz unten ist, findet keine Verschiebung statt, da mit Eins multipliziert würde. Wenn die Stelle höchster Wertigkeit, die eine Eins aufweist, so verändert wird, daß sie die Stelle Zwei einnimmt (d. h. die dritte von unten), wird die Zahl im Register 32 um zwei Stellen verschoben, um eine Multiplikation mir Vier durchzuführen. Allgemein gesprochen, die Zahl in dem Register 32 wird um die gleiche Stellenzahl verschoben, wie es der Stelle entspricht, in der die Eins mit der höchsten Wertigkeit vorgefunden wird. Wenn z. B. die Zahl in dem Prüfregister 36 00 101 ist, was der Zahl Fünf im Dezimalsystem entspricht, so würde eine Prüfung der Zahl ergeben, daß die Bitstelle höchster Wertigkeit, welche eine Eins enthält, die Stelle Zwei ist. Daher wird die Zahl in dem Register 32 um zwei Stellen weitergeschoben, um sie praktisch augenblicklich mit Vier zu multiplizieren. Das Ergebnis ist naturgemäß nicht ganz genau, da der richtige Multiplikator Fünf wäre. Die Annäherung ergibt jedoch, wie gefunden wurde, gute Ergebnisse bei der Berechnung von Verhältniswerten, bei denen die gleichen Annäherungen sowohl im Zähler als auch im Nenner des Verhältnisses vorgenommen werden.
Die Zahl in dem Register 36 kann auf einer Vielfalt von Wegen geprüft werden, jedoch für die äußerste Geschwindigkeit zeigt Fig. 5 eine Hardware, die erfindungsgemäß mit einem einzigen Maschinenzyklus arbeitet.
Der Einfachheit halber ist in der Zeichnung nur eine vier Schiebestellungen aufweisende Ausführungsform dargestellt. Die am wenigsten bedeutungsvollen vier Bits werden über eine Schiene 38 zu vier Sätzen von Schaltern 40, 41, 42 und 43 geleitet. Die Schalter 40 werden durch ein Signal auf der Leitung 45 freigegeben und bewegen, wenn sie freigegeben sind, die Signale von der Schiene 38 zurück in das Register 32 in eine um ein Bit höhere Schiebestellung. Dies ergibt eine Multiplikation mit Zwei. In gleicher Weise bewegen die Schalter 41, wenn sie durch die Leitung 46 freigegeben werden, die Bits um zwei Stellen zwecks Multi­ plikation mit Vier. Die übrigen zwei Sätze von Schaltern 42 und 43 bewegen die Bits in Abhängigkeit von Signalen auf den Leitungen 47 und 48 um zwei bzw. vier Stellen weiter, was einer Multiplikation mit Acht bzw. Sechzehn entspricht.
Die Auswahl eines Satzes von Schaltern und damit der Zahl der Schiebeschritte erfolgt durch einen Dekoder 50. Der Dekoder 50 umfaßt einen üblichen Festwertspeicher (ROM), in welchem die Leitungen 45 bis 48 normalerweise durch Hoch­ ziehtransistoren oder entsprechende Vorrichtungen 51 bis 54 ins Positive gezogen sind. Die Kreise geben diejenigen Stellungen in der ROM-Matrix an, welche arbeitende Transistoren enthalten. Das Register 36 hat zwei Ausgänge für jede Bitstellung: einen Q-Ausgang, der dem Eingang folgt und einen "Nicht-Q"-Ausgang, welches der entgegengesetzte ist. Die bedeutungsvollste, d. h. die höchste Wertigkeit aufweisende Bitstelle in dem Register 36 liegt mit ihrem Q-Ausgang an einer Leitung 55 und ihrem "Nicht-Q"-Ausgang an einer Leitung 56. Wenn also eine Eins der obersten Stelle des Registers 36 vorhanden war, würde eine Spannung auf der Leitung 55 drei Transistoren in dem ROM einschalten, um die Leitungen 45 bis 47 zu sperren bzw. an Erde zu legen, welche wiederum die Schalter 40 bis 42 für die erste, zweite und dritte Schiebestelle daran verhindern würden zu arbeiten. Nur die Schalter 43 für die Schiebestellung 4 könnte arbeiten. Eine solche Verschiebung um vier Stellen würde wiederum praktisch die Zahl in dem Register 42 mit 16 multiplizieren.
Wenn die oberste Stelle in dem Register 36 Null ist, schaltet eine Spannung auf der Leitung 56 einen Transistor in dem ROM so, daß die Leitung 48 an Erde gelegt oder gesperrt wird. Die Schalter 43 sind dann gesperrt und nur die Schalter 40 bis 43 können in Abhängigkeit von den Inhalten der weniger bedeutungsvollen Bitstellen in dem Register 36 arbeiten.
Wenn die zweitoberste Stelle in dem Register 36 eine Eins enthält, sind die Leitungen 45 und 46 über die Leitung 57 geerdet, so daß nur die Schalter 42 arbeiten und die Zahl in dem Register 32 um drei Stellen verschieben können, was eine Multiplikation mit 8 bedeutet. Es ist nicht not­ wendig, die Leitung 48 zu sperren; dies ist bereits durch die Null in der obersten Stelle geschehen, was eine Eins auf der Leitung 56 zur Folge hat. Eine Null in der zweitobersten Stelle erzeugt auf der Leitung 58 einen Ausgangswert, der die Leitung 47 und die Schalter 42 abschaltet.
In gleicher Weise sperrt die drittoberste Stelle in dem Register 36 mit Hilfe der Leitung 59 die Schalter für die untere Stelle der Zahl, wenn sie eine Eins enthält, und die Schalter 41 für ihre eigene Stelle mit Hilfe der Leitung 60, wenn sie eine Null aufweist.
Die vierte Stelle von oben gezählt erfordert keine Sperrung der Leitung 46 bis 48, weil diese bereits durch die Nullen in den bedeutungsvolleren Bitstellen gesperrt worden sind. Und wenn noch mehr Nullen in bedeutungsvolleren Bitstellungen vorhanden wären, bliebe die Leitung 45 "hoch", d. h. eingeschaltet, würde die Schalter 40 auslösen und eine Multiplikation mit Zwei bewirken. Ist aber eine Null in der 4. Stelle vorhanden, so betätigt eine Spannung auf der Leitung 62 einen Transistor, um die Leitung 45 zu erden und die Multiplikation mit 2 zu verhindern. Ganz allgemein ergibt sich, daß jeder der Schalter 40 bis 43 eine Ver­ schiebung bewirkt, es sei denn, daß er daran gehindert wird, entweder durch eine Null in der ihm selbst entsprechenden Stelle oder durch eine Eins in irgendeiner der Stellen höherer Wertigkeit.
Schließlich stellt die Bitstelle mit der geringsten Wertigkeit (LSB) eine Multiplikation mit Eins dar, was trivial ist und keine Aktion erfordert oder eine Multiplikation mit Null, was erfordert, daß das Register 32 geräumt wird. Das Register 32 wird durch eine Räumschaltung 67 freigemacht, wenn die Schaltung 67 ein Signal auf der Leitung 66 empfängt. Die Leitung 66 wird durch eine Spannungsquelle 65 nach oben gezogen und bringt ein Signal hervor, es sei denn, sie ist durch eines der Q-Signale auf den Leitungen 55, 57 59, 61 oder 63 geerdet, wodurch das Vorhandensein einer Eins in dem Register 36 und daher ein Multiplikator, der nicht Null ist, angezeigt wird.
Sind nun die Zahlen in den Registern 32 und 36 annähernd multipliziert worden, so können sie in üblicher Weise zu den vorherigen Summen addiert werden, wobei ein übliches Register 34 eine übliche arithmetische Logikeinheit (ALU) 70 und ein Sammler 72 benutzt werden.

Claims (4)

1. Digitale Datenverarbeitungsschaltung zur schnellen Bestimmung eines Produkts aus einer ersten Binärzahl und einer zweiten Binärzahl, umfassend
  • (a) ein erstes Register (36) zum Festhalten der ersten Binärzahl;
  • (b) ein zweites Register (32) zum Festhalten der zweiten Binärzahl;
  • (c) eine mit dem ersten Register (36) verbundene Registerprüfeinrichtung zum Bestimmen der bedeutungsvollsten, d. h. die höchste Wertigkeit aufweisenden Bitstelle in dem ersten Register (36), welche eine Eins aufweist, wenn die erste Binärzahl im ersten Register (36) festgehalten wird;
  • (d) eine mit dem zweiten Register (32) verbundene Schiebevorrichtung zum Verschieben des Inhaltes des zweiten Registers (32) nach bedeutungsvolleren bzw. eine höhere Wertigkeit aufweisenden Stelle hin um eine Anzahl von Stellen, die der bedeutungsvollsten, d. h. höchstwertigen, durch die Registerprüfeinrichtung bestimmten Bitstelle entspricht; und
  • (e) eine mit dem zweiten Register (32) verbundene Ausgabevorrichtung zum Ausgeben der verschobenen zweiten Binärzahl als Produkt;
dadurch gekennzeichnet, daß
  • (f) die Registerprüfeinrichtung einen Dekoder (50) um­ faßt, welche alle Bitstellen des ersten Registers (36) gleichzeitig prüft und an seinem Ausgang jeweils ein Freigabesignal abgibt, welches charakteristisch ist für die bestimmte, eine Eins aufweisende Bitstelle des ersten Registers (36) mit der höchsten Wertigkeit; und
  • (g) die Schiebevorrichtung mehrere Gruppen (40, . . ., 43) von Schaltern aufweist, von denen jeweils eine Gruppe von einem der charakteristischen Freigabesignale aus dem Dekoder (50) angesteuert wird und dazu dient, alle Ziffern der zweiten Binärzahl gleichzeitig um eine vorbestimmte Zahl von Stellen zu verschieben.
2. Schaltung nach Anspruch 1, dadurch gekennzeichnet, daß der Dekoder (50) einen Festwertspeicher (ROM) aufweist, der so kodiert ist, daß er die Freigabesignale erzeugt, und der erste Leitungen (55, . . ., 64) aufweist, welche jeweils mit den einzelnen Bitstellen des ersten Registers (36) verbunden sind, und zweite Leitungen (45, . . ., 48), welche jeweils mit den einzelnen Gruppen (40, . . ., 43) von Schaltern verbunden sind und zur Weitergabe der Freigabesignale dienen.
3. Schaltung nach einem der Ansprüche 1 und 2, dadurch gekennzeichnet, daß eine Räumvorrichtung zum Ausräumen oder Freimachen des zweiten Registers (32), sofern nicht eine der Bitstellen im ersten Register (36) eine Eins enthält, vorgesehen ist.
DE19833335026 1982-09-29 1983-09-28 Digitale datenverarbeitungsschaltung Granted DE3335026A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/426,564 US4475167A (en) 1982-09-29 1982-09-29 Fast coefficient calculator for speech

Publications (2)

Publication Number Publication Date
DE3335026A1 DE3335026A1 (de) 1984-03-29
DE3335026C2 true DE3335026C2 (de) 1992-10-08

Family

ID=23691304

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833335026 Granted DE3335026A1 (de) 1982-09-29 1983-09-28 Digitale datenverarbeitungsschaltung

Country Status (4)

Country Link
US (1) US4475167A (de)
JP (1) JPS5961892A (de)
DE (1) DE3335026A1 (de)
GB (1) GB2127996B (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5949640A (ja) * 1982-09-16 1984-03-22 Toshiba Corp 乗算回路
JPS5997200A (ja) * 1982-11-26 1984-06-04 株式会社日立製作所 音声認識方式
EP1038403B1 (de) * 1997-12-19 2005-10-12 Infineon Technologies AG Vorrichtung zur multiplikation mit konstanten faktoren und deren verwendung zur videokompression (mpeg)
US7685222B2 (en) * 2004-11-01 2010-03-23 Sony Corporation Power of two multiplication engine
US10108396B2 (en) 2013-06-25 2018-10-23 Stmicroelectronics S.R.L. Method and system for performing division/multiplication operations in digital processors, corresponding device and computer program product

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3018958A (en) * 1956-08-31 1962-01-30 Ibm Very high frequency computing circuit
US3221157A (en) * 1961-06-26 1965-11-30 Ibm Associative memory
BE701057A (de) * 1966-08-30 1967-12-18
US3571580A (en) * 1969-02-06 1971-03-23 Northern Electric Co Device for determining least significant {37 one{38 {0 in a binary word
DE2401997C3 (de) * 1973-01-16 1978-06-15 Canon K.K., Tokio Numerische Ausgabevorrichtung
GB1480503A (en) * 1973-09-13 1977-07-20 Siemens Ag Calculating unit for serial multiplication
US4118785A (en) * 1973-10-08 1978-10-03 Nippon Telegraph And Telephone Public Corporation Method and apparatus for digital attenuation by pattern shifting
JPS5086949A (de) * 1973-12-03 1975-07-12
US4086474A (en) * 1976-09-30 1978-04-25 Honeywell Information Systems Inc. Multiplication technique in a data processing system
JPS556670A (en) * 1978-06-30 1980-01-18 Fujitsu Ltd Multiplication processor
US4396994A (en) * 1980-12-31 1983-08-02 Bell Telephone Laboratories, Incorporated Data shifting and rotating apparatus

Also Published As

Publication number Publication date
JPH0443280B2 (de) 1992-07-16
JPS5961892A (ja) 1984-04-09
GB8324477D0 (en) 1983-10-12
US4475167A (en) 1984-10-02
DE3335026A1 (de) 1984-03-29
GB2127996B (en) 1986-03-05
GB2127996A (en) 1984-04-18

Similar Documents

Publication Publication Date Title
DE2422496C2 (de) Verfahren und Vorrichtung zum Wandeln eines analogen Eingangssignals in eine Folge digitalisierter Muster, die bei einem Spektrumanalysator anwendbar sind
DE2934489C2 (de)
DE2524497C3 (de) Verfahren und Schaltungsanordnung zur Sprachsynthese
DE2659096C2 (de)
DE3306730C2 (de)
DE3236834C2 (de) Verfahren und Gerät zur Sprachanalyse
DE3339288C2 (de)
DE3236832C2 (de) Verfahren und Gerät zur Sprachanalyse
DE2163053C3 (de) Schaltanordnung zum Bilden von zeitlich aufeinanderfolgenden Gruppensignalen in der Peiltechnik
DE2919085C2 (de) Vorverarbeitungsverfahren und -vorrichtung für eine Spracherkennungsvorrichtung
DE69734837T2 (de) Sprachkodierer, sprachdekodierer, sprachkodierungsmethode und sprachdekodierungsmethode
DE2825110A1 (de) Verfahren zur erkennung kontinuierlicher sprachsignale
DE3236885A1 (de) Verfahren und geraet zur sprachanalyse
DE2820645A1 (de) Vorrichtung und verfahren zur spracherkennung
DE2825186A1 (de) Verfahren zur verringerung der falschanzeige in spracherkennungsverfahren fuer kontinuierliche sprachsignale
DE2825082A1 (de) Verfahren zur spracherkennung
DE10234130B3 (de) Vorrichtung und Verfahren zum Erzeugen einer komplexen Spektraldarstellung eines zeitdiskreten Signals
DE3237613A1 (de) Spracherkennungs-verfahren und -vorrichtung fuer kontinuierliche sprache
DE2414866A1 (de) Einrichtung zum ermitteln der signalbeschaffenheit einer digitalen, phasenmodulierten welle
DE2020753A1 (de) Einrichtung zum Erkennen vorgegebener Sprachlaute
DE4491015C2 (de) Verfahren zum Erzeugen eines Spektralrauschbewertungsfilters zur Verwendung in einem Sprachcoder
DE2730662A1 (de) Verfahren und schaltung zum erzeugen eines autokorrelations-funktions-faktors
DE2636032B2 (de) Elektrische Schaltungsanordnung zum Extrahieren der Grundschwingungsperiode aus einem Sprachsignal
DE19581667C2 (de) Spracherkennungssystem und Verfahren zur Spracherkennung
DE2355640A1 (de) Anordnung zur spektralanalyse von elektrischen signalen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition