[go: up one dir, main page]

DE202019006054U1 - Emulated signal processing means and signal processing unit - Google Patents

Emulated signal processing means and signal processing unit Download PDF

Info

Publication number
DE202019006054U1
DE202019006054U1 DE202019006054.5U DE202019006054U DE202019006054U1 DE 202019006054 U1 DE202019006054 U1 DE 202019006054U1 DE 202019006054 U DE202019006054 U DE 202019006054U DE 202019006054 U1 DE202019006054 U1 DE 202019006054U1
Authority
DE
Germany
Prior art keywords
signal processing
signal
neural network
processing means
network system
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.)
Active
Application number
DE202019006054.5U
Other languages
German (de)
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.)
NATIVE INSTR GmbH
Native Instruments GmbH
Original Assignee
NATIVE INSTR GmbH
Native Instruments GmbH
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 NATIVE INSTR GmbH, Native Instruments GmbH filed Critical NATIVE INSTR GmbH
Priority to DE202019006054.5U priority Critical patent/DE202019006054U1/en
Publication of DE202019006054U1 publication Critical patent/DE202019006054U1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H3/00Instruments in which the tones are generated by electromechanical means
    • G10H3/12Instruments in which the tones are generated by electromechanical means using mechanical resonant generators, e.g. strings or percussive instruments, the tones of which are picked up by electromechanical transducers, the electrical signals being further manipulated or amplified and subsequently converted to sound by a loudspeaker or equivalent instrument
    • G10H3/14Instruments in which the tones are generated by electromechanical means using mechanical resonant generators, e.g. strings or percussive instruments, the tones of which are picked up by electromechanical transducers, the electrical signals being further manipulated or amplified and subsequently converted to sound by a loudspeaker or equivalent instrument using mechanically actuated vibrators with pick-up means
    • G10H3/18Instruments in which the tones are generated by electromechanical means using mechanical resonant generators, e.g. strings or percussive instruments, the tones of which are picked up by electromechanical transducers, the electrical signals being further manipulated or amplified and subsequently converted to sound by a loudspeaker or equivalent instrument using mechanically actuated vibrators with pick-up means using a string, e.g. electric guitar
    • G10H3/186Means for processing the signal picked up from the strings
    • G10H3/187Means for processing the signal picked up from the strings for distorting the signal, e.g. to simulate tube amplifiers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10KSOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
    • G10K15/00Acoustics not otherwise provided for
    • G10K15/02Synthesis of acoustic waves
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/155Musical effects
    • G10H2210/311Distortion, i.e. desired non-linear audio processing to change the tone colour, e.g. by adding harmonics or deliberately distorting the amplitude of an audio waveform
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/311Neural networks for electrophonic musical instruments or musical processing, e.g. for musical recognition or control, automatic composition or improvisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Neurology (AREA)
  • Signal Processing (AREA)
  • Nonlinear Science (AREA)
  • Human Computer Interaction (AREA)
  • Feedback Control In General (AREA)

Abstract

Signalverarbeitungseinheit (300), umfassend:- mindestens ein emuliertes Signalverarbeitungsmittel (200), wobei das emulierte Signalverarbeitungsmittel ein trainiertes neuronales Netzwerksystem (210) umfasst, wobei das trainierte neuronale Netzwerksystem (210) eine Eingabeschicht (112), mindestens eine verborgene Schicht (114) und eine Ausgabeschicht (116) umfasst, wobei das neuronale Netzwerksystem (210) auf einer Prozessoreinheit (120) mit einem Satz von Trainingsdaten (140) trainiert wird, wobei die Trainingsdaten (140) erhaltene abgetastete Daten eines zu emulierenden Signalverarbeitungsmittels (10) sind, wobei die abgetasteten Daten zu diskreten Zeitschritten n aus Folgenden erhalten werden: Ausgangssignalwerten (yn), wie durch das zu emulierende Signalverarbeitungsmittel (10) ausgegeben, und mindestens einem internen Zustandssignalwert (xn) eines internen Zustands des zu emulierenden Signalverarbeitungsmittels (10); wobei eine Eingabe in das neuronale Netzwerksystem (110) während des Trainings durch den Wert des mindestens einen internen Zustandssignalwerts (xn) zum Zeitschritt n bereitgestellt wird, und eine Ausgabe des neuronalen Netzwerksystems (10) (a) im Falle, dass das Ausgangssignal des Signalverarbeitungsmittels (10) gleich einem des mindestens einen internen Zustandssignals ist, wie folgt lautet: ein Wert, der den mindestens einen internen Zustandssignalwert (xn+1) des Signalverarbeitungsmittels (10) zum Zeitschritt n+1 darstellt, (b) in allen anderen Fällen: ein Wert, der den mindestens einen internen Zustandssignalwert (xn+1) des Signalverarbeitungsmittels (100) zum Zeitschritt n+1 darstellt, und die Ausgangssignalwerte (yn) des Signalverarbeitungsmittels (10);- eine Speichereinheit (240) zum Speichern der Parameter (111) des trainierten neuronalen Netzwerksystems,- eine interne Tonquelle (301), die dazu konfiguriert ist, eine Eingabe in das trainierte neuronale Netzwerksystem (210) zu sein und ein internes Zustandssignal eines internen Zustands des emulierten Signalverarbeitungsmittels (200) einzugeben; und- eine Ausgabeeinheit (305), die dazu konfiguriert ist, ein Ausgangssignal des trainierten neuronalen Netzwerksystems (210) zu empfangen und dieses Ausgangssignal auszugeben.Signal processing unit (300) comprising:- at least one emulated signal processing means (200), the emulated signal processing means comprising a trained neural network system (210), the trained neural network system (210) comprising an input layer (112), at least one hidden layer (114) and an output layer (116), the neural network system (210) being trained on a processor unit (120) with a set of training data (140), the training data (140) being sampled data obtained from a signal processing means (10) to be emulated, the sampled data being obtained at discrete time steps n from: output signal values (yn) as output by the signal processing means (10) to be emulated, and at least one internal state signal value (xn) of an internal state of the signal processing means (10) to be emulated; wherein an input to the neural network system (110) during training is provided by the value of the at least one internal state signal value (xn) at time step n, and an output of the neural network system (10) (a) in case the output signal of the signal processing means (10) is equal to one of the at least one internal state signal, is as follows: a value representing the at least one internal state signal value (xn+1) of the signal processing means (10) at time step n+1, (b) in all other cases: a value representing the at least one internal state signal value (xn+1) of the signal processing means (100) at time step n+1, and the output signal values (yn) of the signal processing means (10);- a storage unit (240) for storing the parameters (111) of the trained neural network system,- an internal sound source (301) configured to provide an input to the trained neural network system (210). and to input an internal state signal of an internal state of the emulated signal processing means (200); and- an output unit (305) configured to receive an output signal of the trained neural network system (210) and to output this output signal.

Description

GEBIET DER ERFINDUNGFIELD OF INVENTION

Die vorliegende Erfindung betrifft allgemein ein emuliertes Signalverarbeitungsmittel und eine Signalverarbeitungseinheit, die mindestens ein emuliertes Signalverarbeitungsmittel umfasst.The present invention generally relates to an emulated signal processing means and a signal processing unit comprising at least one emulated signal processing means.

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Maschinelles Lernen, insbesondere unter Verwendung des tiefen Lernens neuronaler Netzwerke, wird zum Durchführen eines breiten Spektrums von Aufgaben basierend auf dem Training von mathematischen Modellen an Daten verwendet. Da diese Maschinenlernstrukturen, -algorithmen und diesbezügliche Verfahren komplexe Aufgaben lösen können, ohne sich auf explizite Anweisungen durch einen menschlichen Programmierer zu stützen, gelten sie als eine Form der künstlichen Intelligenz.Machine learning, particularly using deep learning neural networks, is used to perform a wide range of tasks based on training mathematical models on data. Because these machine learning structures, algorithms, and related techniques can solve complex tasks without relying on explicit instructions from a human programmer, they are considered a form of artificial intelligence.

Virtuelles analoges Modellieren bei der digitalen Signalverarbeitung, wie etwa Erzeugung und Verarbeitung von Audiosignalen, ist ein bewährtes und doch spezialisiertes Gebiet, das sich mit dem Reproduzieren des Verhaltens eines ursprünglich analogen Systems in digitaler Form befasst. Zum Zweck des Anwendungskontexts handelt es sich beim virtuellen analogen Modellieren um einen geeigneten Teilbereich der digitalen Signalverarbeitung, um die Verwendung der vorgeschlagenen Erfindung zu demonstrieren.Virtual analog modeling in digital signal processing, such as audio signal generation and processing, is a well-established yet specialized field that deals with reproducing the behavior of an originally analog system in digital form. For the purposes of the application context, virtual analog modeling is a suitable subfield of digital signal processing to demonstrate the use of the proposed invention.

An einigen Stellen des Standes der Technik stützt sich das virtuelle analoge Modellieren auf das Verständnis eines Ingenieurs eines elektrischen oder elektromechanischen Systems, um Gleichungen abzuleiten und diese Gleichungen als explizite Anweisungen in Code zu konvertieren. Es gibt verschiedene Ansätze dafür, wie diese expliziten Modelle strukturiert sind und wie Verarbeitungsverfahren optimiert werden. Diese Verfahren erfordern eine große Menge an manueller Arbeit und Fachwissen, was sowohl die Modellierungstechnik als auch das einzelne Originalsystem betrifft.In some areas of the state of the art, virtual analog modeling relies on an engineer's understanding of an electrical or electromechanical system to derive equations and convert those equations into code as explicit instructions. There are different approaches to how these explicit models are structured and how processing procedures are optimized. These procedures require a large amount of manual work and expertise, both in the modeling technique and in the individual original system.

DE 102015110938 A1 und US 2016328501 A1 offenbaren automatisierte Verfahren, die weniger manuelle Arbeit und individuelle Kenntnis des Originalsystems erfordern, aber auf das Modellieren einer begrenzten Klasse von Originalsystemen in einen begrenzten Genauigkeitsgrad beschränkt sind. EN 102015110938 A1 and US2016328501 A1 reveal automated methods that require less manual work and individual knowledge of the original system, but are limited to modeling a limited class of original systems to a limited level of accuracy.

Im neueren wissenschaftlichen Stand der Technik von E. Damskägg, L. Juvela, E. Thuillier und V. Välimäki, „Deep Learning for Tube Amplifier Emulation“, 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brighton, Großbritannien, 2019, S. 471-475 , wurden stark verallgemeinerte Verfahren des maschinellen Lernens, wie etwa Faltende Neuronale Netzwerke, angewendet, um das Eingabe-Ausgabe-Verhalten eines Originalsystems ohne jegliche Berücksichtigung oder Kenntnis der internen Mechanik des Originalsystems zu modellieren. Derartige Systeme sind rechenintensiv und können abhängig von dem Originalsystem unter Verwendung von iterativem maschinellen Lernen übermäßig schwer zu trainieren sein.In the new scientific state of the art of E. Damskägg, L. Juvela, E. Thuillier and V. Välimäki, “Deep Learning for Tube Amplifier Emulation”, 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brighton, UK, 2019, pp. 471-475 , highly generalized machine learning techniques, such as convolutional neural networks, have been applied to model the input-output behavior of an original system without any consideration or knowledge of the original system's internal mechanics. Such systems are computationally intensive and, depending on the original system, may be excessively difficult to train using iterative machine learning.

Für typische Anwendungen in Echtzeitverarbeitung wird ein kontinuierlicher Datenstrom von diskreten Audiodaten durch einen derartigen Prozess mit einer Latenz von nur Millisekunden zwischen der Eingabe und der Ausgabe geführt, wodurch hohe Anforderungen an die Leistung, d.h. die Recheneffizienz, eines beliebigen virtuellen analogen Prozessors erzeugt werden.For typical real-time processing applications, a continuous stream of discrete audio data is passed through such a process with a latency of only milliseconds between input and output, creating high demands on the performance, i.e., computational efficiency, of any virtual analog processor.

Es besteht eine stetige Weiterentwicklung auf dem Gebiet der virtuellen analogen Modellierung, um digitale Signalverarbeitungsverfahren in den Bereichen der Recheneffizienz, der erreichbaren Komplexität des Originalsystems sowie die Fähigkeit zum Modellieren eines hochgradig nichtlinearen oder autonomen Verhaltens zu verbessern. Beim Erzeugen derartiger Lösungen in kommerziellem Umfang ist der Stand der Technik nicht in der Lage, die vorstehenden Kriterien bei einer angemessenen Investition von manuellem Aufwand für viele in Frage kommende Originalsysteme zu erfüllen.There is a continuous development in the field of virtual analog modeling to improve digital signal processing techniques in the areas of computational efficiency, achievable complexity of the original system, and the ability to model highly nonlinear or autonomous behavior. In producing such solutions on a commercial scale, the state of the art is not able to meet the above criteria with a reasonable investment of manual effort for many of the original systems in question.

KURZDARSTELLUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Ein Ziel der Erfindung besteht im Verbessern des Standes der Technik der digitalen Signalverarbeitungsverfahren durch das Verwenden von maschinellem Lernen für eine neue Datenstruktur und ein neues Rechenverfahren, wodurch eine Verarbeitung bei höherer Wiedergabetreue beim Reproduzieren eines Originalsystems mit geringeren Anforderungen an die Verarbeitung und auch mit einem reduzierten manuellen Aufwand, um individuelle Modelle für unterschiedliche Originalsysteme zu erzeugen, bereitgestellt wird.An object of the invention is to improve the state of the art of digital signal processing techniques by using machine learning for a new data structure and a new computational method, thereby providing higher fidelity processing in reproducing an original system with lower processing requirements and also with reduced manual effort to generate individual models for different original systems.

Gemäß einem Aspekt der vorliegenden Erfindung ist eine Signalverarbeitungseinheit bereitgestellt, die Folgendes umfasst: ein emuliertes Signalverarbeitungsmittel, das durch das folgende Verfahren zum Emulieren eines Signalverarbeitungsmittels erhalten wird, wobei das emulierte Signalverarbeitungsmittel ein trainiertes neuronales Netzwerksystem umfasst; eine interne Tonquelle, die dazu konfiguriert ist, eine Eingabe in das trainierte neuronale Netzwerksystem zu sein; und eine Ausgabeeinheit, die dazu konfiguriert ist, ein Ausgangssignal des trainierten neuronalen Netzwerksystems zu empfangen und dieses Ausgangssignal auszugeben.According to one aspect of the present invention, there is provided a signal processing unit comprising: an emulated signal processing means obtained by the following method for emulating a signal processing means, wherein the emulated signal processing means comprises a trained neural network system; an internal sound source configured to be an input to the trained neural network system; and an output unit configured to receive an output signal of the trained neural network system and to output this output signal.

Das Verfahren zum Emulieren eines Signalverarbeitungsmittels umfasst die folgenden Schritte:

  • Erhalten von abgetasteten Daten in diskreten Zeitschritten n von:
    • Ausgangssignalwerten, wie durch ein zu emulierendes Signalverarbeitungsmittel ausgegeben, und
    • mindestens einem internen Zustandssignalwert eines internen Zustands des zu emulierenden Signalverarbeitungsmittels;
  • Training eines neuronalen Netzwerksystems auf einer Prozessoreinheit mit einem Satz von Trainingsdaten, wobei die Trainingsdaten die erhaltenen abgetasteten Daten des zu emulierenden Signalverarbeitungsmittels sind, wobei das neuronale Netzwerksystem eine Eingabeschicht, mindestens eine verborgene Schicht und eine Ausgabeschicht umfasst, wobei eine Eingabe in das neuronale Netzwerksystem während des Trainings durch den Wert des mindestens einen internen Zustandssignalwerts bei einem Zeitschritt n bereitgestellt ist und eine Ausgabe des neuronalen Netzwerksystems wie folgt lautet: im Falle, dass das Ausgangssignal des Signalverarbeitungsmittels gleich einem des mindestens einen internen Zustandssignals ist: ein Wert, der den mindestens einen internen Zustandssignalwert des Signalverarbeitungsmittels zum Zeitschritt n+1 darstellt, in allen anderen Fällen: ein Wert, der den mindestens einen internen Zustandssignalwert des Signalverarbeitungsmittels zum Zeitschritt n+1 darstellt, und die Ausgangssignalwerte des Signalverarbeitungsmittels; und
  • Speichern der Parameter des trainierten neuronalen Netzwerksystems in einer Speichereinheit.
The method for emulating a signal processing means comprises the following steps:
  • Obtaining sampled data in discrete time steps n of:
    • Output signal values as output by a signal processing means to be emulated, and
    • at least one internal state signal value of an internal state of the signal processing means to be emulated;
  • Training a neural network system on a processor unit with a set of training data, the training data being the obtained sampled data of the signal processing means to be emulated, the neural network system comprising an input layer, at least one hidden layer and an output layer, an input to the neural network system during training being provided by the value of the at least one internal state signal value at a time step n and an output of the neural network system being as follows: in case the output signal of the signal processing means is equal to one of the at least one internal state signal: a value representing the at least one internal state signal value of the signal processing means at time step n+1, in all other cases: a value representing the at least one internal state signal value of the signal processing means at time step n+1, and the output signal values of the signal processing means; and
  • Storing the parameters of the trained neural network system in a storage unit.

Diese vorliegende Erfindung stellt ein neues Verfahren vor, das eine neuronale Netzwerkstruktur umfasst, die in ein zeitdiskretes Zustandsraumsystem eingebettet ist. Diese Struktur kann trainiert werden, um das Verhalten einer Anzahl von Signalverarbeitungsmitteln unter Verwendung von nicht nur Eingangs- und Ausgangsmessungen, sondern auch von Messungen abgetasteter Datenmengen innerhalb der Signalverarbeitungsmittel anzunähern.This present invention presents a new method comprising a neural network structure embedded in a discrete-time state space system. This structure can be trained to approximate the behavior of a number of signal processing means using not only input and output measurements, but also measurements of sampled data sets within the signal processing means.

Die Zustandsraum- oder Phasenraumbeschreibung eines dynamischen Systems ist im Fachgebiet wohlbekannt. Es handelt sich um einen mathematischen geometrischen Raum, der alle möglichen Konfigurationen von Zuständen eines dynamischen Systems beschreibt, das ein mathematisches System ist, wobei eine Funktion die Entwicklung eines Punkts in einem abstrakten geometrischen Raum beschreibt. Die Zustandsdynamik ist eine Funktion, die die Entwicklung eines Satzes von Zuständen in der Zeit oder in diskreten Zeitschritten über Iteration definiert.The state space or phase space description of a dynamical system is well known in the field. It is a mathematical geometric space that describes all possible configurations of states of a dynamical system, which is a mathematical system where a function describes the evolution of a point in an abstract geometric space. The state dynamics is a function that defines the evolution of a set of states in time or in discrete time steps over iteration.

Das zu emulierende Signalverarbeitungsmittel in dieser Erfindung kann zeitkontinuierlich unter Verwendung eines mathematischen Modells der folgenden Form beschrieben werden: x ˙ ( t ) y ( t ) = f a ( u ( t ) x ( t ) )

Figure DE202019006054U1_0001
wobei x die Zustände des Systems sind, y die Ausgaben sind, u die Eingaben sind, dx/dt die zeitliche Ableitung der Zustände ist und fa eine Funktion ist, die die Dynamik des Systems definiert.The signal processing means to be emulated in this invention can be described in continuous time using a mathematical model of the following form: x ˙ ( t ) y ( t ) = e a ( u ( t ) x ( t ) )
Figure DE202019006054U1_0001
where x are the states of the system, y are the outputs, u are the inputs, dx/dt is the time derivative of the states, and f a is a function that defines the dynamics of the system.

Es besteht theoretisch ein analoges zeitdiskretes System, welches an den diskreten Zeitschritten eines Abtastverfahrens die Werte des zeitkontinuierlichen Systems perfekt reproduziert: x n + 1 y n = f d ( u n x n )

Figure DE202019006054U1_0002
wobei un, yn, und xn Abtastungen der zeitkontinuierlichen Eingaben, Ausgaben und Zustände sind und fd eine unbekannte Funktion ist.Theoretically, there is an analog discrete-time system that perfectly reproduces the values of the continuous-time system at the discrete time steps of a sampling method: x n + 1 y n = e d ( u n x n )
Figure DE202019006054U1_0002
where u n , y n , and x n are samples of the continuous-time inputs, outputs, and states, and f d is an unknown function.

Das neuronale Netzwerk ist trainiert, sich an fd unter Verwendung einer neuen Funktion f^d anzunähern und sich somit an die Dynamik des Systems anzunähern: x n + 1 y n = f ^ d ( u n x n )

Figure DE202019006054U1_0003
Signalverarbeitungsmittel, wie etwa ein Verstärker, zeigen häufig ein nichtlineares Verhalten, wobei eine nichtlineare Funktion eine ist, auf die das Überlagerungsprinzip nicht zutrifft. Das neuronale Netzwerk ist dazu trainiert, dieses nichtlineare Verhalten zu imitieren.The neural network is trained to approximate f d using a new function f^ d and thus approximate the dynamics of the system: x n + 1 y n = e ^ d ( u n x n )
Figure DE202019006054U1_0003
Signal processing devices, such as an amplifier, often exhibit nonlinear behavior, where a nonlinear function is one to which the superposition principle does not apply. The neural network is trained to imitate this nonlinear behavior.

In der gesamten Beschreibung können die zu emulierenden Signalverarbeitungsmittel ein zeitkontinuierliches physikalisches System oder ein zeitdiskretes Referenzsystem sein. Aus einem zeitkontinuierlichen physikalischen System werden Trainingsdaten über das Abtasten von digitalen Signalwerten an zeitdiskreten Schritten erzeugt. Das zu emulierende Signalverarbeitungssystem kann Folgendes sein: ein digitales oder ein analoges Signalverarbeitungsmittel, ein Effektprozessor, eine digitale oder eine analoge elektrische Schaltung oder eine elektromechanische Schaltung. In seiner einfachsten Form kann es eine Oszillatorschaltung sein, die kein weiteres Eingangssignal benötigt, um ein oszillierendes Ausgangssignal zu erzeugen.Throughout the description, the signal processing means to be emulated may be a continuous-time physical system or a discrete-time reference system. Training data is generated from a continuous-time physical system by sampling digital signal values at discrete-time steps. The signal processing system to be emulated may be: a digital or an analog signal processing means, an effects processor, a digital or an analog electrical circuit, or an electromechanical circuit. In its simplest form, it may be an oscillator circuit that does not require any further input signal to generate an oscillating output signal.

Bevorzugt umfasst das Verfahren ferner den Schritt des Erhaltens von abgetasteten Eingangssignalwerten un, die an das zu emulierende Signalverarbeitungsmittel bereitgestellt werden, wobei der Trainingsdatensatz die abgetasteten Eingangssignalwerte un umfasst, wobei die Eingangssignalwerte un zum Zeitschritt n auch in das neuronale Netzwerksystem eingegeben werden. Diese Eingabewerte können auch Audiosignale sein.Preferably, the method further comprises the step of obtaining sampled input signal values u n which are provided to the signal processing means to be emulated, wherein the training data set comprises the sampled input signal values u n , wherein the input signal values u n are also input to the neural network system at time step n. These input values can also be audio signals.

Das Verfahren kann ferner den Schritt des Anwendens eines Steuerparameterwerts cn des Signalverarbeitungsmittels als eine weitere Eingabe in das neuronale Netzwerksystem umfassen. Ein derartiger Steuerparameter kann die Eingabe eines Reglers sein, der an dem zu emulierenden Signalverarbeitungsmittel bereitgestellt ist, beispielsweise seiner Verstärkungseinstellung. Weitere Steuerparameter können Signalfrequenzfiltersteuerungen, dynamische Komprimierungssteuerungen, Sättigungssteuerungen, Signalversatz oder Polarität sein.The method may further comprise the step of applying a control parameter value c n of the signal processing means as a further input to the neural network system. Such a control parameter may be the input of a controller provided on the signal processing means to be emulated, for example its gain setting. Further control parameters may be signal frequency filter controls, dynamic compression controls, saturation controls, signal offset or polarity.

Das Verfahren kann auch den Schritt des Bereitstellens von Zustandsangabewerten sn eines Zustands des zu emulierenden Signalverarbeitungsmittels als eine weitere Ausgabe des neuronalen Netzwerksystems umfassen. Eine derartige Zustandsangabe kann eine LED sein, die an der zu emulierenden Signalverarbeitungsvorrichtung eingeschaltet wird. Eine weitere Zustandsangabe kann einen Mittelwert des Signals mit gleitendem Durchschnitt eines Lautstärkemessers oder einen binären Zustand einer Schaltkomponente beinhalten.The method may also comprise the step of providing state indication values s n of a state of the signal processing means to be emulated as a further output of the neural network system. Such a state indication may be an LED that is turned on on the signal processing device to be emulated. A further state indication may include a mean value of the moving average signal of a volume meter or a binary state of a switching component.

Bevorzugt wird das neuronale Netzwerksystem derart trainiert, dass ein Inkrement zwischen zwei aufeinanderfolgenden Zuständen xn und xn+1 der Wert ist, der das mindestens eine interne Zustandssignal darstellt, wobei das Inkrement mit einem vorherigen internen Zustandssignalwert xn summiert wird, um den nächsten internen Zustandssignalwert xn+1 zu erhalten. Die Verwendung der kleinen Differenz zwischen den Zustandswerten während der zeitlichen Entwicklung der Dynamik kann den Trainingsprozess des neuronalen Netzwerksystems vorteilhaft verbessern.Preferably, the neural network system is trained such that an increment between two consecutive states x n and x n+1 is the value representing the at least one internal state signal, wherein the increment is summed with a previous internal state signal value x n to obtain the next internal state signal value x n+1 . The use of the small difference between the state values during the temporal evolution of the dynamics can advantageously improve the training process of the neural network system.

Verfahren nach einem der vorherigen Ansprüche, wobei das zu emulierende Signalverarbeitungssystem Folgendes ist: ein digitales oder ein analoges Signalverarbeitungsmittel, ein Effektprozessor, eine digitale oder eine analoge elektrische Schaltung oder eine elektromechanische Schaltung.A method according to any preceding claim, wherein the signal processing system to be emulated is: a digital or analog signal processing means, an effects processor, a digital or analog electrical circuit or an electromechanical circuit.

Die gespeicherten Parameter des neuronalen Netzwerksystems können Folgende umfassen: die Werte von trainierten Gewichten des neuronalen Netzwerksystems und/oder die Anzahl von verborgenen Schichten und die Anzahl von Knoten der Eingabeschicht, jeder verborgenen Schicht und der Ausgabeschicht des neuronalen Netzwerksystems. Gegebenenfalls kann auch der Zeitschritt der Trainingsdaten gespeichert werden.The stored parameters of the neural network system may include: the values of trained weights of the neural network system and/or the number of hidden layers and the number of nodes of the input layer, each hidden layer and the output layer of the neural network system. If applicable, the time step of the training data may also be stored.

Ferner ist ein emuliertes Signalverarbeitungsmittel bereitgestellt, das durch das vorstehend beschriebene Verfahren zum Emulieren eines Signalverarbeitungsmittels erhalten wird.Further, an emulated signal processing means is provided which is obtained by the method for emulating a signal processing means described above.

Ferner ist ein Verfahren zum Verarbeiten eines Signals bereitgestellt, das die folgenden Schritte umfasst:

  • Bereitstellen eines emulierten Signalverarbeitungsmittels, das durch das Verfahren zum Emulieren eines Signalverarbeitungsmittels, wie vorstehend beschrieben, erhalten wird, wobei das emulierte Signalverarbeitungsmittel ein trainiertes neuronales Netzwerksystem umfasst;
  • Anwenden eines internen Zustandswerts xn zum Zeitschritt n als ein Eingangssignal in das trainierte neuronale Netzwerksystem, wobei zum Zeitschritt n=0 der interne Zustandswert xo ein initialisierter Wert ist, und zu allen anderen Zeitschritten ist der interne Zustandswert xn eine vorherige Ausgabe des trainierten neuronalen Netzwerksystems, das durch eine Rückkopplungsschleife aus der Ausgabeschicht des neuronalen Netzwerksystems an die Eingabeschicht des neuronalen Netzwerksystems erhalten wurde,
  • Empfangen, als ein Ausgangssignal des trainierten neuronalen Netzwerksystems, eines internen Zustandssignalwerts xn+1 des Zeitschritts n+1, und wenn das Ausgangssignal des zu emulierenden Signalverarbeitungsmittels kein internes Zustandssignal davon ist, eines Ausgangssignalwerts yn des Zeitschritts n,
  • Ausgeben des internen Zustandssignalwerts oder, wenn das Ausgangssignal des zu emulierenden Signalverarbeitungsmittels kein internes Zustandssignal davon ist, des Ausgangssignalwerts yn des Zeitschritts n als einen Ausgangssignalwert zn des emulierten Signalverarbeitungsmittels.
Furthermore, a method for processing a signal is provided, comprising the following steps:
  • Providing an emulated signal processing means obtained by the method for emulating a signal processing means as described above, wherein the emulated signal processing means comprises a trained neural network system;
  • Applying an internal state value x n at time step n as an input signal to the trained neural network system, where at time step n=0 the internal state value x o is an initialized value, and at all other time steps the internal state value x n is a previous output of the trained neural network system obtained by a feedback loop from the output layer of the neural network system to the input layer of the neural network system,
  • Receiving, as an output signal of the trained neural network system, an internal state signal value x n+1 of the time step n+1, and if the output signal of the signal processing means to be emulated is not an internal state signal thereof, an output signal value y n of the time step n,
  • Outputting the internal state signal value or, if the output signal of the signal processing means to be emulated is not an internal state signal thereof, the output signal value y n of the time step n as an output signal value z n of the emulated signal processing means.

Das Verfahren kann ferner den Schritt des Anwendens eines diskreten Eingangssignalwerts un, zum Zeitschritt n als Eingabe in das trainierte neuronale Netzwerksystem umfassen.The method may further comprise the step of applying a discrete input signal value u n , at time step n as input to the trained neural network system.

Das Verfahren kann ferner den Schritt des Anwendens eines Steuerparameterwerts cn als weitere Eingabe in das trainierte neuronale Netzwerk umfassen.The method may further comprise the step of applying a control parameter value c n as further input to the trained neural network.

Das Verfahren kann ferner den Schritt des Empfangens, als eine weitere Ausgabe an das trainierte neuronale Netzwerk, eines Zustandsangabewerts sn umfassen.The method may further comprise the step of receiving, as a further output to the trained neural network, a state indication value s n .

Im Falle, dass das neuronale Netzwerksystem derart trainiert wird, dass ein Inkrement zwischen zwei aufeinanderfolgenden Zuständen xn und xn+1 der Wert ist, der das mindestens eine interne Zustandssignal darstellt, wobei das Inkrement mit einem vorherigen internen Zustandssignalwert xn summiert wird, um den nächsten internen Zustandssignalwert xn+1 zu erhalten, kann das Inkrement mit einem Verstärkungsfaktor multipliziert werden, wobei der Verstärkungsfaktor als ein Bruch aus einem gewünschten Zeitschritt, der zum Verarbeiten eines Signals verwendet wird, geteilt durch einen Zeitschritt, der zum Training des neuronalen Netzwerksystems verwendet wird, definiert ist.In case the neural network system is trained such that an increment between two consecutive states x n and x n+1 is the value representing the at least one internal state signal, wherein the increment is summed with a previous internal state signal value x n to obtain the next internal state signal value x n+1 , the increment may be multiplied by a gain factor, wherein the gain factor is defined as a fraction of a desired time step used to process a signal divided by a time step used to train the neural network system.

Außerdem ist eine Signalverarbeitungseinheit bereitgestellt, die mindestens ein emuliertes Signalverarbeitungsmittel umfasst, das durch das eingangs beschriebene Verfahren zum Emulieren eines Signalverarbeitungsmittels erhalten wird, wobei das emulierte Signalverarbeitungsmittel ein trainiertes neuronales Netzwerksystem umfasst. Ferner ist Folgendes bereitgestellt: eine interne Tonquelle, die dazu konfiguriert ist, eine Eingabe in das trainierte neuronale Netzwerksystem zu sein; und eine Ausgabeeinheit, die dazu konfiguriert ist, ein Ausgangssignal des trainierten neuronalen Netzwerksystems zu empfangen und dieses Ausgangssignal auszugeben.Furthermore, a signal processing unit is provided which comprises at least one emulated signal processing means obtained by the method for emulating a signal processing means described above, wherein the emulated signal processing means comprises a trained neural network system. Furthermore, the following is provided: an internal sound source which is configured to be an input to the trained neural network system; and an output unit which is configured to receive an output signal of the trained neural network system and to output this output signal.

Die Einheit kann ferner Folgendes umfassen: eine Steuereingabeschnittstelle, die dazu konfiguriert ist, ein externes Steuersignal zu empfangen, wobei die Steuereingabeschnittstelle eine zusätzliche Eingabe in das trainierte neuronale Netzwerksystem bereitstellt, und/oder eine interne Steuerquelle, die dazu konfiguriert ist, ein internes Steuersignal zu erzeugen, das eine zusätzliche Eingabe in das trainierte neuronale Netzwerksystem bereitstellt.The unit may further comprise: a control input interface configured to receive an external control signal, the control input interface providing additional input to the trained neural network system, and/or an internal control source configured to generate an internal control signal providing additional input to the trained neural network system.

Die Einheit kann ferner einen Speicher zum Speichern der Parameter des mindestens einen emulierten Signalverarbeitungsmittels umfassen.The unit may further comprise a memory for storing the parameters of the at least one emulated signal processing means.

Die Einheit kann ferner eine Mehrzahl von emulierten Signalverarbeitungsmitteln sowie eine Auswahleinheit zum Auswählen mindestens eines der bereitgestellten emulierten Signalverarbeitungsmittel umfassen. Dies gestattet dem Benutzer, ein gewünschtes emuliertes Signalverarbeitungsmittel für seine Verwendung auszuwählen.The unit may further comprise a plurality of emulated signal processing means and a selection unit for selecting at least one of the provided emulated signal processing means. This allows the user to select a desired emulated signal processing means for his use.

Ebenso bereitgestellt ist ein Computerprogrammprodukt, umfassend Anweisungen, die, wenn das Programm durch einen Computer ausgeführt wird, bewirken, dass der Computer das Verfahren zum Emulieren eines Signalverarbeitungsmittels wie eingangs beschrieben und/oder das vorstehend beschriebene Verfahren zum Verarbeiten eines Signals durchführt.Also provided is a computer program product comprising instructions which, when the program is executed by a computer, cause the computer to perform the method for emulating a signal processing means as described above and/or the method for processing a signal described above.

In einem Aspekt ist ein Verfahren zum Verarbeiten eines Signals bereitgestellt, das die folgenden Schritte umfasst:

  • Bereitstellen eines emulierten Signalverarbeitungsmittels, das durch das Verfahren erhalten wurde, das die folgenden Schritte umfasst:
    • Erhalten von abgetasteten Daten zu diskreten Zeitschritten n von Ausgangssignalwerten, wie durch ein zu emulierendes Signalverarbeitungsmittel ausgegeben, und von mindestens einem internen Zustandssignalwert eines internen Zustands des zu emulierenden Signalverarbeitungsmittels;
In one aspect, a method of processing a signal is provided, comprising the steps of:
  • Providing an emulated signal processing means obtained by the method comprising the following steps:
    • Obtaining sampled data at discrete time steps n of output signal values as output by a signal processing means to be emulated and of at least one internal state signal value of an internal state of the signal processing means to be emulated;

Training eines neuronalen Netzwerksystems auf einer Prozessoreinheit mit einem Satz von Trainingsdaten, wobei die Trainingsdaten die erhaltenen abgetasteten Daten des zu emulierenden Signalverarbeitungsmittels sind, wobei das neuronale Netzwerksystem eine Eingabeschicht, mindestens eine verborgene Schicht und eine Ausgabeschicht umfasst, wobei eine Eingabe in das neuronale Netzwerksystem während des Trainings durch den Wert des mindestens einen internen Zustandssignalwerts zu einem Zeitschritt n bereitgestellt ist und eine Ausgabe des neuronalen Netzwerksystems wie folgt lautet: (a) im Falle, dass das Ausgangssignal des Signalverarbeitungsmittels gleich einem des mindestens einen internen Zustandssignals ist: ein Wert, der den mindestens einen internen Zustandssignalwert des Signalverarbeitungsmittels zum Zeitschritt n+1 darstellt, oder (b) in allen anderen Fällen: ein Wert, der den mindestens einen internen Zustandssignalwert des Signalverarbeitungsmittels zum Zeitschritt n+1 darstellt, und die Ausgangssignalwerte des Signalverarbeitungsmittels; und

  • Speichern der Parameter des trainierten neuronalen Netzwerksystems in einer Speichereinheit;
  • Anwenden eines internen Zustandswerts zum Zeitschritt n als ein Eingangssignal in das trainierte neuronale Netzwerksystem, wobei zum Zeitschritt n=0 der interne Zustandswert ein initialisierter Wert ist, und zu allen anderen Zeitschritten der interne Zustandswert eine vorherige Ausgabe des trainierten neuronalen Netzwerksystems ist, die durch eine Rückkopplungsschleife aus der Ausgabeschicht des neuronalen Netzwerksystems an die Eingabeschicht des neuronalen Netzwerksystems erhalten wurde,
  • Empfangen, als ein Ausgangssignal des trainierten neuronalen Netzwerksystems, eines internen Zustandssignalwerts des Zeitschritts n+1, und wenn das Ausgangssignal des zu emulierenden Signalverarbeitungsmittels kein internes Zustandssignal davon ist, eines Ausgangssignalwerts des Zeitschritts n, und
  • Ausgeben des internen Zustandssignalwerts oder, wenn das Ausgangssignal des zu emulierenden Signalverarbeitungsmittels kein internes Zustandssignal davon ist, des Ausgangssignalwerts des Zeitschritts n als einen Ausgangssignalwert des emulierten Signalverarbeitungsmittels.
Training a neural network system on a processor unit with a set of training data, the training data being the obtained sampled data of the signal processing means to be emulated, the neural network system comprising an input layer, at least one hidden layer and an output layer, an input to the neural network system during training being provided by the value of the at least one internal state signal value at a time step n and an output of the neural network system being as follows: (a) in case the output signal of the signal processing means is equal to one of the at least one internal state signal: a value representing the at least one internal state signal value of the signal processing means at time step n+1, or (b) in all other cases: a value representing the at least one internal state signal value of the signal processing means at time step n+1, and the output signal values of the signal processing means; and
  • Storing the parameters of the trained neural network system in a storage unit;
  • Applying an internal state value at time step n as an input signal to the trained neural network system, wherein at time step n=0 the internal state value is an initialized value, and at all other time steps the internal state value is a previous output of the trained neural network system obtained by a feedback loop from the output layer of the neural network system to the input layer of the neural network system,
  • Receiving, as an output signal of the trained neural network system, an internal state signal value of the time step n+1, and if the output signal of the signal processing means to be emulated is not an internal state signal thereof, an output signal value of the time step n, and
  • Outputting the internal state signal value or, if the output signal of the signal processing means to be emulated is not an internal state signal thereof, the output signal value of the time step n as an output signal value of the emulated signal processing means.

Der Schritt des Bereitstellens eines emulierten Signalverarbeitungsmittels kann ferner den Schritt des Anwendens von abgetasteten diskreten Eingangssignalwerten zum Zeitschritt n als Eingabe in das neuronale Netzwerksystem umfassen, und wobei der Schritt des Anwendens ferner das Anwenden von abgetasteten diskreten Eingangssignalwerten zum Zeitschritt n als eine Eingabe in das trainierte neuronale Netzwerksystem umfasst.The step of providing an emulated signal processing means may further comprise the step of applying sampled discrete input signal values at time step n as an input to the neural network system, and wherein the step of applying further comprises applying sampled discrete input signal values at time step n as an input to the trained neural network system.

Der Schritt des Bereitstellens eines emulierten Signalverarbeitungsmittels kann ferner den Schritt des Anwendens abgetasteter Steuerparameterwerte des Signalverarbeitungsmittels als eine weitere Eingabe in das neuronale Netzwerksystem umfassen, und wobei der Anwendungsschritt ferner das Anwenden, als eine weitere Eingabe in das trainierte neuronale Netzwerksystem, der abgetasteten Steuerparameterwerte eines Steuerparameters umfasst.The step of providing an emulated signal processing means may further comprise the step of applying sampled control parameter values of the signal processing means as a further input to the neural network system, and wherein the applying step further comprises applying, as a further input to the trained neural network system, the sampled control parameter values of a control parameter.

Der Schritt des Bereitstellens eines emulierten Signalverarbeitungsmittels kann ferner den Schritt des Empfangens, als eine weitere Ausgabe des trainierten neuronalen Netzwerksystems, von Zustandsangabewerten umfassen, und wobei der Anwendungsschritt ferner den Schritt des Empfangens, als eine weitere Ausgabe des trainierten neuronalen Netzwerksystems, von Zustandsangabewerten umfasst.The step of providing an emulated signal processing means may further comprise the step of receiving, as a further output of the trained neural network system, state indication values, and wherein the applying step further comprises the step of receiving, as a further output of the trained neural network system, state indication values.

Wenn das neuronale Netzwerksystem derart trainiert wird, dass ein Inkrement zwischen zwei aufeinanderfolgenden internen Zustandssignalwerten zum Zeitschritt n und zum Zeitschritt n+1 der Wert ist, der das mindestens eine interne Zustandssignal darstellt, wird das Inkrement mit einem vorherigen internen Zustandssignalwert summiert, um den nächsten internen Zustandssignalwert zu erhalten. Das Inkrement wird bevorzugt mit einem Verstärkungsfaktor multipliziert, wobei der Verstärkungsfaktor als ein Bruch aus einem gewünschten Zeitschritt, der zum Verarbeiten eines Signals verwendet wird, geteilt durch einen Zeitschritt, der zum Erhalten der abgetasteten Daten zum Training des neuronalen Netzwerksystems verwendet wird, definiert wird.When the neural network system is trained such that an increment between two consecutive internal state signal values at time step n and time step n+1 is the value representing the at least one internal state signal, the increment is summed with a previous internal state signal value to obtain the next internal state signal value. The increment is preferably multiplied by a gain factor, wherein the gain factor is defined as a fraction of a desired time step used to process a signal divided by a time step used to obtain the sampled data for training the neural network system.

Das zu emulierende Signalverarbeitungssystem kann Folgendes sein: ein digitales oder ein analoges Signalverarbeitungsmittel, ein Effektprozessor, eine digitale oder eine analoge elektrische Schaltung oder eine elektromechanische Schaltung.The signal processing system to be emulated may be: a digital or analog signal processing means, an effects processor, a digital or analog electrical circuit, or an electromechanical circuit.

Die gespeicherten Parameter des neuronalen Netzwerksystems können mindestens eins, ausgewählt aus der Gruppe, die Folgendes enthält, sein: die Werte trainierter Gewichte des neuronalen Netzwerksystems, die Anzahl verborgener Schichten und die Anzahl von Knoten der Eingabeschicht, die Anzahl von Knoten in jeder verborgenen Schicht und die Anzahl von Knoten der Ausgabeschicht des neuronalen Netzwerksystems.The stored parameters of the neural network system may be at least one selected from the group consisting of: the values of trained weights of the neural network system, the number of hidden layers and the number of nodes of the input layer, the number of nodes in each hidden layer, and the number of nodes of the output layer of the neural network system.

Ferner ist ein emuliertes Signalverarbeitungsmittel bereitgestellt, wobei das Mittel durch die folgenden Schritte erhalten wird:

  • Erhalten von abgetasteten Daten zu diskreten Zeitschritten n von Ausgangssignalwerten, wie durch ein zu emulierendes Signalverarbeitungsmittel ausgegeben, und mindestens eines internen Zustandssignalwerts eines internen Zustands des zu emulierenden Signalverarbeitungsmittels;
  • Training eines neuronalen Netzwerksystems auf einer Prozessoreinheit mit einem Satz von Trainingsdaten, wobei die Trainingsdaten die erhaltenen abgetasteten Daten des zu emulierenden Signalverarbeitungsmittels sind, wobei das neuronale Netzwerksystem eine Eingabeschicht, mindestens eine verborgene Schicht und eine Ausgabeschicht umfasst, wobei eine Eingabe in das neuronale Netzwerksystem während des Trainings durch den Wert des mindestens einen internen Zustandssignalwerts zu einem Zeitschritt n bereitgestellt ist und eine Ausgabe des neuronalen Netzwerksystems wie folgt lautet: (a) im Falle, dass das Ausgangssignal des Signalverarbeitungsmittels gleich einem des mindestens einen internen Zustandssignals ist: ein Wert, der den mindestens einen internen Zustandssignalwert des Signalverarbeitungsmittels zum Zeitschritt n+1 darstellt, oder (b) in allen anderen Fällen: ein Wert, der den mindestens einen internen Zustandssignalwert des Signalverarbeitungsmittels zum Zeitschritt n+1 darstellt, und die Ausgangssignalwerte des Signalverarbeitungsmittels; und
  • Speichern der Parameter des trainierten neuronalen Netzwerksystems in einer Speichereinheit.
Further, an emulated signal processing means is provided, the means being obtained by the following steps:
  • Obtaining sampled data at discrete time steps n of output signal values as output by a signal processing means to be emulated and at least one internal state signal value of an internal state of the signal processing means to be emulated;
  • Training a neural network system on a processor unit with a set of training data, the training data being the obtained sampled data of the signal processing means to be emulated, the neural network system comprising an input layer, at least one hidden layer and an output layer, an input to the neural network system during training being provided by the value of the at least one internal state signal value at a time step n and an output of the neural network system being as follows: (a) in case the output signal of the signal processing means is equal to one of the at least one internal state signal: a value representing the at least one internal state signal value of the signal processing means at time step n+1, or (b) in all other cases: a value representing the at least one internal state signal value of the signal processing means at time step n+1, and the output signal values of the signal processing means; and
  • Storing the parameters of the trained neural network system in a storage unit.

Außerdem kann eine Signalverarbeitungseinheit bereitgestellt sein, die Folgendes umfasst: mindestens ein emuliertes Signalverarbeitungsmittel, das durch das vorstehend beschriebene Verfahren erhalten wird, wobei das emulierte Signalverarbeitungsmittel ein trainiertes neuronales Netzwerksystem umfasst; eine interne Tonquelle, die dazu konfiguriert ist, eine Eingabe in das trainierte neuronale Netzwerksystem zu sein; und eine Ausgabeeinheit, die dazu konfiguriert ist, ein Ausgangssignal des trainierten neuronalen Netzwerksystems zu empfangen und dieses Ausgangssignal auszugeben.In addition, a signal processing unit may be provided, comprising: at least one emulated signal processing means obtained by the method described above, the emulated signal processing means comprising a trained neural network system; an internal sound source configured to be an input to the trained neural network system; and an output unit configured to receive an output signal of the trained neural network system and to output this output signal.

Die Einheit kann ferner eine Steuereingabeschnittstelle umfassen, die dazu konfiguriert ist, ein externes Steuersignal zu empfangen, wobei die Steuereingabeschnittstelle eine zusätzliche Eingabe in das trainierte neuronale Netzwerksystem bereitstellt, und/oder eine interne Steuerquelle, die dazu konfiguriert ist, ein internes Steuersignal zu erzeugen, das eine zusätzliche Eingabe in das trainierte neuronale Netzwerksystem bereitstellt.The unit may further comprise a control input interface configured to receive an external control signal, the control input interface providing additional input to the trained neural network system, and/or an internal control source configured to generate an internal control signal providing additional input to the trained neural network system.

Die Einheit kann ferner eine Speichereinheit umfassen, die zum Speichern der Parameter des mindestens eines emulierten Signalverarbeitungsmittels ausgelegt ist.The unit may further comprise a memory unit configured to store the parameters of the at least one emulated signal processing means.

Die Einheit kann ferner eine Mehrzahl von Sätzen gespeicherter Parameter sowie eine Auswahleinheit zum Auswählen mindestens eines der bereitgestellten Sätze gespeicherter Parameter, die in dem emulierten Signalverarbeitungsmittel verwendet werden sollen, umfassen.The unit may further comprise a plurality of sets of stored parameters and a selection unit for selecting at least one of the provided sets of stored parameters to be used in the emulated signal processing means.

Es kann ein Computerprogrammprodukt bereitgestellt sein, umfassend Anweisungen, die, wenn das Programm durch einen Computer ausgeführt wird, bewirken, dass der Computer das Verfahren zur Signalverarbeitung, wie vorstehend beschrieben, ausführt.There may be provided a computer program product comprising instructions which, when executed by a computer, cause the computer to carry out the method of signal processing as described above.

Die Eigenschaften, Merkmale und Vorteile dieser Erfindung und die Art und Weise, in der sie wie vorstehend beschrieben erhalten werden, werden in Verbindung mit der folgenden Beschreibung beispielhafter Ausführungsformen, die Bezug nehmend auf die begleitenden Zeichnungen erläutert werden, ersichtlicher und deutlicher verständlich.The characteristics, features and advantages of this invention and the manner in which they are obtained as described above will become more apparent and clearly understood in connection with the following description of exemplary embodiments explained with reference to the accompanying drawings.

Kurze Beschreibung der ZeichnungenShort description of the drawings

In den Zeichnungen geben gleiche Elementzahlen die gleichen Elemente in jeder der Ansichten an:

  • 1 veranschaulicht eine erste Ausführungsform eines Signalverarbeitungsmittels 10, das gemäß der vorliegenden Erfindung emuliert werden soll,
  • 2 veranschaulicht eine erste Ausführungsform des erfindungsgemäßen Systems 100, das zum Emulieren eines Signalverarbeitungsmittels 10 verwendet wird,
  • 3 veranschaulicht eine erste Ausführungsform eines erfindungsgemäßen emulierten Signalverarbeitungsmittels 200,
  • 4 veranschaulicht eine zweite Ausführungsform eines erfindungsgemäßen emulierten Signalverarbeitungsmittels 200,
  • 5 veranschaulicht eine dritte Ausführungsform eines erfindungsgemäßen emulierten Signalverarbeitungsmittels 200,
  • 6 veranschaulicht drei Phasen des Abtastens von Daten, des Trainings des Netzwerks und des Verarbeitens eines Signals,
  • 7A veranschaulicht das Abtasten von Daten aus einem ersten Signalverarbeitungsmittel 10,
  • 7B veranschaulicht den Zeitbereichsabgleich zwischen dem gemessenen und dem emulierten Ausgangssignal für das erste Signalverarbeitungsmittel 10 von 7A,
  • 7C veranschaulicht den Frequenzbereichsabgleich zwischen dem gemessenen und dem emulierten Ausgangssignal für das erste Signalverarbeitungsmittel 10 von 7A,
  • 8A veranschaulicht das Abtasten von Daten aus einem zweiten Signalverarbeitungsmittel 10,
  • 8B veranschaulicht den Zeitbereichsabgleich zwischen dem gemessenen und dem emulierten Ausgangssignal für das zweite Signalverarbeitungsmittel 10,
  • 8C veranschaulicht den Frequenzbereichsabgleich zwischen dem gemessenen und dem emulierten Ausgangssignal für das zweite Signalverarbeitungsmittel 10,
  • 9A veranschaulicht das Abtasten von Daten aus einem dritten Signalverarbeitungsmittel 10,
  • 9B veranschaulicht die Zeitbereichsansicht zweier periodischer Eingangssignale, „Sägezahn“ und „Gitarre“, für das Signalverarbeitungsmittel 10 von 9A,
  • 9C veranschaulicht den Zeitbereichsabgleich zwischen dem gemessenen und dem emulierten Ausgangssignal für das dritte Signalverarbeitungsmittel 10 beim Empfangen des „Sägezahn“-Eingangssignals,
  • 9D veranschaulicht den Zeitbereichsabgleich zwischen dem gemessenen und dem emulierten Ausgangssignal für das dritte Signalverarbeitungsmittel 10 beim Empfangen des „Gitarren“-Eingangssignals,
  • 9E veranschaulicht den Frequenzbereichsabgleich zwischen dem gemessenen und dem emulierten Ausgangssignal für das dritte Signalverarbeitungsmittel 10,
  • 10 veranschaulicht eine erste Audioanwendung 300 für das neuronale Netzwerksystem 210,
  • 11 veranschaulicht eine zweite Audioanwendung 300 für das neuronale Netzwerksystem 210,
  • 12 veranschaulicht den Prozess des Speicherns mehrerer neuronaler Netzwerkparameter 111 für mehrere emulierte Signalverarbeitungsmittel 200 in einer Speichereinheit.
In the drawings, equal element numbers indicate the same elements in each of the views:
  • 1 illustrates a first embodiment of a signal processing means 10 to be emulated according to the present invention,
  • 2 illustrates a first embodiment of the system 100 according to the invention, which is used to emulate a signal processing means 10,
  • 3 illustrates a first embodiment of an emulated signal processing means 200 according to the invention,
  • 4 illustrates a second embodiment of an emulated signal processing means 200 according to the invention,
  • 5 illustrates a third embodiment of an emulated signal processing means 200 according to the invention,
  • 6 illustrates three phases of sampling data, training the network and processing a signal,
  • 7A illustrates the sampling of data from a first signal processing means 10,
  • 7B illustrates the time domain alignment between the measured and the emulated output signal for the first signal processing means 10 of 7A ,
  • 7C illustrates the frequency range adjustment between the measured and the emulated output signal for the first signal processing means 10 of 7A ,
  • 8A illustrates the sampling of data from a second signal processing means 10,
  • 8B illustrates the time domain alignment between the measured and the emulated output signal for the second signal processing means 10,
  • 8C illustrates the frequency range adjustment between the measured and the emulated output signal for the second signal processing means 10,
  • 9A illustrates the sampling of data from a third signal processing means 10,
  • 9B illustrates the time domain view of two periodic input signals, “sawtooth” and “guitar”, for the signal processing means 10 of 9A ,
  • 9C illustrates the time domain alignment between the measured and the emulated output signal for the third signal processing means 10 when receiving the “sawtooth” input signal,
  • 9D illustrates the time domain alignment between the measured and the emulated output signal for the third signal processing means 10 when receiving the “guitar” input signal,
  • 9E illustrates the frequency range adjustment between the measured and the emulated output signal for the third signal processing means 10,
  • 10 illustrates a first audio application 300 for the neural network system 210,
  • 11 illustrates a second audio application 300 for the neural network system 210,
  • 12 illustrates the process of storing multiple neural network parameters 111 for multiple emulated signal processing means 200 in a storage unit.

BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMENDESCRIPTION OF THE PREFERRED EMBODIMENTS

1 zeigt schematisch ein Beispiel für ein Signalverarbeitungsmittel 10, das gemäß der vorliegenden Erfindung emuliert werden soll. Im Folgenden kann das zu emulierende Signalverarbeitungsmittel auch als Originalsystem bezeichnet werden. Im Allgemeinen kann das zu emulierende Signalverarbeitungsmittel 10 ein beliebiges Hardware- oder Softwaresystem sein, das ein Ausgangssignal bereitstellt, beispielsweise eine digitale oder eine analoge Signalverarbeitungsvorrichtung, eine digitale oder eine analoge elektrische Schaltung, eine elektromechanische Schaltung, ein Effektprozessor, ein Verstärker usw. In einer seiner einfachsten Versionen könnte das Signalverarbeitungsmittel 10 eine oszillierende Schaltung, wie in 1 gezeigt, sein. Ein rudimentärer RC-Oszillator verwendet Widerstände 11 und einen Kondensator 12 zusammen mit einem Verstärker 13, um ein Sinuswellen-Ausgangssignal y(t) bei Knoten 15 ohne jegliches eintreffendes Signal zu erzeugen. Die Spannung des Kondensators 12 ist das interne Zustandssignal x(t). Die regenerative Rückkopplung der Schaltung steht in Beziehung zur Fähigkeit des Kondensators, eine elektrische Ladung zu speichern. In komplexeren Fällen kann eine Signaleingabe u(t) an das Signalverarbeitungsmittel bereitgestellt werden, die anschließend in dem Signalverarbeitungsmittel verarbeitet wird, um ein Ausgangssignal y(t) abzuleiten. Das Eingangssignal u(t) kann ein Audio-Eingangssignal sein und das Ausgangssignal y(t) kann ein verarbeitetes Audiosignal sein, das an einen Lautsprecher oder andere Vorrichtungen bereitgestellt wird. 1 shows schematically an example of a signal processing means 10 to be emulated according to the present invention. In the following, the signal processing means to be emulated may also be referred to as the original system. In general, the signal processing means 10 to be emulated may be any hardware or software system that provides an output signal, for example a digital or an analog signal processing device, a digital or an analog electrical circuit, an electromechanical circuit, an effects processor, an amplifier, etc. In one of its simplest versions, the signal processing means 10 could be an oscillating circuit as in 1 shown. A rudimentary RC oscillator uses resistors 11 and a capacitor 12 together with an amplifier 13 to produce a sine wave output signal y(t) at node 15 in the absence of any incoming signal. The voltage of the capacitor 12 is the internal state signal x(t). The regenerative feedback of the circuit is related to the ability of the capacitor to store an electrical charge. In more complex cases, a signal input u(t) may be provided to the signal processing means which is subsequently processed in the signal processing means to derive an output signal y(t). The input signal u(t) may be an audio input signal and the output signal y(t) may be a processed audio signal provided to a loudspeaker or other device.

Bei einem Zustandssystemansatz stehen die Zustände in Beziehung zur gespeicherten Energie in einem System, d.h. die Zustände sind die Spannung, die in den Kondensatoren gespeichert ist. Diese Spannung ist aufgrund der Oszillation der Schaltung zeitlich variabel. Der erste Schritt des bereitgestellten Verfahrens zum Emulieren eines Signalverarbeitungsmittels besteht im Abtasten des Ausgangssignals y(t) und des Zustandssignals x(t) zu n unterschiedlichen Zeitschritten, wobei n eine ganze Zahl ist, um die Ausgangssignalwerte yn und xn für alle Zeitschritte n zu erhalten. Der Zustandsraumansatz, auch als Phasenraumansatz bekannt, ist ein leistungsfähiger mathematischer Formalismus, der ein beliebiges System beschreiben kann, das durch ein System gewöhnlicher Differentialgleichungen charakterisiert werden kann. Bei kontinuierlicher Zeit kann er geschrieben werden als: x ˙ ( t ) = f ( u ( t ) , x ( t ) ) y ( t ) = g ( u ( t ) , x ( t ) )

Figure DE202019006054U1_0004
wobei u(t) der Vektor von Eingaben in das System ist, y(t) der Vektor von Ausgaben ist und x(t) die internen Zustände' des Systems sind. Dies kann auch durch Verketten der internen Zustände mit der Eingabe oder der Ausgabe in Form einer einzelnen Gleichung geschrieben werden: x ˙ ( t ) y ( t ) = f a ( u ( t ) x ( t ) ) .
Figure DE202019006054U1_0005
In a state system approach, the states are related to the stored energy in a system, i.e., the states are the voltage stored in the capacitors. This voltage is time-varying due to the oscillation of the circuit. The first step of the provided method for emulating a signal processing means is to sample the output signal y(t) and the state signal x(t) at n different time steps, where n is an integer, to obtain the output signal values y n and x n for all time steps n. The state space approach, also known as the phase space approach, is a powerful mathematical formalism that can describe any system that can be characterized by a system of ordinary differential equations. In continuous time, it can be written as: x ˙ ( t ) = e ( u ( t ) , x ( t ) ) y ( t ) = G ( u ( t ) , x ( t ) )
Figure DE202019006054U1_0004
where u(t) is the vector of inputs to the system, y(t) is the vector of outputs, and x(t) are the internal states of the system. This can also be written in the form of a single equation by concatenating the internal states with the input or the output: x ˙ ( t ) y ( t ) = e a ( u ( t ) x ( t ) ) .
Figure DE202019006054U1_0005

Die Funktion fa beschreibt daher das Verhalten des Systems vollständig. Es ist zu beachten, dass in Fällen, in denen der Zustand eines Systems direkt als die Ausgabe genommen wird, keine Notwendigkeit für jegliche y-Variablen besteht. Das zeitdiskrete Analogon unter der Annahme konstanter Zeitschritte, wobei n = τ · t, wobei τ den Abtastintervall darstellt, wird gegeben durch: x n + 1 y n = f d ( u n x n )

Figure DE202019006054U1_0006
wodurch das Verhalten des Systems basierend auf seinen Eingaben und vorherigen Zuständen iterativ berechnet werden kann.The function f a therefore completely describes the behavior of the system. Note that in cases where the state of a system is taken directly as the output, there is no need for any y-variable. The discrete-time analogue assuming constant time steps, where n = τ · t, where τ represents the sampling interval, is given by: x n + 1 y n = e d ( u n x n )
Figure DE202019006054U1_0006
which allows the behavior of the system to be iteratively calculated based on its inputs and previous states.

In der vorliegenden Erfindung gestattet der Zugriff auf das zu emulierende Signalverarbeitungsmittel nicht nur, die Eingangs- und Ausgangssignale u(t) und y(t) des zu emulierenden Systems abzutasten, sondern gestattet, Zugriff auf das Signal x(t) zu erhalten, das den Zuständen des Systems entspricht. Wenn das System mit Test-Eingangssignalen u(t) gespeist wird und das Zustands- und das Ausgangssignal x(t) und y(t) jeweils zu diskreten Zeitpunkten abgetastet werden, kann ein großer Satz von Datenpunkten erhalten werden, welche die Eingabe- und Ausgabebeziehung der Funktion fd beschreiben. Um das Verhalten des Systems für eine beliebige Eingabe zu replizieren, können diese Daten verwendet werden, um eine neue Funktion f^d zu erzeugen, die fd an einen geeigneten Genauigkeitsgrad annähert.In the present invention, access to the signal processing means to be emulated not only allows one to sample the input and output signals u(t) and y(t) of the system to be emulated, but allows one to obtain access to the signal x(t) corresponding to the states of the system. If the system is fed with test input signals u(t) and the state and output signals x(t) and y(t) are each sampled at discrete times, a large set of data points can be obtained which describe the input and output relationship of the function f d . To replicate the behavior of the system for an arbitrary input, this data can be used to generate a new function f^ d which approximates f d to a suitable degree of accuracy.

Dabei handelt es sich im Wesentlichen um eine Regressionsaufgabe und könnte über eine beliebige Anzahl von Standardtechniken angegangen werden. Sie ist jedoch gut für die Anwendung eines künstlichen neuronalen Netzwerks (artificial neural network - ANN) geeignet, die als universelle Approximatoren bekannt sind, d.h. sie sind in der Lage, sich beliebig nah an eine beliebige kontinuierliche Funktion von N realen Variablen anzunähern. Das System kann dann wie üblich iterativ simuliert werden, aber unter Verwendung der angenäherten Funktion f^d anstelle einer fd, die durch Diskretisierung analytisch abgeleitet wurde. Das System kann dann wie folgt geschrieben werden: x n + 1 y n = f ^ d ( u n x n ) .

Figure DE202019006054U1_0007
This is essentially a regression task and could be approached via any number of standard techniques. However, it is well suited to the application of an artificial neural network (ANN), which are known as universal approximators, i.e. they are able to approximate arbitrarily closely to any continuous function of N real variables. The system can then be simulated iteratively as usual, but using the approximated function f^ d rather than an f d derived analytically by discretization. The system can then be written as follows: x n + 1 y n = e ^ d ( u n x n ) .
Figure DE202019006054U1_0007

Die Wahl, welche Datenmengen als die Zustände des Systems zu nehmen sind, ist nicht so streng, wie sie zuerst erscheinen mag. Während die realen Zustände des Systems die Datenmengen sind, die Energie speichern und somit Informationen, z. B. Kondensatoren, werden andere Datenmengen in dem System mit diesen Zuständen durch eine Zuordnung ins Verhältnis gesetzt, die im besten Fall linear, aber wahrscheinlich nicht linear ist. Dies bedeutet, dass, solange wir über ausreichend gemessene Datenmengen, verglichen mit der Anzahl von Zuständen des Systems, verfügen, sollten wir in der Lage sein, seine Dynamik zu erkennen. Die formale Obergrenze der Anzahl benötigter unabhängiger Messungen ist durch den Einbettungssatz von Whitney als 2m+1 angegeben, wobei m die Anzahl von Zuständen ist. Außerdem gestattet uns Taken's Theorem, einige oder alle dieser Messungen mit zeitverzögerten Versionen einer anderen Messung zu ersetzen. In der Praxis kann die Dynamik dieses transformierten Zustandsraums komplizierter sein und somit ist es bevorzugt, Messungen zu verwenden, die sich so nah wie möglich an den realen Zuständen des Systems befinden.The choice of which data sets to take as the states of the system is not as strict as it may first seem. While the real states of the system are the data sets that store energy and thus information, e.g. capacitors, other data sets in the system are related to these states by a mapping that is linear at best but probably not linear. This means that as long as we have sufficient measured data sets compared to the number of states of the system, we should be able to discern its dynamics. The formal upper bound on the number of independent measurements needed is given by Whitney's embedding theorem as 2m+1, where m is the number of states. Furthermore, Taken's theorem allows us to replace some or all of these measurements with time-delayed versions of another measurement. In practice, the dynamics of this transformed state space can be more complicated and thus it is preferable to use measurements that are as close as possible to the real states of the system.

Die Formulierung des Problems in der Begrifflichkeit des Zustandsraums ist vorteilhaft, da sie bedeutet, dass die Funktion fd, die angenähert werden muss, eine rein statische, d.h. gedächtnislose, Zuordnung ist. Das vorgeschlagene Verfahren ist verschieden von der autoregressiven Modellierung, die die nächsthäufige skalare Ausgabe basierend auf einer Abfolge vergangener Beobachtungen prädiziert. Anstatt nur das Eingabe-Ausgabe-Verhalten des Systems zu betrachten, bildet die vorliegende Erfindung aus dem Zustandsraum auf sich selbst ab. In der Ausdrucksweise dynamischer Systeme bedeutet dies, dass der stückweise Strom entlang der Trajektorie des Systems erlernt ist. Ein optionales Eingangssignal u kann als ein Parameter, der diesen Strom beeinflusst, betrachtet werden.The formulation of the problem in state space terms is advantageous because it means that the function f d that needs to be approximated is a purely static, i.e. memoryless, mapping. The proposed method is different from autoregressive modeling, which predicts the next most frequent scalar output based on a sequence of past observations. Instead of only considering the input-output behavior of the system, the present invention maps from the state space to itself. In dynamic systems terms, this means that the piecewise stream along the trajectory of the system is learned. An optional input signal u can be considered as a parameter that influences this stream.

Der Kern des in der vorliegenden Erfindung eingesetzten neuronalen Netzwerksystems ist ein Mehrschichtiges Perzeptron (Multilayer Perceptron - MLP), d.h. eine Reihe von k eng verbundenen Schichten mit einer Aktivierungsfunktion. Die Anzahl von Schichten und die Schichtbreite sind darauf abgestimmt, dem modellierten spezifischen System gerecht zu werden, wobei kleine Systeme potenziell nur kleine Netzwerke benötigen. Die Aktivierungsfunktion kann geändert werden, um zu dem System zu passen, aber im Allgemeinen erzeugt ein Sättigen von Nichtlinearitäten, wie etwa tanh, gute Ergebnisse. Diese Funktionen sind vorteilhaft, da zu emulierende Signalverarbeitungsmittel, wie elektronische Schaltungen, im Allgemeinen Nichtlinearitäten des sättigenden Typs enthalten. Einfachere Aktivierungen, wie etwa Gleichrichter (Rectified Linear Units - ReLU), können unter dem Vorbehalt verwendet werden, dass die Größe des Netzwerks dann im Allgemeinen größer sein muss. Es können jedoch auch andere Architekturen und Strukturen des neuronalen Netzwerksystems verwendet werden.The core of the neural network system used in the present invention is a Multilayer Perceptron (MLP), i.e. a series of k closely connected layers with an activation function. The number of layers and the layer width are tailored to suit the specific system being modelled, with small systems potentially requiring only small networks. The activation function can be changed to suit the system, but in general saturating nonlinearities such as tanh produces good results. These functions are advantageous because signal processing means to be emulated, such as electronic circuits, generally contain nonlinearities of the saturating type. Simpler activations such as Rectified Linear Units (ReLU) can be used with the caveat that the size of the network must then generally be larger. However, other architectures and structures of the neural network system can also be used.

Das vorgeschlagene neuronale Netzwerksystem 110, das bei dem vorgeschlagenen Verfahren zum Emulieren eines Signalverarbeitungsmittels 10 von 1 verwendet wird, ist in 2 als ein System 100, das zum Emulieren eines Signalverarbeitungsmittels 10 verwendet wird, gezeigt.The proposed neural network system 110 used in the proposed method for emulating a signal processing means 10 of 1 is used in 2 as a system 100 used to emulate a signal processing means 10.

Die erhaltenen abgetasteten Daten des zu emulierenden Signalverarbeitungsmittels 10 zu n diskreten Zeitschritten werden zum Training des neuronalen Netzwerks 110 verwendet, wobei n eine ganze Zahl ist. Konkret werden die erhaltenen abgetasteten Zustandswerte xn für mindestens einen Zustand des zu emulierenden Signalverarbeitungsmittels und die Ausgangssignalwerte yn des zu emulierenden Signalverarbeitungsmittels zum Training des neuronalen Netzwerksystems 110 verwendet. In einigen Fällen ist jedoch das Ausgangssignal identisch mit einem internen Zustandssignal. In einem solchen Fall sind die Informationen redundant und es kann nur das Zustandssignal verwendet werden. Das neuronale Netzwerksystem 110 besteht aus einer Eingabeschicht 112 mit mindestens einem Eingabeknoten 113 (hier 131-1, 113-2), einer Anzahl von verborgenen Schichten 114 mit einer Mehrzahl von Knoten der verborgenen Schichten 115 und einer Ausgabeschicht 116 mit mindestens einem Ausgabeknoten 117 (hier 117-1, 117-2). Im Falle, dass ein interner Zustand des Systems auch die Ausgabe des Signalverarbeitungsmittels ist, werden dann nur die Zustandssignalwerte verwendet, um das neuronale Netzwerksystem 110 zu trainieren.The obtained sampled data of the signal processing means 10 to be emulated at n discrete time steps are used to train the neural network 110, where n is an integer. Specifically, the obtained sampled state values x n for at least one state of the signal processing means to be emulated and the output signal values y n of the signal processing means to be emulated are used to train the neural network system 110. In some cases, however, the output signal is identical to an internal state signal. In such a case, the information is redundant and only the state signal can be used. The neural network system 110 consists of an input layer 112 with at least one input node 113 (here 113-1, 113-2), a number of hidden layers 114 with a plurality of nodes of the hidden layers 115 and an output layer 116 with at least one output node 117 (here 117-1, 117-2). In the event that an internal state of the system is also the output of the signal processing means, then only the state signal values are used to train the neural network system 110.

Aus dem Satz von Trainingsdaten 120 empfängt die Eingabeschicht 112 iterativ interne Zustandswerte xn für alle Zeitschritte n. Gegebenenfalls kann sie außerdem abgetastete Eingangssignalwerte un empfangen, im Falle, dass das zu emulierende Signalverarbeitungsmittel ein Eingangssignal verarbeitet, um ein Ausgangssignal abzuleiten, wie vorstehend erörtert.From the set of training data 120, the input layer 112 iteratively receives internal state values x n for all time steps n. If necessary, it can also receive sampled input signals nal values u n received in case the signal processing means to be emulated processes an input signal to derive an output signal as discussed above.

Das Training von neuronalen Netzwerksystemen 110 ist im Fachgebiet wohlbekannt. Während des Trainings eines neuronalen Netzwerksystems 110 werden die Parameter 111 des Systems, die sogenannten Gewichte, derart geändert, dass eine Norm zwischen der tatsächlichen Ausgabe des neuronalen Netzwerkssystems 110 und den abgetasteten Daten optimiert wird, bis ein bestimmtes Kriterium zum Anhalten des Trainings erfüllt ist. Im vorliegenden Fall besteht die Ausgabeschicht 116 aus den Signalausgabewerten y'n, und den internen Zustandssignalwerten x'n+1, die während des Trainings erzeugt werden, die mit den angestrebten abgetasteten Ausgangssignalwerten yn des Originalsystems 10 bzw. den angestrebten abgetasteten internen Zustandssignalwerten xn des Originalsystems 10 verglichen werden. Eine Verlustfunktion 150 wird als eine Metrik der Annäherung zwischen den Ausgabewerten y'n, x'n+1 der Ausgabeschicht 116 des neuronalen Netzwerksystems 110 während des Trainings und den abgetasteten Ausgaben yn, xn+1 des Originalsystems 10 berechnet. Die Optimierung des iterierten neuronalen Netzwerksystems 110 wird durchgeführt, indem nur Änderungen an den Parametern 111 des neuronalen Netzwerks 20 behalten werden, die eine niedrigere Verlustfunktion ergeben, wobei der Verlust 150 nach einer bestimmten Anzahl von Iterationen zu einem bestimmten Wert konvergiert, der basierend auf einer vorbestimmten Erfolgsbedingung als eine erfolgreiche Annäherung akzeptiert wird. Es wird betont, dass in der gesamten Beschreibung ein Originalsystem mehr als einen internen Zustand aufweisen kann.The training of neural network systems 110 is well known in the art. During training of a neural network system 110, the parameters 111 of the system, called weights, are changed such that a norm between the actual output of the neural network system 110 and the sampled data is optimized until a certain criterion for stopping training is met. In the present case, the output layer 116 consists of the signal output values y' n , and the internal state signal values x' n+1 generated during training, which are compared with the target sampled output signal values y n of the original system 10 and the target sampled internal state signal values x n of the original system 10, respectively. A loss function 150 is calculated as a metric of the approximation between the output values y' n , x' n+1 of the output layer 116 of the neural network system 110 during training and the sampled outputs y n , x n+1 of the original system 10. The optimization of the iterated neural network system 110 is performed by keeping only changes to the parameters 111 of the neural network 20 that yield a lower loss function, where the loss 150 converges to a certain value after a certain number of iterations, which is accepted as a successful approximation based on a predetermined success condition. It is emphasized that throughout the description an original system may have more than one internal state.

Vorteilhaft ist es, dass die Zustände xn und deren Werte zum neuen Zeitschritt xn+1 wahrscheinlich in enger Beziehung stehen. Daher ist das neuronale Netzwerksystem 110, wie in 2 gezeigt, auf eine Residuum-basierte Weise unter Verwendung einer schichtüberspringenden (skip-layer) Verbindung vor der Ausgabeschicht 116 strukturiert. Schichtüberspringende Verbindungen sind in verschiedenen Bereichen erfolgreich angewendet worden. Die Schlussfolgerung daraus ist, dass das Netzwerk ein Residuum der Zustandssignale, verglichen mit deren vorherigem Wert, eher als die neuen Werte direkt lernt. Dies hat die Trainingsgeschwindigkeit und die Genauigkeit im Falle der betrachteten Systeme stetig erhöht. Daher werden vor dem Ausgabeknoten 117-2, der sich auf den nächsten internen Zustandswert xn+1 bezieht, die vorherigen Zustände und deren Inkremente bei Element 119 summiert, um den nächsten internen Zustandswert xn+1 zu erhalten. In einer anderen Ausführungsform jedoch können die Zustandswerte selbst zum Training ohne einen Summierer 119 verwendet werden. Alternativ dazu könnten nur die Inkremente durch eine Rückkopplungsschleife geführt werden und das Summieren des Inkrements und des letzten aktuellen Zustands könnten innerhalb der nächsten Iteration stattfinden.It is advantageous that the states x n and their values at the new time step x n+1 are likely to be closely related. Therefore, the neural network system 110, as in 2 shown, structured in a residue-based manner using a skip-layer connection before the output layer 116. Skip-layer connections have been successfully applied in various fields. The conclusion is that the network learns a residue of the state signals compared to their previous value rather than the new values directly. This has steadily increased the training speed and accuracy in the case of the systems considered. Therefore, before the output node 117-2, which refers to the next internal state value x n+1 , the previous states and their increments are summed at element 119 to obtain the next internal state value x n+1 . In another embodiment, however, the state values themselves may be used for training without a summer 119. Alternatively, only the increments could be passed through a feedback loop and the summing of the increment and the last current state could take place within the next iteration.

Nachdem das Training angehalten wurde, wird ein Satz von Parametern 111 des neuronalen Netzwerksystems 110 auf einer Speichereinheit 140 gespeichert. Der Satz von Parametern kann Folgende umfassen: die Werte von trainierten Gewichten des neuronalen Netzwerksystems 110, die Anzahl von verborgenen Schichten 114 und die Anzahl von Knoten der Eingabeschicht 112, jeder verborgenen Schicht 114 und der Ausgabeschicht 116 des neuronalen Netzwerksystems 110.After training is stopped, a set of parameters 111 of the neural network system 110 is stored on a storage unit 140. The set of parameters may include: the values of trained weights of the neural network system 110, the number of hidden layers 114, and the number of nodes of the input layer 112, each hidden layer 114, and the output layer 116 of the neural network system 110.

Folglich umfasst das vorgeschlagene Verfahren zum Emulieren eines Signalverarbeitungsmittels 10 den Schritt S100 des Erhaltens abgetasteter Daten zu n diskreten Zeitschritten des zu emulierenden Signalverarbeitungsmittels 10, S110 Training eines neuronalen Netzwerksystems 110 mit jenen abgetasteten Daten und S120 Speichern eines Satzes von Parametern des trainierten neuronalen Netzwerksystems 110. Der Schritt S100 des Erhaltens von abgetasteten Daten umfasst das Erhalten von abgetasteten Daten zu diskreten Zeitschritten n von Ausgangssignalwerten yn, wie durch das zu emulierende Signalverarbeitungsmittel 10 ausgegeben, und mindestens eines internen Zustandssignalwerts xn eines internen Zustands des zu emulierenden Signalverarbeitungsmittels 10. Der Schritt S110 des Trainings eines neuronalen Netzwerksystems 110 umfasst das Training eines neuronalen Netzwerksystems 110 auf einer Prozessoreinheit 130 (schematisch in 2 gezeigt) mit einem Satz von Trainingsdaten, wobei die Trainingsdaten die erhaltenen abgetasteten Daten des zu emulierenden Signalverarbeitungsmittels 10 sind, wobei das neuronale Netzwerksystem 110 Folgendes aufweist: eine Eingabeschicht 112, mindestens eine verborgene Schicht 114 und eine Ausgabeschicht 116, wobei eine Eingabe in das neuronale Netzwerksystem 110 während des Trainings der mindestens eine interne Zustandssignalwert xn zum Zeitschritt n ist und eine Ausgabe des neuronalen Netzwerksystems 110 ein Wert ist, der den mindestens einen internen Zustandssignalwert xn+1 der Signalverarbeitungsvorrichtung zum Zeitschritt n+1 darstellt, und die Ausgangssignalwerte yn der Signalverarbeitungsvorrichtung. Der Schritt des Speicherns S120 eines Satzes von Parametern 111 umfasst den Schritt des Speicherns eines Satzes von Parametern 111 des trainierten neuronalen Netzwerksystems 110 auf einer Speichereinheit 140.Consequently, the proposed method for emulating a signal processing means 10 comprises the step S100 of obtaining sampled data at n discrete time steps of the signal processing means 10 to be emulated, S110 training a neural network system 110 with those sampled data and S120 storing a set of parameters of the trained neural network system 110. The step S100 of obtaining sampled data comprises obtaining sampled data at discrete time steps n of output signal values y n as output by the signal processing means 10 to be emulated and at least one internal state signal value x n of an internal state of the signal processing means 10 to be emulated. The step S110 of training a neural network system 110 comprises training a neural network system 110 on a processor unit 130 (schematically shown in 2 shown) with a set of training data, the training data being the obtained sampled data of the signal processing means 10 to be emulated, the neural network system 110 comprising: an input layer 112, at least one hidden layer 114 and an output layer 116, wherein an input to the neural network system 110 during training is the at least one internal state signal value x n at time step n and an output of the neural network system 110 is a value representing the at least one internal state signal value x n+1 of the signal processing device at time step n+1 and the output signal values y n of the signal processing device. The step of storing S120 a set of parameters 111 comprises the step of storing a set of parameters 111 of the trained neural network system 110 on a storage unit 140.

3 und 4 zeigen Ausführungsformen des emulierten Signalverarbeitungsmittels 200, abgeleitet von dem vorstehend beschriebenen Verfahren zum Emulieren einer Signalverarbeitungsvorrichtung 10. Somit ist das Training beendet und nun wird das emulierte Signalverarbeitungsmittel 200, umfassend ein trainiertes neuronales Netzwerksystem 210, verwendet, um ein Signal zu verarbeiten. Wie vorstehend, besteht das nun trainierte neuronale Netzwerksystem 210 wiederum aus einer Eingabeschicht 212 mit mindestens einem Eingabeknoten 213, einer Anzahl von verborgenen Schichten 214 mit einer Mehrzahl von Knoten der verborgenen Schichten 215 und einer Ausgabeschicht 216 mit mindestens einem Ausgabeknoten 217. Ein Ausgangssignalwert yn wird zu jedem Zeitschritt n des erfindungsgemäßen Verfahrens abhängig von dem internen Prozess und gegebenenfalls auch abhängig von einer externen Signaleingabe un erzeugt. Ohne Signaleingabe arbeitet das emulierte Signalverarbeitungsmittel 200 als eine autonome Signalquelle. 3 and 4 show embodiments of the emulated signal processing means 200, derived from the method described above for emulating a signal processing device 10. Thus, the training is finished and now the emulated signal processing means 200, comprising a trained neural network system 210, is used to process a signal. As above, the now trained neural network system 210 again consists of an input layer 212 with at least one input node 213, a number of hidden layers 214 with a plurality of nodes of the hidden layers 215 and an output layer 216 with at least one output node 217. An output signal value y n is generated at each time step n of the method according to the invention depending on the internal process and possibly also depending on an external signal input u n . Without signal input, the emulated signal processing means 200 operates as an autonomous signal source.

Für jeden Zeitschritt oder jede Iteration im Zustandsraum empfangen die verborgenen Schichten 214 des trainierten neuronalen Netzwerksystems 110 mindestens eine Eingabe durch eine Eingabeschicht 212 und erzeugen Ausgaben durch eine Ausgabeschicht 216, wobei die Eingaben einen aktuellen Zustand des Systems xn enthalten und die Ausgabe sowohl eine Signalausgabe yn als auch ein Inkrement enthält, das am Summierer 219 mit dem aktuellen Zustand des Systems summiert wird, um einen nächsten Zustand des Systems xn+1 zu erzeugen. Während das Verarbeitungsverfahren zur nächsten Iteration fortschreitet, wird der nächste Zustand des Systems durch eine Rückkopplungsschleife 218 an die nächste Iteration weitergegeben, wo er bei Eingabe in den Eingabeknoten 213-2 zu dem neuen aktuellen Zustand des Systems wird. Das emulierte Signalverarbeitungsmittel 200 stellt als eine Ausgabe ein Signal zn bereit. Üblicherweise ist die Ausgabe zn des emulierten Signalverarbeitungsmittels 200 gleich der Ausgabe des trainierten neuronalen Netzwerks. Jedoch könnte ein weiterer Verarbeitungsschritt zwischen der Ausgabe des trainierten neuronalen Netzwerks und der Ausgabe des emulierten Signalverarbeitungsmittels 200 angewendet werden, sodass zn von yn abhängen kann, aber eventuell nicht identisch ist.For each time step or iteration in state space, the hidden layers 214 of the trained neural network system 110 receive at least one input through an input layer 212 and produce outputs through an output layer 216, where the inputs include a current state of the system x n and the output includes both a signal output y n and an increment that is summed with the current state of the system at summer 219 to produce a next state of the system x n+1 . As the processing method proceeds to the next iteration, the next state of the system is passed through a feedback loop 218 to the next iteration where it becomes the new current state of the system upon input to the input node 213-2. The emulated signal processing means 200 provides as an output a signal z n . Typically, the output z n of the emulated signal processing means 200 is equal to the output of the trained neural network. However, a further processing step could be applied between the output of the trained neural network and the output of the emulated signal processing means 200, so that z n may depend on y n but may not be identical.

Das erfindungsgemäße emulierte Signalverarbeitungsmittel 200 setzt zum Verarbeiten die Prozessoreinheit 230 (nicht gezeigt) ein. Das emulierte Signalverarbeitungsmittel 200 kann in Software, in Hardware oder in einer Mischung von beiden bereitgestellt sein. Die Ausgabe des emulierten Signalverarbeitungsmittels 200 ist ein physisches/elektrisches Signal.The emulated signal processing means 200 according to the invention uses the processor unit 230 (not shown) for processing. The emulated signal processing means 200 can be provided in software, in hardware or in a mixture of both. The output of the emulated signal processing means 200 is a physical/electrical signal.

In einer alternativen Ausführungsform könnten nur die Inkremente durch eine Rückkopplungsschleife geführt werden und das Summieren des Inkrements und des letzten aktuellen Zustands könnten innerhalb der nächsten Iteration stattfinden.In an alternative embodiment, only the increments could be fed through a feedback loop and the summation of the increment and the last current state could take place within the next iteration.

4 zeigt ein emuliertes Signalverarbeitungsmittel 200 von 3 ohne das Eingangssignal un. Alles andere bleibt das Gleiche wie in 3. 4 shows an emulated signal processing means 200 of 3 without the input signal u n . Everything else remains the same as in 3 .

In einer Audioanwendung wird eine spezifische Implementierung der ersten Ausführungsform als eine virtuelle analoge Emulation einer Dioden-Begrenzer-Schaltung verwendet. Der digitale Signalprozessor läuft im Audiobereich bei einer Abtastfrequenz von beispielsweise 44,1 kHz, wobei der iterative Rechenprozess 2 44100 Mal pro Sekunde bei gleichmäßig beabstandeten Zeitschritten zwischen Abtastungen iteriert wird. Ohne ein Eingangssignal un könnte das iterative Rechenverfahren immer noch ein Ausgangssignal yn erzeugen, z. B. als eine Oszillatorquelle fungieren. Mit einem eintreffenden Audiosignal un, z. B. einem digitalisierten Audiosignal von einer elektrischen Gitarre, erzeugt das Verfahren zur digitalen Signalverarbeitung eine ausgehende Abtastung (im Folgenden: Sample) zn=yn für jedes eingehende Sample un und verarbeitet somit kontinuierlich den Audio-Datenstrom.In an audio application, a specific implementation of the first embodiment is used as a virtual analog emulation of a diode clipper circuit. The digital signal processor runs in the audio domain at a sampling frequency of, for example, 44.1 kHz, with the iterative computation process 2 iterated 44100 times per second with evenly spaced time steps between samples. Without an input signal u n , the iterative computation method could still produce an output signal y n , e.g. acting as an oscillator source. With an incoming audio signal u n , e.g. a digitized audio signal from an electric guitar, the digital signal processing method produces an outgoing sample z n =y n for each incoming sample u n , thus continuously processing the audio data stream.

Für eine zweite bevorzugte Ausführungsform der Erfindung zeigt 5 ein schematisches Strukturdiagramm eines emulierten Signalverarbeitungsmittels 200, das von dem Verfahren zum Emulieren eines Signalverarbeitungsmittels abgeleitet wurde. Das trainierte neuronale Netzwerksystem 210 wird in jeder Verarbeitungsiteration verwendet, um einen Ausgangssignalwert zn zu erzeugen. Für jeden Zeitschritt oder jede Iteration des Prozesses kann optional ein Steuerparameterwert cn empfangen werden. Optional kann, wie vorstehend, auch ein Eingangssignalwert un empfangen werden. Die Eingabeschicht 212 des neuronalen Netzwerksystems 210 empfängt die optionale Signaleingabe un, die internen Zustandssignalwerte xn und eine Steuereingabe cn an den Knoten 213-1 bis 213-3. Diese Eingaben sind mit den Knoten 215 der verborgenen Schicht 214 verbunden, die aus neuronalen Schichten besteht, die jeweils aus mindestens einem neuronalen Knoten 215 bestehen, wobei die Knoten der aufeinanderfolgenden Schichten verbunden sind. Eine Ausgabeschicht 216 gibt eine optionale Zustandsausgabe sn, einen Ausgangssignalwert yn und eine Zustandsausgabe xn+1, die den Zustand der nächsten Iteration darstellt, an den Knoten 217-1, 217-2 aus. Während das Rechenverfahren zur nächsten Iteration fortschreitet, wird der nächste Zustand des Mittels 200 durch eine Rückkopplungsschleife 219 an die nächste Iteration weitergegeben, wo er zu dem neuen aktuellen Zustand wird. Die Verarbeitungsiteration erzeugt für jeden Satz von Eingangssignalwerten un und die Steuerparametereingabe cn einen Ausgangssignalwert zn und auch eine Statusangabeausgabe s, die Informationen über das dynamische System bereitstellt.For a second preferred embodiment of the invention, 5 a schematic structure diagram of an emulated signal processing means 200 derived from the method for emulating a signal processing means. The trained neural network system 210 is used in each processing iteration to produce an output signal value z n . For each time step or iteration of the process, a control parameter value c n may optionally be received. Optionally, as above, an input signal value u n may also be received. The input layer 212 of the neural network system 210 receives the optional signal input u n , the internal state signal values x n and a control input c n at the nodes 213-1 to 213-3. These inputs are connected to the nodes 215 of the hidden layer 214, which consists of neural layers each consisting of at least one neural node 215, the nodes of the successive layers being connected. An output layer 216 outputs an optional state output s n , an output signal value y n and a state output x n+1 representing the state of the next iteration to the nodes 217-1, 217-2. As the computational process proceeds to the next iteration, the next state of the means 200 is passed through a feedback loop 219 to the next iteration where it becomes the new current state. The processing iteration produces for each set of input signal values u n and the control parameter input c n an output signal value z n and also a status s statement output that provides information about the dynamic system.

In einer Variation der zweiten bevorzugten Ausführungsform wird die Variation der Abtastfrequenz des iterativen Verfahrens, verglichen mit der Abtastfrequenz eines iterativen Trainings, kompensiert. Bevor ein Inkrement mit dem aktuellen Zustand des Systems summiert wird, um einen nächsten Zustand des Systems xn+1, zu erzeugen, wird es durch einen Verstärkungsfaktor τ 250 skaliert, h τ = τ p τ t = F t F p

Figure DE202019006054U1_0008
wobei τp, τt die Zeitschritte sind, die zum Verarbeiten und zum Training verwendet werden, und gleichermaßen sind Fp und Ft die Abtastfrequenzen, die zum Verarbeiten und zum Training verwendet werden.In a variation of the second preferred embodiment, the variation of the sampling frequency of the iterative method is compensated compared to the sampling frequency of an iterative training. Before an increment is summed with the current state of the system to generate a next state of the system x n+1 , it is scaled by a gain factor τ 250 , H τ = τ p τ t = F t F p
Figure DE202019006054U1_0008
where τ p , τ t are the time steps used for processing and training, and similarly F p and F t are the sampling frequencies used for processing and training.

Es ist Vorsicht geboten, wenn diese Möglichkeit verwendet wird, um das System bei einer anderen Abtastfrequenz zu betreiben als jener, für die es trainiert wurde. Auch wenn die Zeitskala korrekt geändert wird, wird dadurch das System nicht gleichwertig zu einem, das bei der neuen Abtastfrequenz trainiert wurde. Beim Betreiben des Systems bei einer niedrigeren Abtastfrequenz als derjenigen, die zum Training verwendet wurde, steigt die Wahrscheinlichkeit des Alias-Effekts, der durch Elemente des erlernten Verhaltens eingeführt wird, welche die neue Nyquist-Grenze überschreiten. Das Betreiben des Systems bei einer höheren Abtastfrequenz als es trainiert wurde, stellt weniger Risiken dar, obwohl dem modellierten System potenziell Hochfrequenz-Verhaltensweisen fehlen, die vorhanden gewesen wären, wenn das System bei einer höheren Abtastfrequenz trainiert worden wäre. Überabtastung, verglichen mit Audiogeschwindigkeit, wird in den meisten Situationen empfohlen, da das System kein spezifisches Anti-Aliasing einsetzt und somit Alias-Effekte in den gleichen Situationen wie ein normales nichtlineares Zustandsraumsystem erzeugt.Caution should be exercised when using this facility to operate the system at a different sampling frequency than that for which it was trained. Even if the time scale is changed correctly, this does not make the system equivalent to one trained at the new sampling frequency. Operating the system at a lower sampling frequency than that used for training increases the likelihood of aliasing introduced by elements of the learned behavior that exceed the new Nyquist limit. Operating the system at a higher sampling frequency than it was trained at poses fewer risks, although the modeled system potentially lacks high frequency behaviors that would have been present had the system been trained at a higher sampling frequency. Oversampling, compared to audio speed, is recommended in most situations because the system does not employ specific anti-aliasing and thus produces aliasing in the same situations as a normal nonlinear state space system.

Es wird betont, dass in der vorstehenden zweiten Ausführungsform des emulierten Signalverarbeitungsmittels die Steuerparametereingabe cn, das Eingangssignal un und die Zustandsausgabe sn lediglich optional sind. Abhängig von dem zu emulierenden Signalverarbeitungsmittel können sie alle zusammen oder unabhängig als Eingaben bzw. Ausgaben des emulierten Signalverarbeitungsmittels verwendet werden.It is emphasized that in the above second embodiment of the emulated signal processing means, the control parameter input c n , the input signal u n and the state output s n are merely optional. Depending on the signal processing means to be emulated, they can all be used together or independently as inputs or outputs of the emulated signal processing means.

Zur weiteren Veranschaulichung der zuvor beschriebenen Ausführungsformen zeigt 6 ein Diagramm von drei Phasen I, II, III, wobei die erste Phase I ein Abtastprozess S100 zum Erhalten von abgetasteten Daten aus einem Signalverarbeitungsmittel 10 ist, wobei in einer zweiten Phase II die abgetasteten Daten bei dem Verfahren zum Emulieren eines Signalverarbeitungsmittels 10 beim Training S110 eines neuronalen Netzwerksystems 110 verwendet werden, welches ein iterativer Trainingsprozess 160 ist, wobei am Ende des Trainings ein Satz von Parametern 111 des neuronalen Netzwerksystems 110 bei Schritt S120 in einer Speichereinheit 140 gespeichert wird und wobei in einer dritten Phase diese gespeicherten Parameter 111 des neuronalen Netzwerksystems 110 ein trainiertes neuronales Netzwerksystem 210 definieren, das bei einer Prozessiteration 260 eines Verfahrens zur Signalverarbeitung verwendet wird, um ein verarbeitetes Signal z(t) bereitzustellen und auszugeben.To further illustrate the embodiments described above, 6 a diagram of three phases I, II, III, wherein the first phase I is a sampling process S100 for obtaining sampled data from a signal processing means 10, wherein in a second phase II the sampled data is used in the method for emulating a signal processing means 10 in training S110 a neural network system 110, which is an iterative training process 160, wherein at the end of the training a set of parameters 111 of the neural network system 110 is stored in a storage unit 140 in step S120 and wherein in a third phase these stored parameters 111 of the neural network system 110 define a trained neural network system 210 which is used in a process iteration 260 of a method for signal processing to provide and output a processed signal z(t).

7-9 zeigen drei unterschiedliche Signalverarbeitungsmittel 10, die gemäß der vorliegenden Erfindung emuliert und dann zum Verarbeiten von Signalen verwendet wurden. Ein Messsignal wurde auf die unterschiedlichen Signalverarbeitungsmittel 10 aufgebracht und das Zustands- xn sowie Ausgangssignal yn wurden unter Verwendung eines Analog-DigitalWandlers (analogue-to-digital converter - ADC) aufgezeichnet. Operationsverstärkerpuffer mit Verstärkungsfaktor Eins wurden verwendet, um die Messpunkte von der Last des ADC zu trennen. In einigen Situationen wurden Knotenspannungen an Stelle von Differentialspannungen über die Kondensatoren (d.h. die erforderlichen Zustände) aufgezeichnet. In diesen Fällen wurde die Differentialspannung bei der Nachbearbeitung durch eine lineare Kombination mit anderen aufgezeichneten Knotenspannungen wiederhergestellt. 7-9 show three different signal processing means 10 which were emulated according to the present invention and then used to process signals. A measurement signal was applied to the different signal processing means 10 and the state x n and output signal y n were recorded using an analog-to-digital converter (ADC). Unitary gain operational amplifier buffers were used to separate the measurement points from the load of the ADC. In some situations, node voltages were recorded instead of differential voltages across the capacitors (i.e. the required states). In these cases, the differential voltage was recovered in post-processing by a linear combination with other recorded node voltages.

Theoretisch kann ein beliebiges Signal verwendet werden, um die Messungen zu erzeugen, die zum Training des neuronalen Netzwerksystems 210 verwendet werden. In der Praxis müssen einige wichtige Betrachtungen angestellt werden. Im Gegensatz zu anderen Black-Box-Modellierungstechniken sind Messungen mit variierender Frequenzeingabe, z. B. ein Sinusdurchlauf, streng genommen nicht notwendig, um das Verhalten des fraglichen Systems zu erfassen. Dies liegt daran, weil das Verhalten zu allen Zeitskalen in den erlernten Zustandstrajektorien erfasst wird. Das gewählte Messsignal weist jedoch eine Anzahl wichtiger Einflüsse auf den Prozess auf.In theory, any signal can be used to generate the measurements used to train the neural network system 210. In practice, some important considerations must be made. Unlike other black-box modeling techniques, measurements with varying frequency input, e.g., a sine sweep, are not strictly necessary to capture the behavior of the system in question. This is because the behavior is captured at all time scales in the learned state trajectories. However, the measurement signal chosen has a number of important influences on the process.

Das Messsignal definiert den Teilbereich des Zustandsraums, der abgetastet wird. Bei komplizierten Systemen könnten spezifische Eingaben potentiell benötigt werden, um auf spezifische Teile des Zustandsraums zuzugreifen. Ein einfaches Beispiel dafür könnte eine Resonanzfilterschaltung sein. In diesem Falle würde ein Eingangssignal bei der Resonanzfrequenz die Schaltung viel stärker anregen als Signale bei anderen Frequenzen, wodurch potenziell nichtlineare Verhaltensweisen aufgedeckt würden, die nur bei Größenordnungen hoher Zustände erscheinen.The measurement signal defines the portion of the state space that is sampled. In complicated systems, specific inputs could potentially be needed to access specific parts of the state space. A simple example of this could be a resonant filter circuit. In this case, an input signal at the resonant frequency would excite the circuit much more strongly than signals at other frequencies, potentially revealing nonlinear behavior. which only appear at orders of magnitude of high states.

Es muss bei der für die Messungen verwendeten Abtastrate auch darauf geachtet werden, die obere Frequenz des Messsignals auf weit unterhalb der Nyquist-Frequenz zu begrenzen. Das liegt daran, dass der Prozess des Abtastens der Zustandssignale und Ausgaben bandbegrenzt ist. Komponenten, welche die Nyquist überschreiten, werden während des Abtastprozesses entfernt. Somit können Oberschwingungen, die in dem realen System erzeugt werden, verloren gehen. Dies bedeutet, dass die in Reaktion auf eine zu hohe Frequenz aufgezeichneten Zustandssignale die echte Zustandsraum-Trajektorie nicht länger widerspiegeln. Dies führt zu Messungen, die anscheinend die Beschränkung verletzen, dass jeder Punkt im Raum nur einer Trajektorie entsprechen kann. In der Praxis ist die Auswahl eines Messsignals ein Gleichgewicht zwischen diesen beiden Beschränkungen und kann auf das fragliche System zugeschnitten werden. Typische Eingangssignale für das System können gut funktionieren (z. B. Gitarre spielt, wenn ein Verzerrungspedal modelliert wird), wie auch sorgfältig angegebene Durchläufe. In dieser Schrift haben wir logarithmische Sinusdurchläufe von 10 Sekunden, kombiniert mit leisem (-20 dB) weißem Rauschen verwendet. Das Rauschen wurde auf 22 kHz bandbegrenzt. Die Amplitude dieses kombinierten Signals wurde dann linear von null auf den Verstärkungswert eins über die halbe Länge des Messsignals erhöht, um die Erfassung von ausreichend Datenpunkten nahe dem Ursprung des Zustandsraums sicherzustellen. Die Mindestfrequenz des Durchlaufs betrug 20 Hz und die Maximalfrequenz wurde bei 10 kHz gewählt, um eine ausreichende Menge des Zustandsraums abzudecken, ohne die Daten mit fiktionalen Trajektorien zu beschädigen. Eine Abtastrate von 192 kHz kann für Messung und Training verwendet werden. Das Training kann über 300 Epochen bei einer Batchgröße von 256 vorgenommen werden. Aufgrund der kleinen Größe der betrachteten Netzwerke wird für den Trainingsprozess keine GPU benötigt und er ist tatsächlich langsamer als das Training auf einer CPU mit SIMD-Funktionalität.Care must also be taken in the sampling rate used for measurements to limit the upper frequency of the measurement signal to well below the Nyquist frequency. This is because the process of sampling the state signals and outputs is band-limited. Components that exceed the Nyquist are removed during the sampling process. Thus, harmonics generated in the real system may be lost. This means that the state signals recorded in response to too high a frequency no longer reflect the true state-space trajectory. This leads to measurements that appear to violate the constraint that each point in space can correspond to only one trajectory. In practice, the selection of a measurement signal is a balance between these two constraints and can be tailored to the system in question. Typical input signals to the system may work well (e.g. guitar playing when modeling a distortion pedal), as may carefully specified sweeps. In this paper, we used logarithmic sine sweeps of 10 seconds combined with quiet (-20 dB) white noise. The noise was bandlimited to 22 kHz. The amplitude of this combined signal was then linearly increased from zero to unity gain over half the length of the measurement signal to ensure the collection of sufficient data points close to the origin of the state space. The minimum frequency of the sweep was 20 Hz and the maximum frequency was chosen at 10 kHz to cover a sufficient amount of the state space without corrupting the data with fictitious trajectories. A sampling rate of 192 kHz can be used for measurement and training. Training can be done over 300 epochs with a batch size of 256. Due to the small size of the networks considered, the training process does not require a GPU and is actually slower than training on a CPU with SIMD functionality.

Als ein erstes Beispiel für die anzunähernde Dynamik eines Signalverarbeitungsmittels zeigt 7A ein elektrisches Diagramm mit Zugriffspunkten einer Messung. Die gezeigte elektrische Schaltung 10, bestehend aus verdrahteten Dioden 14, Kondensatoren 12, Widerständen 11, und Masseverbinder kooperieren als ein sogenannter „Diodenbegrenzer“ („diode clipper“), der das Eingangssignal u(t) zu einem begrenzten' (,clipped') Ausgangssignal y(t) abhängig von dem Eingangssignal verzerrt. Bei kleinen Eingangssignalen (d.h. Spitzenspannungen unter annähernd 0,6 V) ist der durch die Dioden fließende Strom nahe null und die Schaltung reduziert sich auf einen einfachen RC-Tiefpassfilter. Bei größeren Signalwerten bewirken die Dioden, dass die Ausgabe gesättigt wird, und die Schaltung wird zu einem nichtlinearen Tiefpassfilter, wobei seine sofortige Grenzfrequenz steigt, wenn die Schaltung härter angesteuert wird.As a first example of the approximate dynamics of a signal processing device, 7A an electrical diagram with access points of a measurement. The shown electrical circuit 10, consisting of wired diodes 14, capacitors 12, resistors 11, and ground connectors cooperate as a so-called "diode clipper" which distorts the input signal u(t) to a clipped output signal y(t) depending on the input signal. For small input signals (i.e. peak voltages below approximately 0.6 V) the current flowing through the diodes is close to zero and the circuit reduces to a simple RC low-pass filter. For larger signal values the diodes cause the output to saturate and the circuit becomes a non-linear low-pass filter, with its instantaneous cutoff frequency increasing as the circuit is driven harder.

Das Originalsystem 10 ist in einer Messumgebung enthalten und digitale Werte und eine Spannungssignaleingabe, eine Spannungssignalausgabe y(t), die auch ein Zustand des Systems x(t) ist, da nur ein Kondensator und somit ein Zustand vorhanden ist, werden abgetastet und der Wert dieses Zustands ist die Ausgabe des Systems. Ein gepuffertes Verstärkungselement 16 wird in die Schaltungsanordnung platziert, um zu verhindern, dass die Spannungsmessung die Dynamik des Originalsystems stört. Ein neuronales Netzwerk mit tanh-Transferfunktionen und zwei verborgenen Schichten mit jeweils acht Knoten wurde zum Training und zur Verarbeitung der Daten verwendet. 7B zeigt einen exzellenten Abgleich für die Zeitbereichssignalantwort zwischen der Messung, d.h. dem abgetasteten Ausgangssignal 41, gezeigt als gestrichelte Linien, und der Ausgangssignalausgabe 31 des neuronalen Netzwerksystems 20, das wie vorstehend beschrieben trainiert und bei der Verarbeitung verwendet wurde. 7C zeigt den entsprechenden Frequenzbereichsabgleich für das gleiche Beispiel.The original system 10 is contained in a measurement environment and digital values and a voltage signal input, a voltage signal output y(t), which is also a state of the system x(t) since there is only one capacitor and thus one state, are sampled and the value of this state is the output of the system. A buffered gain element 16 is placed in the circuitry to prevent the voltage measurement from disturbing the dynamics of the original system. A neural network with tanh transfer functions and two hidden layers with eight nodes each was used to train and process the data. 7B shows an excellent match for the time domain signal response between the measurement, ie the sampled output signal 41 shown as dashed lines, and the output signal output 31 of the neural network system 20 trained and used in processing as described above. 7C shows the corresponding frequency range adjustment for the same example.

Als ein zweites Beispiel für eine anzunähernde Dynamik eines Signalverarbeitungsmittels zeigt 8A ein elektrisches Diagramm mit Zugriffspunkten einer Messung 18. Die gezeigte elektrische Schaltung, bestehend aus verdrahteten Dioden 14, Kondensatoren 12, Widerständen 11, und Masseverbinder kooperieren als ein sogenannter „Audiosignalbegrenzer 2. Ordnung“, der das Eingangssignal u(t) zu einem ,begrenzten' Ausgangssignal abhängig von dem Eingangssignal verzerrt. Das Originalsystem 10 ist in einer Messumgebung enthalten und digitale Werte werden für eine Spannungssignaleingabe u(t), eine Spannungssignalausgabe y(t), die auch ein Zustand des Systems x2(t) ist, abgetastet. Ein zweiter Zustand x1(t) des Systems wird als ein Differentialzustand x1 = v - x2 zwischen der abgetasteten Spannungssignalausgabe y(t) und einer Spannung, die an einem Zugriffspunkt 18 abgetastet wird, berechnet. Gepufferte Verstärkungselemente 16 werden in die Schaltungsanordnung platziert, um zu verhindern, dass die Spannungsmessung die Dynamik des Originalsystems stört. Ein neuronales Netzwerksystem 210 mit 3 verborgenen Schichten, die jeweils 4 tanh-Knoten aufweisen, wurde zum Emulieren dieses Signalverarbeitungsmittels 10 verwendet. 8B zeigt einen sehr guten Abgleich für die Zeitbereichssignalantwort zwischen der Messung, d.h. dem abgetasteten Ausgangssignal, und der jeweiligen Ausgangssignalausgabe aus dem neuronalen Netzwerksystem 210, das wie vorstehend beschrieben trainiert und bei der Verarbeitung verwendet wurde. 8C zeigt den entsprechenden Frequenzbereichsabgleich für das gleiche Beispiel.As a second example of an approximate dynamics of a signal processing device, 8A an electrical diagram with access points of a measurement 18. The electrical circuit shown, consisting of wired diodes 14, capacitors 12, resistors 11, and ground connectors cooperate as a so-called "second order audio signal limiter" which distorts the input signal u(t) to a 'limited' output signal depending on the input signal. The original system 10 is contained in a measurement environment and digital values are sampled for a voltage signal input u(t), a voltage signal output y(t), which is also a state of the system x 2 (t). A second state x 1 (t) of the system is calculated as a differential state x 1 = v - x 2 between the sampled voltage signal output y(t) and a voltage sampled at an access point 18. Buffered gain elements 16 are placed in the circuitry to prevent the voltage measurement from disturbing the dynamics of the original system. A neural network system 210 with 3 hidden layers each having 4 tanh nodes was used to emulate this signal processing means 10. 8B shows a very good match for the time domain signal response between the measurement, ie the sampled output signal, and the respective output signal output from the neural network system 210, which is described above ben trained and used in processing. 8C shows the corresponding frequency range adjustment for the same example.

Als ein drittes, komplexeres Beispiel für eine anzunähernde Dynamik eines Signalverarbeitungsmittels zeigt 9A ein elektrisches Diagramm mit Zugriffspunkten einer Messung der internen Zustände x1(t) und x2(t) bezüglich zweier Kondensatoren 12. Die gezeigte elektrische Schaltung, bestehend aus verdrahteten Dioden 14, Kondensatoren 12, Widerständen 11 besteht, sowie Masseverbinder und integrierte Schaltungen kooperieren als ein Tiefpassfilter. 9B zeigt zwei periodische Eingangssignale, die im dritten Beispiel verwendet werden, wobei das „Gitarren“-Eingangssignal auch im ersten und im zweiten Beispiel verwendet wurde. Für das dritte Beispiel zeigt 9C den Zeitbereichsabgleich für eine „Sägezahn“-Signaleingabe, 9D zeigt den Zeitbereichsabgleich für eine „Gitarren“-Signaleingabe und 9E zeigt den Frequenzbereichsabgleich.As a third, more complex example of an approximate dynamics of a signal processing device, 9A an electrical diagram with access points of a measurement of the internal states x 1 (t) and x 2 (t) with respect to two capacitors 12. The shown electrical circuit, consisting of wired diodes 14, capacitors 12, resistors 11, as well as ground connectors and integrated circuits cooperate as a low-pass filter. 9B shows two periodic input signals used in the third example, where the “guitar” input signal was also used in the first and second examples. For the third example, 9C the time domain adjustment for a “sawtooth” signal input, 9D shows the time domain alignment for a “guitar” signal input and 9E shows the frequency range adjustment.

Zur Veranschaulichung eines Kontexts einer Audioanwendung 300 zum Verwenden der zuvor beschriebenen bevorzugten Ausführungsformen zeigt 10 eine Echtzeit-Audioanwendung 300 als Umgebung für das erfindungsgemäße Verfahren zur Signalverarbeitung, in diesem Falle ein Verfahren zur digitalen Signalverarbeitung, das ein neuronales Netzwerksystem 210 enthält. Der Ausgangssignalwert yn des neuronalen Netzwerksystems 210 ist mit einer Audio-Ausgabe 305 der Echtzeit-Audioanwendung 300 verbunden, wobei er aufgezeichnet oder gehört werden kann. Die Ausgangssignalwerte yn, die aus dem neuronalen Netzwerksystem 210 kommen, und der tatsächliche Ausgangssignalwert zn, der durch die Audioanwendung 300 ausgegeben wird, sind im Allgemeinen gleich, sie können aber auch unterschiedlich sein, wenn sie einen anderen Signalverarbeitungsschritt enthalten, der von dem Benutzer des Systems gewünscht wird. Die Audioausgabe 305 gibt in diesem Beispiel den Ausgangssignalwert zn=yn für alle Zeitschritte iterativ aus. Eine interne Tonquelle 301 ist angeschlossen, um einen diskretisierten Eingangssignalwert un an das Verfahren zur Signalverarbeitung bereitzustellen, und es wird auch eine Steuerparametereingabe cn aus innerhalb eines Echtzeit-Audioanwendungsmittels 304 erzeugt. Eine externe Steuerquelle 302 kann über eine Steuereingabeschnittstelle 303 angeschlossen werden, um die interne Tonquelle 301 zu steuern. Konkret wird beispielsweise eine Steuerungstastatur 302 verwendet, um Oszillator- und Verstärkerabschnitte 301 eines Software-Audio-Synthesizers abzuspielen, die dann durch eine virtuelle analoge Filteremulation 200 hin zu einer externen Audioausgabe 305 verarbeitet werden, wobei die Filtergrenzfrequenz durch einen niederfrequenten Oszillator in der Audioanwendung 300 moduliert wird.To illustrate a context of an audio application 300 for using the preferred embodiments described above, 10 a real-time audio application 300 as an environment for the inventive method for signal processing, in this case a method for digital signal processing, which includes a neural network system 210. The output signal value y n of the neural network system 210 is connected to an audio output 305 of the real-time audio application 300, where it can be recorded or heard. The output signal values y n coming from the neural network system 210 and the actual output signal value z n output by the audio application 300 are generally the same, but they can also be different if they contain a different signal processing step desired by the user of the system. The audio output 305 in this example outputs the output signal value z n =y n for all time steps iteratively. An internal sound source 301 is connected to provide a discretized input signal value u n to the signal processing method and a control parameter input c n out is also generated within a real-time audio application means 304. An external control source 302 may be connected via a control input interface 303 to control the internal sound source 301. Specifically, for example, a control keyboard 302 is used to play oscillator and amplifier sections 301 of a software audio synthesizer, which are then processed through a virtual analog filter emulation 200 to an external audio output 305, with the filter cutoff frequency modulated by a low frequency oscillator in the audio application 300.

Für eine andere Veranschaulichung eines Anwendungskontexts zum Verwenden der zuvor beschriebenen bevorzugten Ausführungsformen zeigt 11 eine Echtzeit-Audioanwendung 300 als Umgebung für ein Verfahren zur digitalen Signalverarbeitung, das ein neuronales Netzwerksystem 210 enthält. Der Ausgangssignalwert yn des neuronalen Netzwerksystems 210 ist mit einer Audio-Ausgabe 305 der Echtzeit-Audioanwendung 300 verbunden, wobei er aufgezeichnet oder gehört werden kann. Eine externe Tonquelle 306 ist über eine Audio-Eingabeschnittstelle 307 angeschlossen, um einen diskretisierten Eingangssignalwert un an das Verfahren zur digitalen Signalverarbeitung bereitzustellen, und von einer externen Steuerquelle 302 wird eine Steuerparametereingabe cn über eine Steuereingabeschnittstelle 303 empfangen. Konkret kann ein Steuerregler 302 verwendet werden, um die Verstärkungseinstellung für eine virtuelle analoge Gitarrenverstärkeremulation 200 zu ändern, die das Signal von einer elektrischen Gitarre 306 hin zu einer externen Audio-Ausgabe 305 verarbeitet. Eine Zustandsangabe 308 ist mit einer Zustandssignalausgabe des neuronalen Netzwerksystems 210 verbunden, um einen Zustand der emulierten Signalverarbeitungsvorrichtung anzugeben.For another illustration of an application context for using the preferred embodiments described above, 11 a real-time audio application 300 as an environment for a digital signal processing method that includes a neural network system 210. The output signal value y n of the neural network system 210 is connected to an audio output 305 of the real-time audio application 300, where it can be recorded or heard. An external sound source 306 is connected via an audio input interface 307 to provide a discretized input signal value u n to the digital signal processing method, and a control parameter input c n is received from an external control source 302 via a control input interface 303. Specifically, a control controller 302 can be used to change the gain setting for a virtual analog guitar amplifier emulation 200 that processes the signal from an electric guitar 306 to an external audio output 305. A state indication 308 is coupled to a state signal output of the neural network system 210 to indicate a state of the emulated signal processing device.

Als eine Erweiterung der in 6 gezeigten Phasen zeigt 12, wie mehrere Signalverarbeitungsmittel 10, 10', 10" jeweils zum Emulieren des jeweiligen Signalverarbeitungsmittels abgetastet werden, um ein neuronales Netzwerksystem 110 innerhalb eines Systems 100 zu trainieren, das zum Emulieren des Signalverarbeitungsmittels 10 verwendet wird, und danach werden unterschiedliche Sätze neuronaler Netzwerkparameter 111 des neuronalen Netzwerksystems 110 in einer Speichereinheit 140 gespeichert. Die Daten können in der Speichereinheit 140 als eine Datenbank gespeichert werden.As an extension of the 6 shown phases shows 12 how several signal processing means 10, 10', 10" are scanned each to emulate the respective signal processing means to train a neural network system 110 within a system 100 used to emulate the signal processing means 10, and thereafter different sets of neural network parameters 111 of the neural network system 110 are stored in a storage unit 140. The data may be stored in the storage unit 140 as a database.

Bei der Signalverarbeitungseinheit 300, die das erfindungsgemäße Verfahren zur Signalverarbeitung, umfassend ein emuliertes Signalverarbeitungsmittel 200, einsetzt, kann eine Auswahleinheit 320 verwendet werden, um ein spezifisches trainiertes neuronales Netzwerksystem 210 aus der Speichereinheit 240 zu wählen, das seinen Dateninhalt aus der Speichereinheit 140 des Systems empfangen hat, das zum Emulieren des Signalverarbeitungsmittels 10, 10', 10" verwendet wurde, und es bei dem erfindungsgemäßen iterativen Verfahren zur Signalverarbeitung verwenden. Bei einer Audioanwendung 300 kann dies verwendet werden, um unter Verwendung des Verfahrens zur digitalen Signalverarbeitung als ein Audio-Effekt in der Anwendung 300 zwischen mehreren emulierten Signalverarbeitungsmitteln 200 an einem Punkt in der Signalkette zu wechseln.In the signal processing unit 300 employing the inventive method for signal processing comprising an emulated signal processing means 200, a selection unit 320 can be used to select a specific trained neural network system 210 from the storage unit 240 that has received its data content from the storage unit 140 of the system used to emulate the signal processing means 10, 10', 10" and use it in the inventive iterative method for signal processing. In an audio application 300, this can be used to select between several emulated signals using the method for digital signal processing as an audio effect in the application 300. nal processing means 200 at a point in the signal chain.

Die erfindungsgemäße Signalverarbeitungseinheit 300 setzt eine Prozessoreinheit 330 zum Verarbeiten ein. Das emulierte Signalverarbeitungsmittel 300 kann in Software, in Hardware oder in einer Mischung von beiden bereitgestellt sein. Die Ausgabe des emulierten Signalverarbeitungsmittels 300 ist ein physisches/elektrisches Signal.The signal processing unit 300 according to the invention uses a processor unit 330 for processing. The emulated signal processing means 300 can be provided in software, in hardware or in a mixture of both. The output of the emulated signal processing means 300 is a physical/electrical signal.

Während diese Erfindung in Verbindung mit dem, das gegenwärtig als praktische beispielhafte Ausführungsformen betrachtet wird, beschrieben worden ist, versteht es sich, dass die Erfindung nicht auf die offenbarten Ausführungsformen beschränkt ist, sondern es im Gegenteil beabsichtigt ist, verschiedene Modifikationen und äquivalente Anordnungen, die im Schutzumfang der beigefügten Ansprüche enthalten sind, abzudecken.While this invention has been described in connection with what are presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but on the contrary is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims.

BEZUGSZEICHENLISTELIST OF REFERENCE SYMBOLS

1010
zu emulierendes Signalverarbeitungsmittel / OriginalsystemSignal processing device to be emulated / original system
1111
WiderstandResistance
1212
Kondensatorcapacitor
1313
Verstärkeramplifier
1414
Diodediode
1515
Knotennode
1616
gepufferte Verstärkungbuffered gain
1818
Messzugriffspunkt Measurement access point
y(t), yny(t), yn
Ausgangssignal des SignalverarbeitungsmittelsOutput signal of the signal processing device
u(t), un,u(t), un,
Eingangssignal des SignalverarbeitungsmittelsInput signal of the signal processing device
x(t), xnx(t), xn
internes Zustandssignalinternal status signal
s(t), cns(t), cn
ZustandsanzeigersignalStatus indicator signal
c(t), ync(t), yn
SteuerparameterControl parameters
z(t), znz(t), zn
Ausgangssignal des emulierten Signalverarbeitungsmittels Output signal of the emulated signal processing device
100100
System, das zum Emulieren des zu emulierenden Signalverarbeitungsmittels verwendet wirdSystem used to emulate the signal processing means to be emulated
110110
neuronales Netzwerksystemneural network system
111111
Parameterparameter
112112
EingabeschichtInput layer
113113
EingabeschichtknotenInput layer node
114114
verborgene Schichtenhidden layers
115115
Knoten verborgener SchichtenHidden layer nodes
116116
Ausgabeschicht Output layer
117117
AusgabeschichtknotenOutput layer node
119119
SummiererSummer
120120
TrainingsdatenTraining data
130130
ProzessoreinheitProcessor unit
140140
SpeichereinheitStorage unit
150150
VerlustfunktionLoss function
160160
iterativer Trainingsprozess iterative training process
200200
emuliertes Signalverarbeitungsmittelemulated signal processing device
210210
neuronales Netzwerksystemneural network system
212212
EingabeschichtInput layer
213213
EingabeschichtknotenInput layer node
214214
verborgene Schichtenhidden layers
215215
Knoten verborgener SchichtenHidden layer nodes
216216
AusgabeschichtOutput layer
217217
AusgabeschichtknotenOutput layer node
218218
RückmeldungsschleifeFeedback loop
219219
SummiererSummer
230230
ProzessoreinheitProcessor unit
240240
SpeichereinheitStorage unit
250250
VerstärkungsfaktorGain factor
260260
Verarbeitungsiteration Processing iteration
300300
SignalverarbeitungseinheitSignal processing unit
301301
interne Tonquelleinternal sound source
302302
externe Steuerquelleexternal tax source
303303
SteuereingabeschnittstelleControl input interface
304304
interne Steuerquelleinternal tax source
305305
AusgabeeinheitOutput unit
308308
ZustandsangabeCondition information
320320
AuswahleinheitSelection unit
330330
ProzessoreinheitProcessor unit

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely to provide the reader with better information. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • DE 102015110938 A1 [0005]DE 102015110938 A1 [0005]
  • US 2016328501 A1 [0005]US 2016328501 A1 [0005]

Zitierte Nicht-PatentliteraturCited non-patent literature

  • E. Damskägg, L. Juvela, E. Thuillier und V. Välimäki, „Deep Learning for Tube Amplifier Emulation“, 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brighton, Großbritannien, 2019, S. 471-475 [0006]E. Damskägg, L. Juvela, E. Thuillier and V. Välimäki, “Deep Learning for Tube Amplifier Emulation”, 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brighton, UK, 2019, pp. 471-475 [0006]

Claims (12)

Signalverarbeitungseinheit (300), umfassend: - mindestens ein emuliertes Signalverarbeitungsmittel (200), wobei das emulierte Signalverarbeitungsmittel ein trainiertes neuronales Netzwerksystem (210) umfasst, wobei das trainierte neuronale Netzwerksystem (210) eine Eingabeschicht (112), mindestens eine verborgene Schicht (114) und eine Ausgabeschicht (116) umfasst, wobei das neuronale Netzwerksystem (210) auf einer Prozessoreinheit (120) mit einem Satz von Trainingsdaten (140) trainiert wird, wobei die Trainingsdaten (140) erhaltene abgetastete Daten eines zu emulierenden Signalverarbeitungsmittels (10) sind, wobei die abgetasteten Daten zu diskreten Zeitschritten n aus Folgenden erhalten werden: Ausgangssignalwerten (yn), wie durch das zu emulierende Signalverarbeitungsmittel (10) ausgegeben, und mindestens einem internen Zustandssignalwert (xn) eines internen Zustands des zu emulierenden Signalverarbeitungsmittels (10); wobei eine Eingabe in das neuronale Netzwerksystem (110) während des Trainings durch den Wert des mindestens einen internen Zustandssignalwerts (xn) zum Zeitschritt n bereitgestellt wird, und eine Ausgabe des neuronalen Netzwerksystems (10) (a) im Falle, dass das Ausgangssignal des Signalverarbeitungsmittels (10) gleich einem des mindestens einen internen Zustandssignals ist, wie folgt lautet: ein Wert, der den mindestens einen internen Zustandssignalwert (xn+1) des Signalverarbeitungsmittels (10) zum Zeitschritt n+1 darstellt, (b) in allen anderen Fällen: ein Wert, der den mindestens einen internen Zustandssignalwert (xn+1) des Signalverarbeitungsmittels (100) zum Zeitschritt n+1 darstellt, und die Ausgangssignalwerte (yn) des Signalverarbeitungsmittels (10); - eine Speichereinheit (240) zum Speichern der Parameter (111) des trainierten neuronalen Netzwerksystems, - eine interne Tonquelle (301), die dazu konfiguriert ist, eine Eingabe in das trainierte neuronale Netzwerksystem (210) zu sein und ein internes Zustandssignal eines internen Zustands des emulierten Signalverarbeitungsmittels (200) einzugeben; und - eine Ausgabeeinheit (305), die dazu konfiguriert ist, ein Ausgangssignal des trainierten neuronalen Netzwerksystems (210) zu empfangen und dieses Ausgangssignal auszugeben.Signal processing unit (300) comprising: - at least one emulated signal processing means (200), wherein the emulated signal processing means comprises a trained neural network system (210), wherein the trained neural network system (210) comprises an input layer (112), at least one hidden layer (114) and an output layer (116), wherein the neural network system (210) is trained on a processor unit (120) with a set of training data (140), wherein the training data (140) are sampled data obtained from a signal processing means (10) to be emulated, wherein the sampled data are obtained at discrete time steps n from the following: output signal values (y n ) as output by the signal processing means (10) to be emulated, and at least one internal state signal value (x n ) of an internal state of the signal processing means (10) to be emulated; wherein an input to the neural network system (110) during training is provided by the value of the at least one internal state signal value (x n ) at time step n, and an output of the neural network system (10) (a) in case the output signal of the signal processing means (10) is equal to one of the at least one internal state signal, is as follows: a value representing the at least one internal state signal value (x n+1 ) of the signal processing means (10) at time step n+1, (b) in all other cases: a value representing the at least one internal state signal value (x n+1 ) of the signal processing means (100) at time step n+1, and the output signal values (y n ) of the signal processing means (10); - a storage unit (240) for storing the parameters (111) of the trained neural network system, - an internal sound source (301) configured to be an input to the trained neural network system (210) and to input an internal state signal of an internal state of the emulated signal processing means (200); and - an output unit (305) configured to receive an output signal of the trained neural network system (210) and to output this output signal. Signalverarbeitungseinheit (300) nach Anspruch 1, ferner umfassend eine Steuereingabeschnittstelle (303), die dazu konfiguriert ist, ein externes Steuersignal zu empfangen, wobei die Steuereingabeschnittstelle (303) eine zusätzliche Eingabe in das trainierte neuronale Netzwerksystem bereitstellt, und/oder eine interne Steuerquelle (304), die dazu konfiguriert ist, ein internes Steuersignal zu erzeugen, das eine zusätzliche Eingabe in das trainierte neuronale Netzwerksystem (210) bereitstellt.Signal processing unit (300) according to Claim 1 , further comprising a control input interface (303) configured to receive an external control signal, the control input interface (303) providing an additional input to the trained neural network system, and/or an internal control source (304) configured to generate an internal control signal providing an additional input to the trained neural network system (210). Signalverarbeitungseinheit (300) nach einem der vorherigen Ansprüche, ferner umfassend eine Mehrzahl von Sätzen gespeicherter Parameter (111), die in einer Speichereinheit gespeichert sind, sowie eine Auswahleinheit (320) zum Auswählen mindestens eines der Sätze gespeicherter Parameter (111), die in dem emulierten Signalverarbeitungsmittel (200) verwendet werden sollen.Signal processing unit (300) according to one of the preceding claims, further comprising a plurality of sets of stored parameters (111) stored in a storage unit and a selection unit (320) for selecting at least one of the sets of stored parameters (111) to be used in the emulated signal processing means (200). Signalverarbeitungseinheit (300) nach einem der vorherigen Ansprüche, wobei das neuronale Netzwerksystem (210) dazu konfiguriert ist, abgetastete Eingangssignalwerte (un) bei Zeitschritt n als Eingabe in die Eingabeschicht (112) zu empfangen.Signal processing unit (300) according to one of the preceding claims, wherein the neural network system (210) is configured to receive sampled input signal values (u n ) at time step n as input to the input layer (112). Signalverarbeitungseinheit (300) nach einem der vorherigen Ansprüche, wobei das trainierte neuronale Netzwerksystem (210) dazu konfiguriert ist, abgetastete Steuerparameterwerte (cn) als eine weitere Eingabe in die Eingabeschicht (112) zu empfangen.Signal processing unit (300) according to one of the preceding claims, wherein the trained neural network system (210) is configured to receive sampled control parameter values (c n ) as a further input to the input layer (112). Signalverarbeitungseinheit (300) nach einem der vorherigen Ansprüche, wobei das trainierte neuronale Netzwerksystem (210) dazu konfiguriert ist, Zustandsangabewerte (sn) eines Zustands des zu emulierenden Signalverarbeitungsmittels (10) als eine weitere Ausgabe des neuronalen Netzwerksystems (210) bereitzustellen.Signal processing unit (300) according to one of the preceding claims, wherein the trained neural network system (210) is configured to provide state indication values (s n ) of a state of the signal processing means (10) to be emulated as a further output of the neural network system (210). Signalverarbeitungseinheit (300) nach einem der vorherigen Ansprüche, wobei das zu emulierende Signalverarbeitungsmittel (200) Folgendes ist: ein digitales oder ein analoges Signalverarbeitungsmittel, ein Effektprozessor, eine digitale oder eine analoge elektrische Schaltung oder eine elektromechanische Schaltung.Signal processing unit (300) according to one of the preceding claims, wherein the signal processing means (200) to be emulated is: a digital or an analog signal processing means, an effects processor, a digital or an analog electrical circuit or an electromechanical circuit. Signalverarbeitungseinheit (300) nach einem der vorherigen Ansprüche, wobei die gespeicherten Parameter (111) des neuronalen Netzwerksystems (210) mindestens einer ist, ausgewählt aus der Gruppe, die Folgendes enthält: die Werte von trainierten Gewichten des neuronalen Netzwerksystems (210), die Anzahl verborgener Schichten (114) und die Anzahl von Knoten (113) der Eingabeschicht (112), die Anzahl von Knoten (115) in jeder verborgenen Schicht (114) und die Anzahl von Knoten (117) der Ausgabeschicht (116) des neuronalen Netzwerksystems (210).Signal processing unit (300) according to one of the preceding claims, wherein the stored parameters (111) of the neural network system (210) is at least one selected from the group consisting of: the values of trained weights of the neural network system (210), the number of hidden layers (114) and the number of nodes (113) of the input layer (112), the number of nodes (115) in each hidden layer (114) and the number of nodes (117) of the output layer (116) of the neural network system (210). Signalverarbeitungseinheit (300) nach einem der vorherigen Ansprüche, wobei die Signalverarbeitungseinheit (300) eine Audioanwendung (300) ist, wobei die Ausgabeeinheit (10) mit einem Aufzeichnungs- oder Speichermittel oder einem Lautsprecher verbunden ist.Signal processing unit (300) according to one of the preceding claims, wherein the signal processing unit (300) is an audio application (300), wherein the output unit (10) is provided with a recording or storage means or a loudspeaker. Signalverarbeitungseinheit (300) nach einem von Anspruch 9, ferner umfassend ein Echtzeit-Audioanwendungsmittel (304) zum Erzeugen eines Steuerparameters als eine Eingabe in das trainierte neuronale Netzwerksystem.Signal processing unit (300) according to one of Claim 9 further comprising real-time audio application means (304) for generating a control parameter as an input to the trained neural network system. Signalverarbeitungseinheit (300) nach einem der Ansprüche 9 oder 10, ferner umfassend eine Steuereingabeschnittstelle (303) zum Verbinden mit einer externen Steuerquelle (302) zum Steuern der internen Tonquelle (301).Signal processing unit (300) according to one of the Claims 9 or 10 , further comprising a control input interface (303) for connecting to an external control source (302) for controlling the internal sound source (301). Signalverarbeitungseinheit (300) nach einem der vorherigen Ansprüche, umfassend mehrere emulierte Signalverarbeitungsmittel (200) sowie eine Auswahleinheit (320) zum Auswählen eines emulierten Signalverarbeitungsmittels (200) aus den bereitgestellten mehreren emulierten Signalverarbeitungsmitteln.Signal processing unit (300) according to one of the preceding claims, comprising a plurality of emulated signal processing means (200) and a selection unit (320) for selecting an emulated signal processing means (200) from the provided plurality of emulated signal processing means.
DE202019006054.5U 2019-08-30 2019-08-30 Emulated signal processing means and signal processing unit Active DE202019006054U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE202019006054.5U DE202019006054U1 (en) 2019-08-30 2019-08-30 Emulated signal processing means and signal processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE202019006054.5U DE202019006054U1 (en) 2019-08-30 2019-08-30 Emulated signal processing means and signal processing unit

Publications (1)

Publication Number Publication Date
DE202019006054U1 true DE202019006054U1 (en) 2024-05-24

Family

ID=91471712

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202019006054.5U Active DE202019006054U1 (en) 2019-08-30 2019-08-30 Emulated signal processing means and signal processing unit

Country Status (1)

Country Link
DE (1) DE202019006054U1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328501A1 (en) 2015-05-05 2016-11-10 Fractal Audio Systems Automatic AMP Matching
DE102015110938A1 (en) 2015-07-07 2017-01-12 Christoph Kemper Method for modifying an impulse response of a sound transducer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328501A1 (en) 2015-05-05 2016-11-10 Fractal Audio Systems Automatic AMP Matching
DE102015110938A1 (en) 2015-07-07 2017-01-12 Christoph Kemper Method for modifying an impulse response of a sound transducer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
E. Damskägg, L. Juvela, E. Thuillier und V. Välimäki, „Deep Learning for Tube Amplifier Emulation", 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brighton, Großbritannien, 2019, S. 471-475

Similar Documents

Publication Publication Date Title
DE69425100T2 (en) Dynamic neural network
DE69719058T2 (en) IMPROVED NEURONAL NETWORK
DE112020002186B4 (en) DNN TRAINING WITH ASYMMETRIC RPU UNITS
DE4430977C2 (en) Artificial neuron circuit device
DE112018000723T5 (en) Update management for an RPU arrangement
EP2330469B1 (en) Method and development environment for generating an executable total control program
DE69009786T2 (en) Circuit arrangement with multiple feedback.
DE102004036813A1 (en) Method for generating a circuit model
DE19504664C2 (en) Chaotic recurrent neural network and learning method for it
EP0708936B1 (en) Arrangement for modelling a non-linear process
Bertsias et al. A collection of interdisciplinary applications of fractional-order circuits
DE10337782B4 (en) Method and circuit for effective conversion of PCM to PWM data
DE60021888T2 (en) ERROR BORDER MODEL FOR IDENTIFYING STOCHASTIC MODELS FOR A CONTROL DESIGN
DE202019006054U1 (en) Emulated signal processing means and signal processing unit
EP3786850A1 (en) Method of emulating a signal processing means using a neural network system, method of processing a signal, an emulated signal processing means and a signal processing unit
DE112021006672T5 (en) DNN TRAINING BY HIDDEN MATRIX FILTERING
DE69919527T2 (en) Method and device for identifying a physical system
DE102018212155A1 (en) Method and device for actively adjusting a predictor to an input signal
EP1175668B1 (en) Device for calculating and generating signals, especially for digital sound synthesis
DE2220416A1 (en) ARRANGEMENT FOR DIGITAL CONTROL OF A VIBRATION TEST DEVICE
DE10205916B4 (en) Method for determining Hopf bifurcation points in a periodic description of the condition of a technical system
DE112021000741T5 (en) CROSSBAR ARRAYS FOR CALCULATIONS IN NEURAL NETWORKS WITH WORKING MEMORY EXPANSION
WO2000062250A2 (en) Assembly of interconnected computing elements, method for computer-assisted determination of a dynamic which is the base of a dynamic process, and method for computer-assisted training of an assembly of interconnected elements
DE19731499A1 (en) Process for selection of higher order terms for holographic neural network
DE102004059684B3 (en) Computer process and assembly to predict a future condition of a dynamic system e.g. telecommunications neural-network within defined limits

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R151 Utility model maintained after payment of second maintenance fee after six years