ES2823253T3 - Information encoding and decoding - Google Patents

Information encoding and decoding Download PDF

Info

Publication number
ES2823253T3
ES2823253T3 ES10737051T ES10737051T ES2823253T3 ES 2823253 T3 ES2823253 T3 ES 2823253T3 ES 10737051 T ES10737051 T ES 10737051T ES 10737051 T ES10737051 T ES 10737051T ES 2823253 T3 ES2823253 T3 ES 2823253T3
Authority
ES
Spain
Prior art keywords
time
signal
events
input
series
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
ES10737051T
Other languages
Spanish (es)
Inventor
Henry Markram
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.)
Ecole Polytechnique Federale de Lausanne EPFL
Original Assignee
Ecole Polytechnique Federale de Lausanne EPFL
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 Ecole Polytechnique Federale de Lausanne EPFL filed Critical Ecole Polytechnique Federale de Lausanne EPFL
Application granted granted Critical
Publication of ES2823253T3 publication Critical patent/ES2823253T3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/16Conversion to or from representation by pulses the pulses having three levels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4902Pulse width modulation; Pulse position modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4917Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using multilevel codes

Abstract

Un sistema codificador puesto en práctica en circuitos electrónicos digitales o en combinaciones de software y hardware informático, comprendiendo el sistema codificador: un codificador temporal (105) configurado para codificar información en un conjunto de señales de código función del tiempo (135), incluyendo cada una de las señales de código función del tiempo (135) intervalos de tiempo (320, 1420, 2905) y cada uno de los intervalos de tiempo (320, 1420, 2905) incluyendo un evento (325, 1425, 2910), ocurrencias de los eventos (325, 1425, 2910) dentro de los intervalos de tiempo (320, 1420, 2905) que están sincronizados para representar la información; y un codificador compresor (2205) que comprende un conjunto de dispositivos convertidores (2305) cada uno conectado y configurado para recibir y ponderar las amplitudes de los eventos (325, 1425, 2910) en una respectiva de las señales de código función del tiempo (135) como una función de la sincronización de otros eventos (325, 1425, 2910) en la respectiva señal de código función del tiempo, y proporcionar una señal (2345) que incluye los eventos ponderados en amplitud en momentos relativos que corresponden a la sincronización de los eventos no ponderados dentro de la respectiva señal de código función del tiempo.An encoding system implemented in digital electronic circuits or in computer software and hardware combinations, the encoding system comprising: a temporal encoder (105) configured to encode information in a set of time-function code signals (135), each including one of the time-function code signals (135) time intervals (320, 1420, 2905) and each of the time intervals (320, 1420, 2905) including one event (325, 1425, 2910), occurrences of the events (325, 1425, 2910) within the time intervals (320, 1420, 2905) that are synchronized to represent the information; and a compressor encoder (2205) comprising a set of converter devices (2305) each connected and configured to receive and weight the amplitudes of the events (325, 1425, 2910) in a respective one of the time-based code signals ( 135) as a function of the timing of other events (325, 1425, 2910) in the respective time-function code signal, and providing a signal (2345) that includes the amplitude-weighted events at relative times corresponding to the timing of the unweighted events within the respective time-based code signal.

Description

DESCRIPCIÓNDESCRIPTION

Codificación y decodificación de informaciónInformation encoding and decoding

ANTECEDENTES DE LA INVENCIÓNBACKGROUND OF THE INVENTION

Esta especificación se refiere a la codificación y decodificación de información.This specification refers to the encoding and decoding of information.

Un codificador es un dispositivo que convierte información desde una primera representación a una segunda representación. Los codificadores se pueden incluir en muchos sistemas y dispositivos diferentes, incluidos dispositivos de comunicación de datos, dispositivos de almacenamiento de datos, dispositivos de compresión de datos, dispositivos de cifrado de datos y combinaciones de estos y otros dispositivos. Un codificador se puede emparejar con un decodificador que puede reconstruir la información. La información codificada y decodificada se puede comunicar en señales y/o almacenar en un dispositivo de almacenamiento de datos.An encoder is a device that converts information from a first representation to a second representation. Encoders can be included in many different systems and devices, including data communication devices, data storage devices, data compression devices, data encryption devices, and combinations of these and other devices. An encoder can be paired with a decoder that can reconstruct the information. The encoded and decoded information can be communicated in signals and / or stored on a data storage device.

Las neuronas biológicas y otros sistemas neuronales biológicos pueden codificar información y comunicarse utilizando señalización electroquímica. Por ejemplo, los sistemas neuronales biológicos pueden codificar información en potenciales de acción de aproximadamente la misma amplitud. Los sistemas neuronales biológicos incluyen sinapsis que actúan como transductores electroquímicos que convierten las señales electroquímicas en cambios de conductancia eléctrica. Incluso una sola neurona puede recibir varios miles de señales electroquímicas como entradas en sus ramas (denominadas "dendritas"). Estas entradas causan cambios de tensión a través de una membrana celular que se fusionan en una manera función del tiempo. Esta fusión de entradas sigue las leyes pasivas (lineales), activas (no lineales), de cable (que se reducen con el tiempo) y electroquímica (difusión). En determinadas circunstancias, dichas entradas pueden fusionarse en un tren de potenciales de acción sucesivos.Biological neurons and other biological neural systems can encode information and communicate using electrochemical signaling. For example, biological neural systems can encode information in action potentials of approximately the same amplitude. Biological neural systems include synapses that act as electrochemical transducers that convert electrochemical signals into changes in electrical conductance. Even a single neuron can receive several thousand electrochemical signals as inputs to its branches (called "dendrites"). These inputs cause voltage changes across a cell membrane that fuse in a time-dependent manner. This fusion of inputs follows passive (linear), active (non-linear), wire (decreasing over time), and electrochemical (diffusion) laws. In certain circumstances, these inputs can merge into a train of successive action potentials.

SUMARIOSUMMARY

Esta especificación describe tecnologías relacionadas con la codificación y decodificación de información.This specification describes technologies related to the encoding and decoding of information.

En general, un aspecto innovador de la materia descrita en esta especificación puede incorporarse en métodos de codificación de información en un codificador que incluyen las acciones de recibir una señal que representa información utilizando un conjunto de dígitos discretos, convirtiendo, por un codificador, la señal recibida en un código función del tiempo y proporcionando dicho código función del tiempo. El código función del tiempo se divide en intervalos de tiempo. Cada uno de los intervalos de tiempo del código función del tiempo corresponde a un dígito en la señal recibida. Cada dígito de un primer estado de la señal recibida se expresa como un evento que ocurre por primera vez dentro del mismo.In general, an innovative aspect of the subject matter described in this specification can be incorporated into information encoding methods in an encoder that include the actions of receiving a signal representing information using a set of discrete digits, converting, by an encoder, the signal received in a time-based code and providing said time-based code. The time function code is divided into time intervals. Each of the time intervals of the time function code corresponds to one digit in the received signal. Each digit of a first state of the received signal is expressed as an event that occurs for the first time within it.

La entrada de Wikipedia para "Modulación por posición de pulso" describe que la modulación por posición de pulso (PPM) es una forma de modulación de señal en donde M bits de mensaje se codifican transmitiendo un solo pulso en uno de 2M posibles desplazamientos de tiempo.The Wikipedia entry for "Pulse Position Modulation" describes that Pulse Position Modulation (PPM) is a form of signal modulation where M message bits are encoded by transmitting a single pulse in one of 2M possible time offsets. .

El documento US 2002/0190881 da a conocer una señal de modulación por posición de pulso con amplitud variable, mediante la cual la amplitud codifica información adicional.US 2002/0190881 discloses a pulse position modulation signal with variable amplitude, whereby the amplitude encodes additional information.

El documento titulado "Aprendizaje reforzado a través de la modulación de la plasticidad sináptica dependiente de la sincronización de picos" de R. Florian describe que la modulación de la plasticidad dependiente de la sincronización de picos por una señal de recompensa global conduce al aprendizaje por refuerzo.The paper entitled "Reinforced learning through peak timing-dependent modulation of synaptic plasticity" by R. Florian describes that peak timing-dependent modulation of plasticity by a global reward signal leads to reinforcement learning .

SUMARIO DE LA INVENCIÓNSUMMARY OF THE INVENTION

Esta especificación describe tecnologías relacionadas con la codificación y decodificación de información.This specification describes technologies related to the encoding and decoding of information.

Un aspecto innovador de la materia descrita en esta especificación se puede materializar en un sistema codificador puesto en práctica en circuitos electrónicos digitales o en combinaciones de software y hardware informático, comprendiendo el sistema codificador: un codificador temporal configurado para codificar información en un conjunto. de señales de código función del tiempo, incluyendo cada una de las señales de código función del tiempo unos intervalos de tiempo y a su vez, cada uno de los intervalos de tiempo incluye un evento, ocurrencias de los eventos dentro de los intervalos de tiempo que se sincronizan para representar la información; y un codificador compresor que comprende un conjunto de dispositivos convertidores, cada uno de los cuales está conectado y configurado para recibir y ponderar las amplitudes de los eventos en una respectiva de las señales de código función del tiempo como una función de sincronización de otros eventos en la respectiva señal de código función del tiempo, y proporcionar una señal que incluya los eventos ponderados en amplitud en momentos relativos que correspondan a la sincronización de los eventos no ponderados dentro de la respectiva señal de código función del tiempo.An innovative aspect of the subject matter described in this specification can be embodied in an encoder system implemented in digital electronic circuits or in combinations of computer software and hardware, the encoder system comprising: a temporary encoder configured to encode information in a set. of code signals as a function of time, each of the code signals as a function of time including time intervals and in turn, each of the time intervals includes an event, occurrences of the events within the time intervals specified they synchronize to represent information; and a compressor encoder comprising a set of converter devices, each of which is connected and configured to receive and weight the amplitudes of the events in a respective one of the time-based code signals as a function of synchronization of other events in the respective time-function code signal, and providing a signal that includes the amplitude-weighted events at relative times corresponding to the timing of the unweighted events within the respective time-function code signal.

Otro aspecto innovador de la materia descrita en esta especificación se puede materializar en un dispositivo decodificador puesto en práctica en circuitos electrónicos digitales o en combinaciones de software y hardware informático, comprendiendo el dispositivo decodificador: una entrada conectable para recibir una serie temporal de entrada de eventos, ocurriendo los eventos en la serie temporal de entrada a intervalos no uniformes, estando la sincronización de los eventos de entrada dentro de la información de codificación de la serie temporal de entrada; un conjunto de dispositivos convertidores de ponderación configurados cada uno para convertir de forma única la serie temporal de entrada en un conjunto de amplitudes, siendo cada amplitud una función de la sincronización de múltiples eventos de entrada en la serie temporal de entrada; y un conjunto de salidas, cada una incluida en un dispositivo convertidor generador de ponderación respectivo y conectable para proporcionar una serie respectiva de amplitudes, en donde las amplitudes varían pero el número de amplitudes es el mismo que el número de eventos en la serie temporal de entrada, en donde al menos algunas de las amplitudes generadas por diferentes dispositivos convertidores de ponderación difieren para cada serie temporal de entrada distinta de cero.Another innovative aspect of the subject matter described in this specification can be embodied in a decoding device implemented in digital electronic circuits or in combinations of software and hardware. computer, the decoding device comprising: a connectable input to receive a time series of input events, the events occurring in the input time series at non-uniform intervals, the synchronization of the input events being within the encoding information of the input time series; a set of weight converting devices each configured to uniquely convert the input time series to a set of amplitudes, each amplitude being a function of the timing of multiple input events in the input time series; and a set of outputs, each included in a respective connectable weighting generator converter device to provide a respective series of amplitudes, wherein the amplitudes vary but the number of amplitudes is the same as the number of events in the time series of input, where at least some of the amplitudes generated by different weighting converter devices differ for each non-zero input time series.

Los datos de una o más puestas en práctica de la materia descrita en esta especificación se establecen en los dibujos adjuntos y en la descripción siguiente. Otras características, aspectos y ventajas de la materia serán evidentes a partir de la descripción, los dibujos y las reivindicaciones.Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and in the following description. Other features, aspects, and advantages of the matter will be apparent from the description, drawings, and claims.

BREVE DESCRIPCIÓN DE LOS DIBUJOSBRIEF DESCRIPTION OF THE DRAWINGS

La Figura 1A es una representación esquemática de un sistema codificador/decodificador.Figure 1A is a schematic representation of an encoder / decoder system.

La Figura 1B es un diagrama de flujo de un proceso para codificar y decodificar información.Figure 1B is a flow chart of a process for encoding and decoding information.

La Figura 2A es una representación esquemática de un sistema en donde se puede codificar información.Figure 2A is a schematic representation of a system where information can be encoded.

La Figura 2B es una representación esquemática de una puesta en práctica de un codificador temporal.Figure 2B is a schematic representation of an implementation of a time encoder.

La Figura 3 es una representación esquemática de un proceso de codificación temporal.Figure 3 is a schematic representation of a time encoding process.

La Figura 4 es una representación esquemática de otra puesta en práctica de un codificador temporal.Figure 4 is a schematic representation of another implementation of a time encoder.

La Figura 5 es una representación esquemática de la codificación temporal con un codificador temporal que detecta el inicio y el final de la transmisión de datos en una señal.Figure 5 is a schematic representation of time encoding with a time encoder that detects the start and end of data transmission in a signal.

La Figura 6 es una representación esquemática de otra puesta en práctica de un codificador temporal.Figure 6 is a schematic representation of another implementation of a time encoder.

La Figura 7 es una representación esquemática de la codificación de una cabecera al inicio de la transmisión de datos en una señal.Figure 7 is a schematic representation of the encoding of a header at the beginning of data transmission in a signal.

La Figura 8 es una representación esquemática de otra puesta en práctica de un codificador temporal.Figure 8 is a schematic representation of another implementation of a time encoder.

La Figura 9 es una representación esquemática de la codificación temporal de una señal que incluye más de dos estados.Figure 9 is a schematic representation of the temporal encoding of a signal that includes more than two states.

La Figura 10 es una representación esquemática de una puesta en práctica de un sistema en donde se puede codificar información.Figure 10 is a schematic representation of one implementation of a system where information can be encoded.

La Figura 11 es una representación esquemática de una puesta en práctica de un codificador multicanal.Figure 11 is a schematic representation of an implementation of a multichannel encoder.

La Figura 12 es una representación esquemática de un sistema en donde la información se puede codificar, comprimir y almacenar/transmitir y luego acceder/recibir, decodificar y descomprimir.Figure 12 is a schematic representation of a system where information can be encoded, compressed and stored / transmitted and then accessed / received, decoded and decompressed.

La Figura 13 es una representación esquemática de una puesta en práctica de un decodificador.Figure 13 is a schematic representation of a decoder implementation.

La Figura 14 es una representación esquemática de un proceso de decodificación de una señal en donde la información está codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo.Figure 14 is a schematic representation of a signal decoding process where the information is encoded by the timing of the occurrence of events within time intervals.

La Figura 15 es una representación esquemática de otra puesta en práctica de un decodificador.Figure 15 is a schematic representation of another implementation of a decoder.

La Figura 16 es una representación esquemática de la decodificación de una señal en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo con un decodificador que detecta el inicio y el final de la transmisión de datos en una señal.Figure 16 is a schematic representation of the decoding of a signal where the information is encoded by synchronizing the occurrence of events within time intervals with a decoder that detects the start and end of data transmission in a signal. .

Las Figuras 17 y 18 son representaciones esquemáticas de otras puestas en práctica de decodificadores.Figures 17 and 18 are schematic representations of other decoder implementations.

La Figura 19 es una representación esquemática de la decodificación de una señal en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo en una señal que incluye más de dos estados. Figure 19 is a schematic representation of the decoding of a signal where the information is encoded by the timing of the occurrence of events within time intervals in a signal that includes more than two states.

La Figura 20 es una representación esquemática de una puesta en práctica de un sistema de decodificación.Figure 20 is a schematic representation of a decoding system implementation.

La Figura 21 es una representación esquemática de un sistema decodificador multicanal.Figure 21 is a schematic representation of a multichannel decoder system.

La Figura 22 es una representación esquemática de una puesta en práctica de un sistema en donde se puede codificar información.Figure 22 is a schematic representation of a system implementation where information can be encoded.

La Figura 23 es una representación esquemática de una puesta en práctica de un codificador compresor.Figure 23 is a schematic representation of an implementation of a compressor encoder.

Las Figuras 24, 25, 26, 27 son representaciones esquemáticas relacionadas con diferentes puestas en práctica de integradores.Figures 24, 25, 26, 27 are schematic representations related to different integrator implementations.

La Figura 28 es una representación esquemática de un convertidor binario a analógico.Figure 28 is a schematic representation of a binary to analog converter.

La Figura 29 es una representación esquemática de la ponderación de la amplitud de eventos individuales en una serie temporal de eventos como una función de la sincronización de otros eventos en la serie temporal.Figure 29 is a schematic representation of the weighting of the amplitude of individual events in a time series of events as a function of the timing of other events in the time series.

La Figura 30 es una representación esquemática de una puesta en práctica de una señal que se puede proporcionar desde un codificador compresor.Figure 30 is a schematic representation of an implementation of a signal that can be provided from a compressor encoder.

La Figura 31 es una representación esquemática de un dispositivo de almacenamiento de datos.Figure 31 is a schematic representation of a data storage device.

La Figura 32 es una representación esquemática de una puesta en práctica de un sistema en donde se puede decodificar información.Figure 32 is a schematic representation of a system implementation where information can be decoded.

La Figura 33 es una representación esquemática de una puesta en práctica de un decodificador expansor.Figure 33 is a schematic representation of an implementation of an expander decoder.

La Figura 34 es una representación esquemática de un dispositivo de ponderación.Figure 34 is a schematic representation of a weighting device.

La Figura 35 es una representación esquemática de la ponderación de la amplitud de eventos individuales en una serie temporal de eventos como una función de la sincronización de otros eventos en la serie temporal.Figure 35 is a schematic representation of the weighting of the amplitude of individual events in a time series of events as a function of the timing of other events in the time series.

La Figura 36 es una representación esquemática de un escáner de serie temporal.Figure 36 is a schematic representation of a time series scanner.

La Figura 37 es una representación esquemática de un decodificador expansor.Figure 37 is a schematic representation of an expander decoder.

La Figura 38 es una representación esquemática de una puesta en práctica de un sistema en donde la información se puede codificar y decodificar.Figure 38 is a schematic representation of a system implementation where information can be encoded and decoded.

La Figura 39 es un diagrama de flujo de un proceso para construir un conjunto de convertidores binarios a analógicos. La Figura 40 es un diagrama de flujo de un proceso para calibrar un dispositivo de ponderación.Figure 39 is a flow diagram of a process for constructing a set of binary to analog converters. Figure 40 is a flow chart of a process for calibrating a weighting device.

La Figura 41 es un diagrama de flujo de un proceso para crear un par de codificador/descodificador.Figure 41 is a flow chart of a process for creating an encoder / decoder pair.

Las referencias numéricas similares y las designaciones en los diversos dibujos indican elementos similares.Like reference numerals and designations in the various drawings indicate like elements.

DESCRIPCIÓN DETALLADA DE LA INVENCIÓNDETAILED DESCRIPTION OF THE INVENTION

La Figura 1A es una representación esquemática de un sistema codificador/decodificador 3. El sistema codificador/decodificador 3 es un conjunto de componentes para codificar y decodificar información. El sistema codificador/decodificador 3 puede ser, por ejemplo, un sistema de comunicación de datos, un sistema de almacenamiento de datos, un sistema de compresión de datos, un sistema de cifrado de datos o una combinación de estos u otros sistemas. Un codificador se puede emparejar con un decodificador que puede reconstruir la información. La información codificada y decodificada se puede comunicar en señales y/o almacenar en un dispositivo de almacenamiento de datos.Figure 1A is a schematic representation of an encoder / decoder system 3. The encoder / decoder system 3 is a set of components for encoding and decoding information. The encoder / decoder system 3 can be, for example, a data communication system, a data storage system, a data compression system, a data encryption system or a combination of these or other systems. An encoder can be paired with a decoder that can reconstruct the information. The encoded and decoded information can be communicated in signals and / or stored on a data storage device.

El sistema codificador/decodificador 3 incluye un sistema transmisor codificador 6 y un sistema receptor decodificador 9. El sistema transmisor codificador 6 incluye una entrada 8, un codificador-compresor 10, un transmisor 12 y una salida 14. La entrada 8 del sistema transmisor codificador 6 puede conectarse para recibir información en una señal 21. La entrada 8 y la salida 14 son estructuras físicas a través de las cuales las señales se reciben y se transfieren, respectivamente, desde el sistema transmisor codificador 6. La señal 21 incluye información. El codificador-compresor 10 es un componente que codifica y comprime al menos parte de la información de la señal 21. The encoder / decoder system 3 includes an encoder transmitter system 6 and a decoder receiver system 9. The encoder transmitter system 6 includes an input 8, an encoder-compressor 10, a transmitter 12 and an output 14. The input 8 of the encoder transmitter system 6 can be connected to receive information in a signal 21. Input 8 and output 14 are physical structures through which signals are received and transferred, respectively, from encoder transmitter system 6. Signal 21 includes information. The encoder-compressor 10 is a component that encodes and compresses at least part of the information of the signal 21.

El codificador-compresor 10 incluye un codificador de estado 23, un codificador función del tiempo 25, un componente de ponderación de amplitud 27 y un compresor 29. El codificador de estado 23 es un componente que codifica al menos parte de la información de la señal 21 en una señal 24 que representa información en un conjunto de dígitos discretos. Los dígitos pueden representar información utilizando diferentes estados. Por ejemplo, la señal 24 puede representar información en dígitos binario o bits (es decir, utilizando un par de estados) o en dígitos decimales (es decir, utilizando diez estados). El codificador de estado 23 está conectado para proporcionar la señal 24 al codificador función del tiempo 25.The encoder-compressor 10 includes a status encoder 23, a time function encoder 25, an amplitude weighting component 27, and a compressor 29. The status encoder 23 is a component that encodes at least part of the signal information. 21 into a signal 24 that represents information in a set of discrete digits. Digits can represent information using different states. For example, signal 24 can represent information in binary digits or bits (that is, using a pair of states) or in decimal digits (that is, using ten states). Status encoder 23 is connected to provide signal 24 to time function encoder 25.

El codificador función del tiempo 25 es un componente que codifica la señal 24 en un código función del tiempo 26 en donde la sincronización de los eventos dentro de los intervalos representa información. Uno o ambos del codificador de estado 23 y del codificador función del tiempo 25 pueden incluir un segmentador que divide una única señal en un conjunto de unidades más pequeñas. Como consecuencia de esta división, el componente de ponderación de la amplitud 27 recibe un conjunto de códigos función del tiempo 26. El codificador función del tiempo 25 está conectado para proporcionar el conjunto de códigos función del tiempo 26 al componente de ponderación de la amplitud 27. The time function encoder 25 is a component that encodes the signal 24 into a time function code 26 wherein the timing of the events within the intervals represents information. One or both of the state encoder 23 and the time function encoder 25 may include a segmenter that splits a single signal into a set of smaller units. As a consequence of this division, the amplitude weighting component 27 receives a set of time-function codes 26. The time-function encoder 25 is connected to provide the time-function code set 26 to the amplitude weighting component 27 .

El componente de ponderación de la amplitud 27 es un componente que está configurado para ponderar las amplitudes de los eventos dentro de cada código función del tiempo 26 de conformidad con la sincronización de al menos algunos de los otros eventos en ese código función del tiempo 26. En algunas puestas en práctica, el componente de ponderación de amplitud 27 puede ponderar las amplitudes de los eventos según la sincronización de los eventos predecesores. El componente de ponderación de la amplitud 27 no necesita añadir nueva información a los códigos función del tiempo 26, sino que puede representar al menos parte de la información existente en cada código función del tiempo en otra dimensión, a saber, las amplitudes de los eventos. El componente de ponderación de la amplitud 27 está conectado para proporcionar un conjunto de códigos función del tiempo ponderados en amplitud 28 al compresor 29.The amplitude weighting component 27 is a component that is configured to weight the amplitudes of the events within each time-function code 26 in accordance with the timing of at least some of the other events in that time-function code 26. In some implementations, the amplitude weighting component 27 may weight the amplitudes of the events according to the timing of the predecessor events. The amplitude weighting component 27 does not need to add new information to the time-function codes 26, but can represent at least part of the existing information in each time-function code in another dimension, namely the amplitudes of the events . The amplitude weighting component 27 is connected to provide a set of amplitude weighted time function codes 28 to the compressor 29.

El compresor 29 es un componente que está configurado para comprimir un conjunto de códigos función del tiempo ponderados en amplitud 28. El compresor 29 puede comprimir los códigos función del tiempo ponderados en amplitud 28 integrándolos para generar un código unidimensional 31. El código unidimensional 31 puede representar al menos parte de la información en códigos función del tiempo ponderados en amplitud 28 en una sola dimensión. Por ejemplo, el código unidimensional 31 puede representar la información utilizando la sincronización de eventos. En algunas puestas en práctica, la integración puede ser una integración no lineal. El compresor 29 está conectado para proporcionar un código unidimensional 31 al transmisor 12.Compressor 29 is a component that is configured to compress a set of amplitude-weighted time-function codes 28. Compressor 29 can compress the amplitude-weighted time-function codes 28 by integrating them to generate a one-dimensional code 31. One-dimensional code 31 can represent at least part of the information in amplitude-weighted time codes 28 in a single dimension. For example, one-dimensional code 31 can represent information using event synchronization. In some implementations, the integration may be a non-linear integration. Compressor 29 is connected to provide a one-dimensional code 31 to transmitter 12.

El transmisor 12 está configurado para transmitir un código unidimensional 31 en una señal 30 que puede almacenarse o procesarse de otro modo. Por ejemplo, la señal 30 se puede almacenar en una estructura de memoria (no ilustrada). De manera alternativa, la señal 30 se puede transmitir a un dispositivo receptor que decodifica la señal. En el ejemplo mostrado, la señal 30 se transporta desde la salida 14 del sistema transmisor codificador 6 a la entrada 16 del sistema receptor decodificador 9.Transmitter 12 is configured to transmit a one-dimensional code 31 in a signal 30 that can be stored or otherwise processed. For example, signal 30 can be stored in a memory structure (not illustrated). Alternatively, signal 30 can be transmitted to a receiving device that decodes the signal. In the example shown, signal 30 is transported from output 14 of encoder transmitter system 6 to input 16 of decoder receiver system 9.

El sistema receptor de decodificación 9 incluye una entrada 16, un receptor 32, un expansor-decodificador 34 y una salida 20. La entrada 16 del sistema receptor de decodificación 9 puede conectarse para recibir la señal 30. La señal 30 incluye el código unidimensional 31. La entrada 16 y la salida 20 son estructuras físicas a través de las cuales las señales se reciben y se transfieren respectivamente desde el sistema receptor de decodificación 9. El receptor 32 está configurado para recibir la señal 30 y transmitir el código unidimensional 31 al expansor-decodificador 34.The decoding receiver system 9 includes an input 16, a receiver 32, an expander-decoder 34 and an output 20. The input 16 of the decoding receiver system 9 can be connected to receive the signal 30. The signal 30 includes the one-dimensional code 31 The input 16 and the output 20 are physical structures through which signals are received and transferred respectively from the decoding receiver system 9. The receiver 32 is configured to receive the signal 30 and transmit the one-dimensional code 31 to the expander. -decoder 34.

El expansor-decodificador 34 es un componente que expande y decodifica al menos parte de la información en la señal 29. El expansor-decodificador 34 incluye un expansor de ponderación 37, un decodificador de amplitud 39, un decodificador de código función del tiempo 41 y un decodificador de estado 42. El expansor de ponderación 37 es un componente que está configurado para expandir el código unidimensional 31 en uno o más conjuntos de pesos de ponderación 43. Se pueden generar conjuntos de pesos de ponderación de conformidad con la dimensión utilizada para representar información en la señal 29 (por ejemplo, la sincronización de eventos en la señal 29). Por ejemplo, se pueden generar pesos de ponderación para cada evento en la señal 29 de conformidad con la sincronización de los eventos predecesores dentro de la señal 29. Cada evento en el código unidimensional puede asociarse con un solo peso de ponderación en cada conjunto de pesos. En algunas puestas en práctica, el expansor de ponderación 37 pondera las amplitudes de cada evento utilizando los pesos de ponderación y genera versiones ponderadas en amplitud del código unidimensional 31 como conjuntos de pesos de ponderación 43. En otras puestas en práctica, el expansor de ponderación 37 genera listas ordenadas de pesos de ponderación que descarta la dimensión utilizada para representar información en la señal 29 (por ejemplo, descarta la sincronización de eventos en la señal 29) como conjuntos de pesos de ponderación 43. El expansor de ponderación 37 está conectado para transportar conjuntos de pesos de ponderación 43 al decodificador de amplitud 39.The expander-decoder 34 is a component that expands and decodes at least part of the information in the signal 29. The expander-decoder 34 includes a weighting expander 37, an amplitude decoder 39, a time-function code decoder 41 and a state decoder 42. Weight expander 37 is a component that is configured to expand one-dimensional code 31 into one or more sets of weighting weights 43. Sets of weighting weights can be generated in accordance with the dimension used to represent information on signal 29 (eg, timing of events on signal 29). For example, weighting weights can be generated for each event in signal 29 in accordance with the timing of the predecessor events within signal 29. Each event in the one-dimensional code can be associated with a single weighting weight in each set of weights. . In some implementations, the weighting expander 37 weights the amplitudes of each event using the weighting weights and generates amplitude-weighted versions of the one-dimensional code 31 as sets of weighting weights 43. In other implementations, the weighting expander 37 generates ordered lists of weight weights that discard the dimension used to represent information in signal 29 (for example, discard synchronization of events in signal 29) as sets of weight weights 43. Weight expander 37 is connected to transporting sets of weighting weights 43 to amplitude decoder 39.

El decodificador de amplitud 39 es un componente que está configurado para decodificar conjuntos de pesos de ponderación 43 en un conjunto de uno o más códigos función del tiempo 45 en donde la sincronización de eventos dentro de intervalos representa información. El decodificador de amplitud 39 está conectado para transmitir uno o más códigos función del tiempo 45 al decodificador de códigos función del tiempo 41. El decodificador de códigos función del tiempo 41 es un componente que decodifica al menos parte de la información en el uno o más códigos función del tiempo 45 en una o más señales 47 que representan información en un conjunto de estados. Por ejemplo, las señales 47 pueden representar información en binario (es decir, utilizando un par de estados discretos) o en decimal (es decir, utilizando diez estados discretos). El decodificador de códigos función del tiempo 41 está conectado para transmitir señales 47 al decodificador de estado 42. El decodificador de estado 42 es un componente que está configurado para decodificar señales 47 que representan información en un conjunto de dígitos en una señal 50. La señal 50 puede incluir al menos parte de la información incluida en la señal 21.Amplitude decoder 39 is a component that is configured to decode sets of weighting weights 43 into a set of one or more time-function codes 45 wherein timing of events within intervals represents information. The amplitude decoder 39 is connected to transmit one or more time-function codes 45 to the time-function code decoder 41. The time-function code decoder 41 is a component that decodes at least part of the information in the one or more codes function of time 45 in one or more signals 47 that represent information in a set of states. For example, signals 47 can represent information in binary (ie, using a pair of discrete states) or in decimal (ie, using ten discrete states). The time function code decoder 41 is connected to transmit signals 47 to the status decoder 42. The status decoder 42 is a component that is configured to decode signals 47 that represent information in a set of digits in a signal 50. The signal 50 may include at least part of the information included in signal 21.

Uno o más de entre el descodificador de amplitud 39, el descodificador de códigos función del tiempo 41 y el descodificador de estado 42 pueden incluir un sumador que ensambla un conjunto de dígitos más pequeños en un conjunto de dígitos más grandes. Por ejemplo, en algunas puestas en práctica, el decodificador de amplitud 39 puede incluir un sumador de código función del tiempo que ensambla múltiples códigos función del tiempo en un solo código función del tiempo 45. A modo de otro ejemplo, en algunas puestas en práctica, el decodificador de códigos función del tiempo 41 puede incluir un sumador que ensambla múltiples señales que representa información en un conjunto de dígitos discretos en una sola señal 47 que representa información en un conjunto de dígitos discretos. A modo de otro ejemplo, en algunas puestas en práctica, el decodificador de estado 42 puede incluir un sumador que ensambla señales en una sola señal 50.One or more of the amplitude decoder 39, the time function code decoder 41, and the status decoder 42 may include an adder that assembles a set of smaller digits into a set of larger digits. For example, in some implementations, the amplitude decoder 39 may include a time-function code adder that assembles multiple time-function codes into a single time-function code 45. By way of another example, in some implementations , the time function code decoder 41 may include an adder that assembles multiple signals representing information in a set of discrete digits into a single signal 47 representing information in a set of discrete digits. By way of another example, in some implementations, the state decoder 42 may include an adder that assembles signals into a single signal 50.

La Figura 1B es un diagrama de flujo de un proceso 70 para codificar y decodificar información. El proceso 70 puede realizarse de forma aislada o junto con otras actividades. Por ejemplo, el proceso 70 se puede realizar en la etapa 4130 en el proceso 4100 (Figura 41). El proceso 3900 se puede realizar mediante un sistema de codificador/decodificador, tal como el sistema codificador/decodificador 3 (Figura 1A).Figure 1B is a flow diagram of a process 70 for encoding and decoding information. Process 70 can be performed in isolation or in conjunction with other activities. For example, process 70 can be performed at step 4130 in process 4100 (Figure 41). Process 3900 can be performed by an encoder / decoder system, such as encoder / decoder system 3 (Figure 1A).

En el proceso 70, los datos se codifican en un conjunto de dígitos (etapa 72) y los dígitos se codifican en un código función del tiempo (etapa 74). El código función del tiempo representa información que utiliza la sincronización de eventos dentro de intervalos. Las amplitudes de los eventos dentro del código función del tiempo se ponderan de conformidad con la sincronización de otros eventos en el código función del tiempo (etapa 76). Por ejemplo, los eventos se pueden ponderar según la sincronización de los eventos predecesores en ese código función del tiempo. La ponderación de amplitud no necesita agregar nueva información al código función del tiempo, sino que puede representar al menos parte de la información existente en el código función del tiempo en otra dimensión, a saber, las amplitudes de los eventos.In process 70, the data is encoded in a set of digits (step 72) and the digits are encoded in a code as a function of time (step 74). The function-of-time code represents information that is used by the synchronization of events within intervals. The amplitudes of the events within the time function code are weighted according to the timing of other events in the time function code (step 76). For example, the events can be weighted according to the timing of the predecessor events in that code as a function of time. Amplitude weighting does not need to add new information to the code as a function of time, but can represent at least some of the existing information in the code as a function of time in another dimension, namely the amplitudes of the events.

Los códigos función del tiempo, ponderados en amplitud, se pueden comprimir en un código unidimensional (etapa 78). El código unidimensional puede representar al menos parte de la información en códigos función del tiempo ponderados en amplitud en una sola dimensión, por ejemplo, utilizando la sincronización de eventos.The amplitude-weighted time-function codes can be compressed into a one-dimensional code (step 78). The one-dimensional code may represent at least part of the information in amplitude-weighted time-function codes in a single dimension, for example, using event synchronization.

En un dispositivo receptor, el código unidimensional puede expandirse en conjuntos de amplitudes (etapa 80). Cada evento en el código unidimensional se puede asociar con un solo peso de ponderación en cada conjunto de pesos. En algunas puestas en práctica, los conjuntos de amplitudes pueden ser una lista de amplitudes sin ninguna información temporal. En otras puestas en práctica, el código unidimensional por sí mismo puede ponderarse mediante múltiples conjuntos de amplitudes para proporcionar múltiples versiones ponderadas en amplitud del código unidimensional (con anterioridad).In a receiving device, the one-dimensional code can be expanded into sets of amplitudes (step 80). Each event in the one-dimensional code can be associated with a single weighting weight in each set of weights. In some implementations, the sets of amplitudes can be a list of amplitudes without any temporal information. In other implementations, the one-dimensional code itself may be weighted by multiple sets of amplitudes to provide multiple amplitude-weighted versions of the one-dimensional code (beforehand).

Las amplitudes se pueden decodificar en un código función del tiempo (etapa 82) que a su vez se puede decodificar en una o más señales que representan información en un conjunto de dígitos (etapa 84). La una o más señales que representan información en un conjunto de dígitos pueden por sí misma decodificarse en otra representación (etapa 86).The amplitudes can be decoded into a time-function code (step 82) which in turn can be decoded into one or more signals representing information in a set of digits (step 84). The one or more signals representing information in one set of digits can themselves be decoded into another representation (step 86).

Codificador temporalTemporal encoder

La Figura 2A es una representación esquemática de un sistema 100 en donde se puede codificar información. El sistema 100 incluye un codificador temporal 105 que incluye una entrada 110 y una salida 115. La entrada 110 y la salida 115 son estructuras físicas a través de las cuales las señales se reciben y transfieren respectivamente fuera del codificador temporal 105. El codificador temporal 105 es un componente que codifica información lo que hace que ocurran eventos en momentos particulares dentro de los intervalos de tiempo de una señal de salida. El codificador temporal 105 puede, en efecto, expresar el contenido de información de una señal de entrada en un formato de salida en donde la sincronización de eventos dentro de intervalos representa el contenido de información de la señal de entrada. El codificador temporal 105 se puede utilizar junto con otros dispositivos. Por ejemplo, el codificador temporal 105 se puede utilizar como codificador función del tiempo 25 (Figura 1A).Figure 2A is a schematic representation of a system 100 where information can be encoded. The system 100 includes a time encoder 105 that includes an input 110 and an output 115. The input 110 and output 115 are physical structures through which signals are respectively received and transferred out of the time encoder 105. The time encoder 105 it is a component that encodes information that causes events to occur at particular times within the time intervals of an output signal. The time encoder 105 may, in effect, express the information content of an input signal in an output format where the timing of events within intervals represents the information content of the input signal. The temporary encoder 105 can be used in conjunction with other devices. For example, time encoder 105 can be used as time function encoder 25 (Figure 1A).

La entrada 110 del codificador temporal 105 se puede conectar para recibir información 120 en una señal 125 recibida desde una ruta de comunicación de datos. La señal 125 representa información 120 en un conjunto finito ordenado de dígitos discretos. Por ejemplo, en algunas puestas en práctica, la información de entrada 120 puede expresarse en dígitos binarios como una serie de estados de nivel alto (es decir, "1") y de nivel bajo (es decir, "0"), tal como se muestra. La entrada 110 puede ser un puerto de datos binarios en serie o en paralelo. La señal 125 se puede transmitir por una ruta de comunicación de datos inalámbrica o por cable. The input 110 of the time encoder 105 can be connected to receive information 120 on a signal 125 received from a data communication path. Signal 125 represents information 120 in an ordered finite set of discrete digits. For example, in some implementations, the input information 120 may be expressed in binary digits as a series of high-level (ie, "1") and low-level (ie, "0") states, such as it shows. Input 110 can be a serial or parallel binary data port. Signal 125 can be transmitted over a wired or wireless data communication path.

La salida 115 del codificador temporal 105 se puede conectar con el fin de transferir información codificada en una señal 135 transportada a un sistema o medio de soporte 140. La información en la señal 135 se expresa por los momentos en los que ocurren eventos dentro de los intervalos de la señal 135. La sincronización de los eventos dentro de estos intervalos representa toda la información dentro de la señal 125. Por ejemplo, tal como se describe a continuación, los eventos que ocurren por primera vez dentro de intervalos de tiempo pueden expresar dígitos que tienen estados de nivel alto dentro de la señal 125, mientras que los eventos que ocurren en el segundo momento dentro de los intervalos de tiempo pueden expresar dígitos que tienen estados de nivel bajo dentro de la señal 125. Los primeros tiempos se pueden distinguir de los segundos.The output 115 of the temporal encoder 105 can be connected in order to transfer information encoded in a signal 135 transported to a system or support medium 140. The information in the signal 135 is expressed by the times when events occur within the intervals of signal 135. The timing of events within these intervals represents all the information within signal 125. For example, as described below, events that occur for the first time within time intervals may express digits that have high-level states within signal 125, while events occurring at the second moment within time intervals can express digits that have low-level states within signal 125. The first times can be distinguished from the seconds.

El sistema o medio de soporte 140 al que se transporta la señal 135 varía según el contexto operativo del sistema 100. Por ejemplo, si el sistema 100 es parte de un sistema de transmisión de datos, el sistema o medio de soporte 140 puede incluir un transmisor de datos. A modo de otro ejemplo, si el sistema 100 es parte de un sistema de almacenamiento de datos, el sistema o medio de soporte 140 puede incluir un cabezal de escritura que puede escribir información en un dispositivo de almacenamiento de datos.The support system or means 140 to which the signal 135 is transported varies depending on the operating context of the system 100. For example, if the system 100 is part of a data transmission system, the support system or means 140 may include a data transmitter. By way of another example, if the system 100 is part of a data storage system, the support system or means 140 may include a writing head that can write information to a data storage device.

En funcionamiento, el codificador temporal 105 recibe la señal 125 en la entrada 110. El codificador temporal 105 codifica la información 120 en la señal 125 expresando la información de entrada 120 en la señal 135 con eventos sincronizados para que ocurran en tiempos distinguibles dentro de diferentes intervalos. El codificador temporal 105 envía la señal 135, que incluye los eventos sincronizados, al sistema o medio de soporte 140.In operation, time encoder 105 receives signal 125 at input 110. Time encoder 105 encodes information 120 into signal 125 by expressing input information 120 into signal 135 with events timed to occur at distinguishable times within different times. intervals. The time encoder 105 sends the signal 135, which includes the synchronized events, to the support system or means 140.

La Figura 2B es una representación esquemática de una puesta en práctica del codificador temporal 105. La puesta en práctica ilustrada del codificador temporal 105 incluye un detector de estado 205, un circuito de sincronización de eventos 210 y un generador de eventos 215. El detector de estado 205 es un componente que detecta estados de dígitos en la señal 125 que representa información de entrada 120. Por ejemplo, en puestas en práctica donde la información de entrada 120 se expresa en una serie de dígitos binarios, el detector de estado 205 puede ser un detector de bits que distingue entre los estados binarios "1" y "0". El detector de estado 205 está conectado entre la entrada 110 y el circuito de sincronización de eventos 210. Las indicaciones de los estados detectados 220 se transmiten al circuito de sincronización de eventos 210.Figure 2B is a schematic representation of an implementation of the time encoder 105. The illustrated implementation of the time encoder 105 includes a status detector 205, an event synchronization circuit 210, and an event generator 215. The event detector state 205 is a component that detects digit states in signal 125 representing input information 120. For example, in implementations where input information 120 is expressed in a series of binary digits, state detector 205 may be a bit detector that distinguishes between binary states "1" and "0". The state detector 205 is connected between the input 110 and the event synchronization circuit 210. The indications of the detected states 220 are transmitted to the event synchronization circuit 210.

El circuito de sincronización de eventos 210 es un componente que está configurado para especificar la sincronización de eventos dentro de intervalos de una señal de salida 135. El circuito de sincronización de eventos 210 incluye un reloj 225, un contador 230, un reinicio de intervalo 235 y un selector de sincronización 240. El reloj 225 proporciona una señal de salida de reloj 242 al contador 230. El contador 230 está conectado para recibir la señal de salida de reloj 242 y dar salida a un conteo dinámico de la señal de reloj 245. El conteo dinámico 245 está acoplado al reinicio de intervalo 235 y al selector de sincronización 240. El reinicio de intervalo 235 puede incluir un comparador (no ilustrado) que compara el recuento dinámico de la señal de reloj con un recuento de umbral representativo de la duración de un intervalo. Dicha comparación puede determinar cuándo ha transcurrido un intervalo. El reinicio de intervalo 235 proporciona una señal de reinicio 250 en respuesta a la etapa de un intervalo. El contador 230 recibe la señal de reinicio 250 y puede reiniciar la cuenta de la señal de reloj en respuesta a la señal de reinicio. La puesta a cero del contador 230 puede por tanto demarcar intervalos de una duración del recuento umbral.Event timing circuit 210 is a component that is configured to specify timing of events within intervals of an output signal 135. Event timing circuit 210 includes clock 225, counter 230, interval reset 235 and a timing selector 240. Clock 225 provides a clock output signal 242 to counter 230. Counter 230 is connected to receive clock output signal 242 and output a dynamic count of clock signal 245. The dynamic count 245 is coupled to the interval reset 235 and the timing selector 240. The interval reset 235 may include a comparator (not illustrated) that compares the dynamic count of the clock signal to a threshold count representative of the duration. of an interval. Such a comparison can determine when an interval has elapsed. The interval reset 235 provides a reset signal 250 in response to the step of an interval. The counter 230 receives the reset signal 250 and can reset the count of the clock signal in response to the reset signal. Resetting the counter 230 may therefore demarcate intervals of a threshold count duration.

El selector de sincronización 240 recibe tanto el recuento dinámico de la señal de reloj 245 como las indicaciones de los estados detectados 220 por el detector de estado 205. El selector de sincronización 240 puede incluir un interruptor 255 y un comparador 260. El comparador 260 incluye un par de entradas 265, 270. La entrada 265 recibe el recuento dinámico de la señal de reloj 245 proporcionada por el contador 230. La entrada 270 recibe una señal de salida del interruptor 275 del interruptor 255. El interruptor 255, y los otros interruptores descritos en el presente documento, se pueden poner en práctica como, por ejemplo, un interruptor electro-mecánico, uno o más transistores o instrucciones legibles por máquina.Synchronization selector 240 receives both the dynamic count of the clock signal 245 and indications of the states 220 detected by state detector 205. Synchronization selector 240 may include a switch 255 and a comparator 260. Comparator 260 includes a pair of inputs 265, 270. Input 265 receives the dynamic count of the clock signal 245 provided by counter 230. Input 270 receives an output signal from switch 275 of switch 255. Switch 255, and the other switches described herein, they may be implemented as, for example, an electro-mechanical switch, one or more transistors, or machine-readable instructions.

El interruptor 255 incluye una referencia alta 280 y una referencia baja 285. La referencia alta 280 incorpora los tiempos dentro de un intervalo en donde deben ocurrir eventos que representan dígitos que tienen estados altos en la señal 125. La referencia baja 285 incorpora los tiempos dentro de un intervalo en donde deben ocurrir eventos que representan dígitos que tienen estados bajos en la señal 125. El interruptor 255 recibe las indicaciones de los estados detectados 220 por el detector de estado 205. El interruptor 255 conmuta entre aplicar la referencia alta 280 y la referencia baja 285 a la entrada 270 del comparador 260 en respuesta a las indicaciones de los estados detectados por el detector de estado 205. En particular, en respuesta a una indicación de que el detector de estado 205 ha detectado un estado bajo, el interruptor 255 conmuta para conectar la referencia baja 285 a la entrada 270. En respuesta a una indicación de que el detector de estado 205 ha detectado un estado alto, el interruptor 255 conmuta para conectar la referencia alta 280 a la entrada 270.Switch 255 includes a high reference 280 and a low reference 285. The high reference 280 incorporates the times within an interval where events representing digits that have high states in the signal 125 must occur. The low reference 285 incorporates the times within of an interval where events representing digits that have low states in signal 125 must occur. Switch 255 receives indications of the states detected 220 by state detector 205. Switch 255 toggles between applying high reference 280 and low reference 285 to input 270 of comparator 260 in response to indications of states detected by state detector 205. In particular, in response to an indication that state detector 205 has detected a low state, switch 255 switches to connect low reference 285 to input 270. In response to an indication that status detector 205 has detected a status high, switch 255 toggles to connect high reference 280 to input 270.

El comparador 260 compara el recuento de la señal de reloj proporcionada por el contador 230 con la referencia baja 285 o con la referencia alta 280 y proporciona los resultados de la comparación 290.Comparator 260 compares the count of the clock signal provided by counter 230 to either the low reference 285 or the high reference 280 and provides the results of the comparison 290.

El generador de eventos 215 es un componente que está configurado para generar eventos en la señal de salida 135. El generador de eventos 215 está conectado para recibir los resultados 290 de las comparaciones del comparador 260 y sincronizar la generación de eventos basándose en los resultados de las comparaciones. Por ejemplo, el generador de eventos 215 puede ser un generador de pulsos que genera pulsos en respuesta a las transiciones en los resultados 290 que surgen de la salida de la señal de reloj por el contador 230 que pasa por la referencia baja proporcionada 285 o por la referencia alta 280. La ocurrencia de dichos eventos dentro los intervalos demarcados por el reinicio de intervalo 235 se sincronizan así para codificar los estados de los dígitos dentro de la señal 125 y, por lo tanto, se pueden denominar "eventos de datos". El generador de eventos 215 proporciona los eventos generados 295 a la salida 115.The event generator 215 is a component that is configured to generate events on the output signal 135. The event generator 215 is connected to receive the results 290 of the comparisons from the comparator 260 and to synchronize the generation of events based on the results of the comparisons. For example, him event generator 215 may be a pulse generator that generates pulses in response to transitions in results 290 arising from the clock signal output by counter 230 passing through the provided low reference 285 or through the high reference 280 The occurrence of such events within the intervals demarcated by the interval reset 235 are thus synchronized to encode the states of the digits within the signal 125 and can therefore be called "data events". Event generator 215 provides generated events 295 to output 115.

El selector de sincronización 240 también está conectado para recibir la señal de reinicio de intervalo 250. El selector de sincronización 240 puede avanzar al siguiente dígito y reiniciar la comparación mediante el comparador 260 en respuesta a la señal de reinicio 250. En algunas puestas en práctica, el detector de estado 205 también es conectado para recibir la señal de reinicio de intervalo 250 (véase entrada de línea discontinua al detector de estado 205). El detector de estado 205 puede, por ejemplo, sincronizar la provisión de indicaciones de los estados detectados al selector de sincronización 240 en respuesta a la señal de reinicio 250 y así avanzar al siguiente dígito.The timing selector 240 is also connected to receive the interval reset signal 250. The timing selector 240 may advance to the next digit and restart the comparison by the comparator 260 in response to the reset signal 250. In some implementations , the status detector 205 is also connected to receive the interval reset signal 250 (see dashed line input to the status detector 205). The status detector 205 may, for example, synchronize the provision of indications of the detected states to the synchronization selector 240 in response to the reset signal 250 and thus advance to the next digit.

En funcionamiento, el codificador temporal 105 recibe la señal 125 en la entrada 110. El detector de estado 205 detecta estados en los dígitos de la señal 125 que representan la información de entrada 120 y proporciona una señal que caracteriza dichos dígitos (es decir, las indicaciones de los estados 220). El selector de sincronización 240 recibe la señal que describe dichos dígitos y genera salidas (es decir, la salida de resultados 290) que están sincronizadas para que se produzcan dentro de intervalos en correspondencia con los estados. En particular, los primeros estados en la señal 125 producen transiciones en los resultados 290 que ocurren por primera vez dentro de los intervalos de tiempo correspondientes y los segundos estados en la señal 125 producen transiciones en los resultados 290 que ocurren en un segundo momento dentro de los intervalos de tiempo correspondientes. La sincronización de estas transiciones se establece mediante la referencia baja 285 y la referencia alta 280.In operation, the time encoder 105 receives the signal 125 at the input 110. The status detector 205 detects states in the digits of the signal 125 that represent the input information 120 and provides a signal that characterizes those digits (that is, the state indications 220). Synchronization selector 240 receives the signal describing those digits and generates outputs (ie, results output 290) that are synchronized to occur within intervals in correspondence with the states. In particular, the first states in signal 125 produce transitions in results 290 that occur for the first time within the corresponding time intervals and the second states in signal 125 produce transitions in results 290 that occur in a second moment within the corresponding time intervals. The timing of these transitions is established by the low reference 285 and the high reference 280.

En respuesta a las transiciones en los resultados 290, el generador de eventos 215 genera eventos 295 que se proporcionan a la salida 115. La sincronización de los eventos sigue a la sincronización de las transiciones en los resultados 290. El reinicio del intervalo 235 demarca los intervalos para hacer avanzar el selector de sincronización 240 desde el estado de un dígito en la señal 125 al siguiente y para restablecer las comparaciones que generan transiciones en los resultados 290. Cada dígito en la señal 125 (incluyendo los estados bajos "0") está representado así por un evento sincronizado en correspondencia en un intervalo.In response to the transitions in the results 290, the event generator 215 generates events 295 that are provided to the output 115. The timing of the events follows the timing of the transitions in the results 290. The reset of the interval 235 demarcates the intervals to advance the timing selector 240 from the one digit state in signal 125 to the next and to reset the comparisons that generate transitions in the results 290. Each digit in signal 125 (including the low "0" states) is thus represented by a correspondingly synchronized event in an interval.

La Figura 3 es una representación esquemática de un proceso de codificación temporal. La codificación temporal ilustrada puede realizarse mediante un codificador temporal tal como el codificador temporal 105 (Figuras 1 y 2). En la puesta en práctica ilustrada, la información 120 se expresa en dígitos binarios como una serie de dígitos altos 305 y dígitos bajos 310.Figure 3 is a schematic representation of a time encoding process. The illustrated temporal encoding can be performed by a temporal encoder such as temporal encoder 105 (Figures 1 and 2). In the illustrated implementation, the information 120 is expressed in binary digits as a series of high digits 305 and low digits 310.

La codificación temporal codifica información 120 en una señal de código función del tiempo 135. La señal de código función del tiempo 135 incluye un conjunto de intervalos de tiempo 320, cada uno de los cuales corresponde a un dígito 305, 310 dentro de la señal 125. Cada intervalo de tiempo 320 incluye un evento de datos respectivo 325. La sincronización de eventos de datos 325 dentro de intervalos de tiempo individuales 320 indica el estado de un dígito 305, 310 correspondiente a ese intervalo de tiempo 320. Por ejemplo, en la puesta en práctica ilustrada, los eventos de datos 325 en intervalos 320 correspondientes a los dígitos de estado alto 305 ocurren en los tiempos 330 cerca del inicio de esos intervalos 320. Los eventos de datos 325 en los intervalos 320 correspondientes a los dígitos de estado bajo 305, ocurren en los momentos 335 cerca de la mitad de esos intervalos 320. Los tiempos 330 se distinguen de los tiempos 335.Time encoding encodes information 120 into a time-function code signal 135. Time-function code signal 135 includes a set of time slots 320, each of which corresponds to a digit 305, 310 within signal 125 Each time slot 320 includes a respective data event 325. Synchronization of data events 325 within individual time slots 320 indicates the status of a digit 305, 310 corresponding to that time slot 320. For example, in the In the illustrated implementation, data events 325 in intervals 320 corresponding to the high state digits 305 occur at times 330 near the start of those intervals 320. Data events 325 in intervals 320 corresponding to the low state digits 305, occur at times 335 about half of those 320 intervals. Times 330 are distinguished from times 335.

En diferentes puestas en práctica, diferentes características de eventos, incluyendo los eventos de datos 325, pueden identificarse y tratarse como el momento en donde ocurren los eventos. Por ejemplo, en la puesta en práctica ilustrada, los eventos de datos 325 son pulsos que pasan desde un estado de línea base (es decir, un estado de "reposo") 340 a un estado alto (es decir, un estado "excitado") 345 y luego retornan al estado de reposo de la línea base 340. En algunas puestas en práctica, las transiciones iniciales desde el estado de línea base 340 al estado alto 345 pueden identificarse y tratarse como los momentos en donde ocurren los eventos de datos 325. En otras puestas en práctica, las transiciones de retorno desde el estado alto 345 al estado de línea base 340 pueden identificarse y tratarse como los momentos en donde ocurren los eventos de datos 325. En algunas puestas en práctica, el evento de datos 325 son pulsos transitorios en el sentido de que las transiciones iniciales y de retorno son tan cercanas en el tiempo que son indistinguibles, por ejemplo, del codificador temporal 105. El momento en donde ocurre un evento de datos transitorio 325 se identifica basándose en la ocurrencia coincidente de la transición inicial y de retorno.In different implementations, different event characteristics, including data events 325, can be identified and treated as the time when the events occur. For example, in the illustrated implementation, data events 325 are pulses that transition from a baseline state (ie, a "sleep" state) 340 to a high state (ie, an "excited" state. ) 345 and then return to the resting state of the baseline 340. In some implementations, the initial transitions from the baseline state 340 to the high state 345 can be identified and treated as the times when data events occur 325 In other implementations, the return transitions from high state 345 to baseline state 340 can be identified and treated as the times when data events 325 occur. In some implementations, data event 325 is transient pulses in the sense that the initial and return transitions are so close in time that they are indistinguishable, for example, from the temporal encoder 105. The moment where a transient data event 325 occurs is identified b roasting at the coincident occurrence of the initial and return transition.

En la puesta en práctica ilustrada, las formas de los diferentes eventos de datos 325 son indistinguibles entre sí y los diferentes eventos de datos 325 pueden distinguirse solamente en virtud de su sincronización. Además, en algunas puestas en práctica, los eventos de datos 325 pueden ser "eventos binarios" en el sentido de que ocurren en uno de los dos únicos momentos posibles en el intervalo. Cuando ocurren en esos momentos, están en el mismo nivel de señal (por ejemplo, alto) pero su sincronización dentro del intervalo es atribuible a los estados de los dígitos que representan. In the illustrated implementation, the shapes of the different data events 325 are indistinguishable from each other and the different data events 325 can be distinguished only by virtue of their timing. Furthermore, in some implementations, the data events 325 may be "binary events" in the sense that they occur at one of only two possible times in the interval. When they occur at those times, they are at the same signal level (eg high) but their timing within the range is attributable to the states of the digits they represent.

En la puesta en práctica ilustrada, los intervalos de tiempo 320 tienen, todos ellos, la misma duración y ocurren de manera secuencial. La secuencia de intervalos de tiempo 320 corresponde a la secuencia de los dígitos correspondientes 305, 310 en la señal 125. Dicho de otro modo, el primer intervalo de tiempo 320 (y su evento 325) de la señal de código función del tiempo 135 corresponde al primer dígito 305 en la señal 125, el segundo intervalo de tiempo 320 (y su evento de datos 325) de la señal de código función del tiempo 135 corresponde al segundo dígito 310 en la señal 125, y así sucesivamente. Esta correspondencia está representada por flechas de trazos 350.In the illustrated implementation, the time intervals 320 are all the same duration and occur sequentially. The sequence of time intervals 320 corresponds to the sequence of the corresponding digits 305, 310 in signal 125. In other words, the first time interval 320 (and its event 325) of the time-function code signal 135 corresponds to the first digit 305 in signal 125, the second time slot 320 (and its data event 325) of the time function code signal 135 corresponds to the second digit 310 in signal 125, and so on. This correspondence is represented by dashed arrows 350.

La Figura 4 es una representación esquemática de otra puesta en práctica del codificador temporal 105. Además del detector de estado 205, el circuito de sincronización de eventos 210 y el generador de eventos 215, la puesta en práctica ilustrada del codificador temporal 105 también incluye un detector de inicio/parada 405. El detector de inicio/parada 405 es un componente que está configurado para detectar el inicio y el final de la transmisión de datos en la señal 125. Por ejemplo, el detector de inicio/parada 405 puede reconocer una o más cabeceras o pies en la señal 125.Figure 4 is a schematic representation of another implementation of time encoder 105. In addition to status detector 205, event synchronization circuit 210, and event generator 215, the illustrated implementation of time encoder 105 also includes a start / stop detector 405. Start / stop detector 405 is a component that is configured to detect the start and end of data transmission on signal 125. For example, start / stop detector 405 can recognize a or more headers or feet at sign 125.

El detector de inicio/parada 405 se puede conectar a la entrada 110. El detector de inicio/parada 405 emite indicaciones 410 del inicio y final de la transmisión de datos en la señal 125 al generador de eventos 215 y a otras partes del codificador temporal 105 (por ejemplo, al generador de eventos 215). El generador de eventos 215 puede generar eventos de inicio y final (por ejemplo, como parte de los eventos 295) en respuesta a las indicaciones emitidas por el detector de inicio/parada 405. Un evento de inicio es un evento que ocurre en un momento que delimita el inicio de la salida de datos en los resultados 290 y permite determinar la sincronización de un primer intervalo y de un primer evento de datos. Un evento final es un evento que ocurre en un momento que demarca el final de la salida de datos en los resultados 290. En algunas puestas en práctica, uno o ambos eventos iniciales y eventos finales pueden utilizarse para restablecer procesos dependientes del tiempo, tal como se describe a continuación. Los eventos de inicio y finalización generados por el generador de eventos 215 se emiten como eventos 295 y se proporcionan a la salida 115.The start / stop detector 405 can be connected to input 110. The start / stop detector 405 outputs indications 410 of the start and end of data transmission on signal 125 to the event generator 215 and other parts of the time encoder 105 (for example, to event generator 215). Event generator 215 may generate start and end events (for example, as part of events 295) in response to indications issued by start / stop listener 405. A start event is an event that occurs at one time. which delimits the start of the data output in the results 290 and allows determining the timing of a first interval and a first data event. An end event is an event that occurs at a time that marks the end of the data output in the 290 results. In some implementations, one or both of the initial events and the final events can be used to reset time-dependent processes, such as outlined below. The start and end events generated by event generator 215 are issued as events 295 and provided to output 115.

Las indicaciones del inicio y del final de la transmisión de datos en la señal 125 emitida por el detector de inicio/parada 405 pueden ser transmitidas y utilizadas por otras partes del codificador temporal 105 para sincronizar la salida de eventos iniciales, eventos finales y eventos de datos por el generador de eventos 215. Por ejemplo, uno o más de entre el reloj 225, el contador 230 y el reinicio de intervalo 235 pueden desactivarse durante un intervalo que está asociado con un evento inicial (por ejemplo, para permitir el procesamiento/desestimación de una cabecera en la información 120). A modo de otro ejemplo, la progresión del selector de sincronización 240 desde dígito a dígito o la detección de estados por el detector de estado 205 puede desactivarse durante un intervalo que está asociado con un evento inicial.The indications of the start and end of data transmission in the signal 125 emitted by the start / stop detector 405 can be transmitted and used by other parts of the time encoder 105 to synchronize the output of start events, end events, and stop events. data by event generator 215. For example, one or more of clock 225, counter 230, and interval reset 235 may be turned off during an interval that is associated with an initial event (for example, to allow processing / dismissal of a header in information 120). By way of another example, the progression of the timing selector 240 from digit to digit or the detection of states by the state detector 205 may be disabled during an interval that is associated with an initial event.

La Figura 5 es una representación esquemática de la codificación temporal con un codificador temporal que detecta el inicio y el final de la transmisión de datos en una señal. Por ejemplo, la codificación temporal ilustrada se puede realizar mediante un codificador temporal tal como el codificador temporal 105 que incluye un detector de inicio/parada 405 (Figura 4). En la puesta en práctica ilustrada, la señal 125 incluye una cabecera 505 (ilustrada como una "X") y un pie 510 (ilustrado como una "Y"). La cabecera 505 y el pie 510 enmarcan así la información 120 dentro de la señal 125.Figure 5 is a schematic representation of time encoding with a time encoder that detects the start and end of data transmission in a signal. For example, the illustrated time encoding can be performed by a time encoder such as time encoder 105 that includes a start / stop detector 405 (Figure 4). In the illustrated implementation, the sign 125 includes a header 505 (illustrated as an "X") and a foot 510 (illustrated as a "Y"). Header 505 and footer 510 thus frame information 120 within token 125.

La codificación temporal codifica la información 120 en la señal de código función del tiempo 135, tal como se describió con anterioridad con referencia a la Figura 3. La señal de código función del tiempo 135 incluye el intervalo de cabecera 515 y un intervalo de pie 520. El intervalo de cabecera 515 incluye un evento de cabecera 525 que ocurre en un momento 535 dentro del intervalo de cabecera 515. El intervalo de pie 520 incluye un evento de pie 530 que ocurre en un momento 540 dentro del intervalo de pie 520. El intervalo de cabecera 515 y el evento de cabecera 525 demarcan el inicio de la señal de código función del tiempo 135. El intervalo de pie 520 y el evento de pie 530 demarcan el final de la señal de código función del tiempo 135. La demarcación del inicio de la a señal de código función del tiempo 135 se puede utilizar para determinar la sincronización del primer evento 325 dentro del primer intervalo 320. Por ejemplo, el primer evento 325 ocurre un momento 545 después del evento de cabecera 525. La sincronización del primer evento 325 dentro del primer intervalo 320 se puede determinar utilizando la duración del intervalo 515 y del momento 545. Por ejemplo, en puestas en práctica donde la duración del intervalo 515 es la misma en los intervalos 320, la detección del evento 525 se puede utilizar como una señal de reinicio para reiniciar un intervalo.Temporal encoding encodes information 120 into time-function code signal 135, as previously described with reference to Figure 3. Time-function code signal 135 includes header slot 515 and footer slot 520 The header interval 515 includes a header event 525 that occurs at a time 535 within the header interval 515. The foot interval 520 includes a foot event 530 that occurs at a time 540 within the foot interval 520. The The header interval 515 and the header event 525 mark the start of the time-function code signal 135. The foot-interval 520 and the foot-event 530 mark the end of the time-function code signal 135. The demarcation of the Start of the time function code signal 135 can be used to determine the timing of the first event 325 within the first interval 320. For example, the first event 325 occurs at a time 545 after the header event 525. The timing of the first event 325 within the first interval 320 can be determined using the duration of the interval 515 and the moment 545. For example, in implementations where the duration of the interval 515 is the same in the intervals 320 , the detection of event 525 can be used as a reset signal to reset an interval.

En la puesta en práctica ilustrada, los eventos 525, 530 son pulsos que pasan desde el estado de línea base 340 al estado alto 345 y luego retornan al estado de línea base 340. En algunas puestas en práctica, las formas de los eventos 525, 530 pueden ser indistinguibles entre sí y de las formas de los eventos de datos 325. En estas puestas en práctica, los eventos 325, 525, 530 se pueden distinguir solamente en virtud de su sincronización y posición. Por ejemplo, el evento 525 puede reconocerse como el primer evento. En algunas puestas en práctica, los intervalos 515, 520 tienen la misma duración entre sí y como los intervalos de tiempo 320.In the illustrated implementation, events 525, 530 are pulses that pass from the baseline state 340 to the high state 345 and then return to the baseline state 340. In some implementations, the forms of events 525, 530 may be indistinguishable from each other and from the shapes of the data events 325. In these implementations, the events 325, 525, 530 can be distinguished only by virtue of their timing and position. For example, event 525 can be recognized as the first event. In some implementations, the intervals 515, 520 have the same duration as each other and as the time intervals 320.

La Figura 6 es una representación esquemática de otra puesta en práctica del codificador temporal 105. Además del detector de estado 205, el circuito de sincronización de eventos 210 y el generador de eventos 215, la puesta en práctica ilustrada del codificador temporal 105 también incluye un codificador de cabecera/pie 605. El codificador de cabecera/pie 605 es un componente que está configurado para codificar una cabecera ubicada al inicio de la transmisión de datos en la señal 125, y un pie ubicado al final de la transmisión de datos en la señal 125, o ambos con información. En algunas puestas en práctica, la información con la que se codifica una cabecera o pie se puede recibir, por ejemplo, en la cabecera o pie de la señal 125. Por ejemplo, el codificador de cabecera/pie 605 puede codificar una cabecera o pie con información que identifica la señal recibida en la entrada 110 o con información que caracteriza aspectos de la señal recibida en la entrada 110. Por ejemplo, la señal recibida en la entrada 110 puede identificarse según, por ejemplo, la fuente y el destino de la señal recibida, el tipo de información en la señal recibida y la relación entre la señal recibida y otras señales. Los aspectos de la señal recibida que se pueden caracterizar incluyen la ubicación de un punto flotante dentro de la señal recibida, el signo de un número dentro de la señal recibida y la información de verificación de errores. El codificador de cabecera/pie 605 puede codificar una cabecera o pie con dicha información activando la introducción de uno o más eventos en una zona de cabecera o pie asociada con la señal de entrada 125.Figure 6 is a schematic representation of another implementation of time encoder 105. In addition to status detector 205, event synchronization circuit 210, and event generator 215, the illustrated implementation of time encoder 105 also includes a header / footer encoder 605. The header / footer encoder 605 is a component that is configured to encode a header located at the beginning of the data transmission on signal 125, and a foot located at the end of data transmission on signal 125, or both with information. In some implementations, the information that a header or footer is encoded with may be received, for example, in the header or footer of signal 125. For example, the header / footer encoder 605 may encode a header or footer. with information identifying the signal received at input 110 or with information characterizing aspects of the signal received at input 110. For example, the signal received at input 110 can be identified according to, for example, the source and destination of the received signal, the type of information in the received signal, and the relationship between the received signal and other signals. Aspects of the received signal that can be characterized include the location of a floating point within the received signal, the sign of a number within the received signal, and error checking information. Header / footer encoder 605 may encode a header or footer with such information by triggering the introduction of one or more events in a header or footer area associated with input signal 125.

El codificador de cabecera/pie 605 se puede conectar a la entrada 110. El codificador de cabecera/pie 605 emite una o más señales 610 que identifican o caracterizan información en la cabecera o pie y proporciona las señales 610 al generador de eventos 215. El generador de eventos 215 puede generar eventos que están sincronizados para ocurrir dentro de la cabecera o pie de la señal 125 en respuesta a las indicaciones emitidas por el codificador de cabecera/pie 605. Los eventos 295 generados por el generador de eventos 215 se proporcionan a la salida 115.The header / footer encoder 605 may be connected to input 110. The header / footer encoder 605 outputs one or more signals 610 that identify or characterize information in the header or footer and provides the signals 610 to the event generator 215. The Event generator 215 can generate events that are timed to occur within the header or footer of signal 125 in response to indications issued by header / footer encoder 605. Events 295 generated by event generator 215 are provided to exit 115.

En algunas puestas en práctica, la información de identificación o caracterización en las señales 610 también se puede enviar a otras partes del codificador temporal 105. Esta información se puede utilizar de diversas formas, incluyendo, por ejemplo, la verificación de errores y la activación y/o restablecimiento de la demarcación de intervalos y generación de eventos de datos.In some implementations, the identification or characterization information in the signals 610 may also be sent to other parts of the temporal encoder 105. This information may be used in a variety of ways, including, for example, error checking and triggering and / or restoration of interval demarcation and generation of data events.

La Figura 7 es una representación esquemática de la codificación de una cabecera al inicio de la transmisión de datos en una señal. Por ejemplo, la codificación ilustrada se puede realizar mediante un codificador temporal tal como el codificador temporal 105 que incluye un codificador de cabecera/pie 605 (Figura 6). La información puede ser codificada por uno o más eventos que ocurren dentro del intervalo de cabecera 515 o del intervalo de pie 520 en la señal 135.Figure 7 is a schematic representation of the encoding of a header at the beginning of data transmission in a signal. For example, the illustrated encoding can be performed by a time encoder such as time encoder 105 that includes a header / footer encoder 605 (Figure 6). The information can be encoded by one or more events that occur within the header interval 515 or the footer interval 520 in the signal 135.

En la puesta en práctica ilustrada, el intervalo de cabecera 515 incluye un evento de cabecera 705. El evento de cabecera 705 ocurre en un momento 710 dentro del intervalo de cabecera 515. La sincronización del evento de cabecera 705 dentro del intervalo de cabecera 515 puede determinarse, por ejemplo, midiendo el intervalo de tiempo 710 entre el tiempo 535 y el tiempo 710.In the illustrated implementation, the header interval 515 includes a header event 705. The header event 705 occurs at a time 710 within the header interval 515. The timing of the header event 705 within the header interval 515 may be determined, for example, by measuring the time interval 710 between time 535 and time 710.

En algunas puestas en práctica, el intervalo de cabecera 515 se puede dividir en sí mismo en múltiples subintervalos, cada uno de los cuales puede incluir uno o más eventos informativos. Se pueden asignar diferentes subintervalos para codificar diferente información de identificación y caracterización. Por ejemplo, un primer subintervalo puede incluir un evento, cuya sincronización indica si un número codificado en la señal 135 tiene signo positivo o negativo. A modo de otro ejemplo, un conjunto de subintervalos puede incluir eventos informativos, cuya sincronización indica la posición de la información codificada en la señal 135 dentro de un conjunto más superior de información (por ejemplo, después de la segmentación, tal como se describe a continuación).In some implementations, the header interval 515 may itself be divided into multiple subranges, each of which may include one or more informational events. Different sub-ranges can be assigned to encode different identification and characterization information. For example, a first sub-interval may include an event, the timing of which indicates whether a number encoded in signal 135 has a positive or negative sign. By way of another example, a set of sub-ranges may include informational events, the timing of which indicates the position of the information encoded in signal 135 within a higher set of information (for example, after segmentation, as described below). continuation).

En la puesta en práctica ilustrada, el evento de cabecera 705 es un pulso que pasa desde el estado de línea base 340 al estado alto 345 y luego retorna al estado de línea base 340. En algunas puestas en práctica, las formas de los eventos de cabecera 705 pueden ser indistinguibles entre sí, a partir de las formas de los eventos 525, 530 y de las formas de los eventos de datos 325. En estas puestas en práctica, los eventos 705, 325, 525, 530 se pueden distinguir solamente en virtud de su sincronización y posición.In the illustrated implementation, the header event 705 is a pulse that passes from the baseline state 340 to the high state 345 and then returns to the baseline state 340. In some implementations, the forms of the events of Header 705 can be indistinguishable from each other, from the forms of the events 525, 530 and the forms of the data events 325. In these implementations, the events 705, 325, 525, 530 can be distinguished only in by virtue of their timing and position.

En algunas puestas en práctica, un pie al final de la transmisión de datos en una señal se puede codificar con uno o más eventos informativos. En algunas puestas en práctica, tanto una cabecera como un pie se pueden codificar con uno o más eventos informativos.In some implementations, a footer at the end of data transmission in a signal may be encoded with one or more informational events. In some implementations, both a header and a footer can be encoded with one or more informational events.

La Figura 8 es una representación esquemática de otra puesta en práctica del codificador temporal 105. La puesta en práctica ilustrada del codificador temporal 105 incluye un detector de estado 205 y un circuito de sincronización de eventos 210 que están adaptados para funcionar con señales 125 que codifican información con dígitos que tienen más de dos estados posibles. Por ejemplo, la señal 125 puede codificar información en dígitos cuaternarios o decimales.Figure 8 is a schematic representation of another implementation of the time encoder 105. The illustrated implementation of the time encoder 105 includes a status detector 205 and an event synchronization circuit 210 that are adapted to operate with signals 125 that encode information with digits that have more than two possible states. For example, signal 125 may encode information in quaternary or decimal digits.

El detector de estado 205 está configurado para detectar los estados de los dígitos en la señal 125 y transmitir las indicaciones de los estados detectados al circuito de sincronización de eventos 210. El circuito de sincronización de eventos 210 incluye un selector de sincronización 240 que está conectado para recibir estas indicaciones y configurar el interruptor 255 en respuesta. En particular, el interruptor 255 incluye un conjunto de más de dos referencias 805 que están asociadas, cada una, con estados respectivos (es decir, tiempos dentro de un intervalo en donde se producirán eventos que representan un estado correspondiente de los dígitos en la señal 125). Por ejemplo, la primera referencia 805 se puede asociar con un primer momento dentro de un intervalo, la segunda referencia 805 se puede asociar con un segundo momento dentro de un intervalo, y la N-ésima referencia 805 se puede asociar con la N-ésimo momento dentro de un intervalo.The state detector 205 is configured to detect the states of the digits in the signal 125 and transmit the indications of the detected states to the event synchronization circuit 210. The event synchronization circuit 210 includes a synchronization selector 240 that is connected to receive these prompts and set switch 255 in response. In particular, the switch 255 includes a set of more than two references 805 that are associated, each one, with respective states (that is, times within an interval where events will occur that represent a corresponding state of the digits in the signal. 125). For example, the first reference 805 can be associated with a first moment within an interval, the second reference 805 can be associate with a second moment within an interval, and the N-th reference 805 can be associated with the N-th moment within an interval.

El interruptor 255 está configurado para aplicar la referencia adecuada 805 a la entrada 270 del comparador 260 en respuesta a las indicaciones de los estados detectados por el detector de estado 205. El comparador 260 compara el recuento de la señal de reloj emitida por el contador 230 con la referencia adecuada 805 y genera los resultados 290 de las comparaciones. Los diversos estados de los dígitos en la señal 125, por tanto, dan como resultado transiciones que ocurren en tiempos distinguibles dentro de intervalos de tiempo correspondientes, con la sincronización de estas transiciones establecidas por las referencias 805.Switch 255 is configured to apply the appropriate reference 805 to input 270 of comparator 260 in response to indications of states detected by state detector 205. Comparator 260 compares the count of the clock signal emitted by counter 230 with the appropriate reference 805 and generates the results 290 of the comparisons. The various states of the digits in signal 125, therefore, result in transitions occurring at distinguishable times within corresponding time intervals, with the timing of these transitions established by references 805.

La Figura 9 es una representación esquemática de la codificación temporal de una señal que incluye dígitos que tienen más de dos estados posibles. La codificación temporal ilustrada puede realizarse mediante un codificador temporal tal como el codificador temporal 105 (Figura 8). En la puesta en práctica ilustrada, la información 120 se expresa en la señal 125 utilizando dígitos que tienen cuatro estados posibles diferentes, a saber, dígitos 905 que tienen un primer estado (es decir, "A's"), dígitos 910 que tienen un segundo estado (es decir, "B's"), los dígitos 915 tienen un tercer estado (es decir, "C's") y los dígitos 920 tienen un cuarto estado (es decir, "D's"). En otras puestas en práctica, la información 120 se puede expresar en dígitos que tienen un número diferente de estados posibles (por ejemplo, dígitos que tienen 10 estados posibles diferentes que expresan información 120 en decimal) o en dígitos que tienen un número muy superior de estados posibles o un conjunto continuo de estados posibles (por ejemplo, un conjunto continuo analógico o casi analógico de estados posibles). En algunas puestas en práctica, los dígitos que tienen cuatro estados posibles pueden utilizarse para expresar información genética y representar cuatro ácidos nucleicos.Figure 9 is a schematic representation of the time encoding of a signal that includes digits that have more than two possible states. The illustrated time encoding can be performed by a time encoder such as time encoder 105 (Figure 8). In the illustrated implementation, information 120 is expressed in signal 125 using digits that have four different possible states, namely, digits 905 that have a first state (ie, "A's"), digits 910 that have a second. state (that is, "B's"), the digits 915 have a third state (that is, "C's") and the digits 920 have a fourth state (that is, "D's"). In other implementations, the information 120 may be expressed in digits that have a different number of possible states (for example, digits that have 10 different possible states that express information 120 in decimal) or in digits that have a much greater number of possible states or a continuous set of possible states (for example, an analog or quasi-analog continuous set of possible states). In some implementations, digits having four possible states can be used to express genetic information and represent four nucleic acids.

La codificación temporal codifica información 120 en una señal de código función del tiempo 135. La señal de código función del tiempo 135 incluye un conjunto de intervalos de tiempo 320, cada uno de los cuales corresponde a un dígito 905, 910, 915, 920 dentro de la señal 125. Cada intervalo de tiempo 320 incluye un evento de datos respectivo 325. La sincronización de los eventos de datos 325 dentro de los intervalos de tiempo individuales 320 indica el estado de los dígitos 905, 910, 915, 920 correspondientes a ese intervalo de tiempo 320. Por ejemplo, en la puesta en práctica ilustrada, los eventos de datos 325 en intervalos 320 correspondientes a los dígitos 905 del primer estado ocurren en los momentos 930 cerca del final de los intervalos 320. Los eventos de datos 325 en los intervalos 320 correspondientes a los dígitos 910 del segundo estado ocurren en los momentos 935 cerca de la mitad de los intervalos 320. Los eventos de datos 325 en intervalos 320 correspondientes a los dígitos 915 del tercer estado ocurren en los momentos 940 antes de la mitad de los intervalos 320. Los eventos de datos 325 en intervalos 320 correspondientes a los dígitos 920 del cuarto estado ocurren en los momentos 945 cerca del inicio de los intervalos 320. Los tiempos 930, 935, 940, 945 se pueden distinguir entre sí.Temporal encoding encodes information 120 into a time-function code signal 135. The time-function code signal 135 includes a set of time slots 320, each of which corresponds to a digit 905, 910, 915, 920 within signal 125. Each time slot 320 includes a respective data event 325. The timing of the data events 325 within the individual time slots 320 indicates the status of the digits 905, 910, 915, 920 corresponding to that time interval 320. For example, in the illustrated implementation, data events 325 in intervals 320 corresponding to the digits 905 of the first state occur at times 930 near the end of intervals 320. Data events 325 in the 320 intervals corresponding to the digits 910 of the second state occur at times 935 near the middle of the 320 intervals. The 325 data events at 320 intervals corresponding to the digits The 915s of the third state occur at times 940 before the middle of the 320 intervals. The 325 data events in 320 intervals corresponding to the digits 920 of the fourth state occur at times 945 near the start of the 320 intervals. The times 930, 935, 940, 945 can be distinguished from each other.

En otras puestas en práctica, un codificador temporal se puede poner en práctica como un circuito digital que recibe como entrada una secuencia de símbolos desde un conjunto predeterminado de símbolos y produce, como salida, una señal de salida codificada en el tiempo, en donde cada intervalo de tiempo en la señal de salida codificada en el tiempo incluye un único pulso en un momento dentro del intervalo determinado por el símbolo de entrada correspondiente. Los circuitos digitales pueden ser controlados por un ordenador programado o incluir un ordenador incorporado. En algunas puestas en práctica, cada símbolo de entrada se asigna a un carácter único que tiene una longitud en dígitos binarios (es decir, bits) N que es igual al número de diferentes símbolos de entrada posibles, y donde todos los bits son iguales excepto uno, por lo que la posición del bit distinto en el carácter identifica el símbolo al que corresponde el carácter. Por tanto, la secuencia de entrada de símbolos se asigna a una secuencia de entrada de caracteres, que puede introducirse en un registro de desplazamiento. La salida del registro de desplazamiento se sincroniza de modo que aparecen N bits en cada intervalo de tiempo 320. Esta salida está acoplada a un generador de pulsos de modo que la ocurrencia del bit distinto causa que se genere un pulso de salida en la salida del codificador temporal. En algunas de estas puestas en práctica, el codificador temporal incluye circuitos que transforman una señal de entrada analógica en una secuencia de símbolos. Si se desean cabeceras, pies y sincronización en la señal de salida, los símbolos de entrada correspondientes se pueden agregar como prefijo o sufijo, según sea el caso, a la señal real a transmitir, de conformidad con una convención o protocolo adoptado por el codificador y los decodificadores en sentido descendente.In other implementations, a time encoder may be implemented as a digital circuit that receives as input a sequence of symbols from a predetermined set of symbols and produces, as output, a time-coded output signal, where each time interval in the time-coded output signal includes a single pulse at a time within the interval determined by the corresponding input symbol. Digital circuits can be controlled by a programmed computer or include a built-in computer. In some implementations, each input symbol is assigned a single character that has a length in binary digits (that is, bits) N that is equal to the number of different possible input symbols, and where all bits are equal except one, so the position of the distinct bit in the character identifies the symbol to which the character corresponds. Therefore, the symbol input sequence is mapped to a character input sequence, which can be input to a shift register. The shift register output is clocked so that N bits appear in each time interval 320. This output is coupled to a pulse generator so that the occurrence of the different bit causes an output pulse to be generated at the output of the shift register. temporary encoder. In some of these implementations, the time encoder includes circuitry that transforms an analog input signal into a sequence of symbols. If headers, feet and synchronization are desired in the output signal, the corresponding input symbols can be added as a prefix or suffix, as the case may be, to the actual signal to be transmitted, in accordance with a convention or protocol adopted by the encoder. and decoders downstream.

La Figura 10 es una representación esquemática de una puesta en práctica del sistema 100, es decir, un sistema 1000 en donde se puede codificar información. El sistema 1000 incluye un componente de procesamiento neuronal 1005 al que se transmite la señal 135 desde el codificador temporal 105. El componente de procesamiento neuronal 1005 es un componente construido con tejido neuronal o que tiene un diseño inspirado en el diseño y función del tejido neuronal. Por lo tanto, el componente de procesamiento neuronal 1005 se puede poner en práctica utilizando nervios "húmedos" y otros componentes neuronales (por ejemplo, tal como una red neuronal biológica o el cerebro u otro tejido neuronal de un organismo vivo) o el componente de procesamiento neuronal 1005 se puede poner en práctica utilizando dispositivos de semiconductores (por ejemplo, tal como una red neuronal artificial puesta en práctica utilizando hardware o software). En algunas puestas en práctica, las combinaciones de dispositivos de semiconductores y de componentes neuronales húmedos pueden poner en práctica el componente de procesamiento neuronal 1005. Figure 10 is a schematic representation of an implementation of the system 100, that is, a system 1000 where information can be encoded. The system 1000 includes a neural processing component 1005 to which the signal 135 is transmitted from the temporal encoder 105. The neural processing component 1005 is a component constructed of neural tissue or having a design inspired by the design and function of neural tissue. . Thus, the neural processing component 1005 can be implemented using "wet" nerves and other neural components (eg, such as a biological neural network or the brain or other neural tissue of a living organism) or the Neural processing 1005 can be implemented using semiconductor devices (eg, such as an artificial neural network implemented using hardware or software). In some implementations, combinations of semiconductor devices and wet neural components can implement neural processing component 1005.

Tal como se muestra, el codificador temporal 105 envía la señal 135, que incluye eventos sincronizados, al componente de procesamiento neuronal 1005. En puestas en práctica donde los componentes de procesamiento neuronal 1005 se ponen en práctica utilizando componentes neuronales "húmedos", las propiedades de la señal 135 se pueden adaptar para compatibilidad con componentes neuronales húmedos. Por ejemplo, los eventos dentro de la señal 135 se pueden personalizar para imitar las características de amplitud y tiempo de los potenciales de acción. As shown, time encoder 105 sends signal 135, including synchronized events, to neural processing component 1005. In implementations where neural processing components 1005 are implemented using "wet" neural components, the properties signal 135 can be tailored for compatibility with wet neural components. For example, events within signal 135 can be customized to mimic the amplitude and time characteristics of action potentials.

En algunas puestas en práctica, el componente de procesamiento neuronal 1005 puede incluir múltiples elementos que reciben la señal 135. Por ejemplo, en los componentes de procesamiento neuronal 1005 puestos en práctica utilizando componentes neuronales "húmedos", múltiples nervios pueden recibir la señal 135. A modo de otro ejemplo, en el componente de procesamiento neuronal 1005 puesto en práctica utilizando componentes de semiconductores, múltiples entradas de red neuronal pueden recibir la señal 135.In some implementations, neural processing component 1005 may include multiple elements that receive signal 135. For example, in neural processing components 1005 implemented using "wet" neural components, multiple nerves may receive signal 135. By way of another example, in neural processing component 1005 implemented using semiconductor components, multiple neural network inputs can receive signal 135.

En funcionamiento, el codificador temporal 105 puede codificar la información 120 en la señal 125 en una forma que sea entendida por el componente de procesamiento neuronal 1005, es decir, la señal 135 con eventos sincronizados para que ocurran en tiempos distinguibles dentro de intervalos en una secuencia de intervalos. El codificador temporal 105 puede actuar, así como una interfaz entre el procesamiento de datos digitales binarios (y otros) y el procesamiento estadístico y el reconocimiento de patrones proporcionados en el componente de procesamiento neuronal 1005. Por ejemplo, el codificador temporal 105 se puede incluir en una prótesis neuronal que estimula los nervios con, por ejemplo, información auditiva, visual u otra información sensorial codificada en la señal 135.In operation, time encoder 105 may encode information 120 in signal 125 in a way that is understood by neural processing component 1005, that is, signal 135 with events timed to occur at distinguishable times within intervals in a sequence of intervals. Temporal encoder 105 may act as an interface between binary digital data processing (and others) and statistical processing and pattern recognition provided in neural processing component 1005. For example, temporal encoder 105 may be included in a neural prosthesis that stimulates the nerves with, for example, auditory, visual, or other sensory information encoded in signal 135.

La Figura 11 es una representación esquemática de una puesta en práctica del sistema 100, a saber, una que incluye un codificador multicanal 1100 en donde se puede codificar información. El sistema 1100 incluye un conjunto de codificadores temporales 105, un segmentador de datos 1105, una entrada 1110 y un conjunto de una o más salidas 1115.Figure 11 is a schematic representation of an implementation of the system 100, namely, one that includes a multi-channel encoder 1100 where information can be encoded. System 1100 includes a set of time encoders 105, a data slicer 1105, an input 1110, and a set of one or more outputs 1115.

La entrada 1110 recibe información 120 en una señal 125 en una ruta de comunicación de datos. La entrada 1110 proporciona una señal 1117 que transmite información en la señal 125 a una entrada 1120 del segmentador de datos 1105. El segmentador de datos 1105 es un componente que divide (o "fragmenta") una señal en unidades más pequeñas. El segmentador de datos 1105 incluye una entrada 1120 y una o más salidas 1125.Input 1110 receives information 120 on a signal 125 on a data communication path. Input 1110 provides a signal 1117 that transmits information in signal 125 to an input 1120 of data slicer 1105. Data slicer 1105 is a component that divides (or "chunks") a signal into smaller units. The data slicer 1105 includes an input 1120 and one or more outputs 1125.

El segmentador de datos 1105 divide los dígitos de conjunto relativamente mayores en la señal 125 en un conjunto de conjunto de dígitos más pequeña que representan cada uno un subconjunto apropiado de información 120. En algunas puestas en práctica, los segmentos pueden ser una parte contigua de los dígitos en la señal 125. En otras puestas en práctica, los segmentos pueden incluir dígitos no contiguos. En el ejemplo ilustrado, la señal 125 recibida por el segmentador de datos 1105 representa información 120 en un conjunto finito ordenado de dígitos discretos, por ejemplo, un conjunto de bits. El segmentador de datos 1105 divide la señal 125 en un conjunto de segmentos más pequeños, cada uno de los cuales representa un subconjunto adecuado de información 120 en un conjunto finito ordenado de dígitos discretos. El segmentador de datos 1105 proporciona los segmentos 1120 desde una o más salidas 1125 a las entradas 110 de los codificadores temporales correspondientes 105. Cada codificador temporal 105 codifica la información en un segmento recibido sincronizando la ocurrencia de eventos dentro de intervalos de tiempo de una señal de salida respectiva 135. La sincronización de eventos dentro de los intervalos en cada señal de salida 135 representa todos los dígitos discretos dentro de cada segmento.The data segmenter 1105 divides the relatively larger set digits in signal 125 into a smaller set of digit set that each represent an appropriate subset of information 120. In some implementations, the segments may be a contiguous part of the digits in signal 125. In other implementations, the segments may include non-contiguous digits. In the illustrated example, signal 125 received by data slicer 1105 represents information 120 in an ordered finite set of discrete digits, eg, a set of bits. Data segmenter 1105 divides signal 125 into a set of smaller segments, each of which represents a suitable subset of information 120 in an ordered finite set of discrete digits. The data segmenter 1105 provides the segments 1120 from one or more outputs 1125 to the inputs 110 of the corresponding temporal encoders 105. Each temporal encoder 105 encodes the information in a received segment by synchronizing the occurrence of events within time intervals of a signal. respective output signal 135. The timing of events within the intervals on each output signal 135 represents all the discrete digits within each segment.

El codificador temporal 105 emite las respectivas señales de salida 135 desde las salidas 1115 del codificador multicanal 1100. En algunas puestas en práctica, las señales de salida 135 se proporcionan a un único sistema o medio de soporte 140 al mismo tiempo. Por ejemplo, en puestas en práctica en donde el código función del tiempo de las señales de salida 135 incluyen cada uno un intervalo de cabecera 515 y un evento de cabecera 525, los eventos de cabecera 525 en las respectivas señales de salida ocurren en el mismo momento en el tiempo. El sistema o medio de soporte 140 puede incluir un conjunto de entradas, cada una de las cuales está conectada a una salida correspondiente 1115 para recibir una señal de salida correspondiente 135, tal como se describe a continuación. Temporal encoder 105 outputs respective output signals 135 from outputs 1115 of multichannel encoder 1100. In some implementations, output signals 135 are provided to a single support medium 140 at the same time. For example, in implementations where the time code of the output signals 135 each include a header interval 515 and a header event 525, the header events 525 in the respective output signals occur in the same moment in time. The support system or means 140 may include a set of inputs, each of which is connected to a corresponding output 1115 to receive a corresponding output signal 135, as described below.

En funcionamiento, el segmentador de datos 1105 recibe la señal 125 en la entrada 1120. El segmentador de datos 1105 realiza un proceso de segmentación de datos en la señal 125 y genera un conjunto de segmentos. Cada uno de los segmentos se introduce en una entrada 110 respectiva de un codificador temporal 105. Cada codificador temporal 105 codifica la información en el segmento respectivo expresando la información con eventos sincronizados para ocurrir en momentos distinguibles dentro de diferentes intervalos. Cada codificador temporal 105 proporciona una señal respectiva 135 que transmite la señal 135 a las salidas 1115 del codificador multicanal 1100 y al sistema o medio de soporte 140.In operation, data slicer 1105 receives signal 125 at input 1120. Data slicer 1105 performs a data slicing process on signal 125 and generates a set of slices. Each of the segments is input to a respective input 110 of a time encoder 105. Each time encoder 105 encodes the information in the respective segment by expressing the information with synchronized events to occur at distinguishable times within different intervals. Each time encoder 105 provides a respective signal 135 that transmits the signal 135 to the outputs 1115 of the multichannel encoder 1100 and to the support system or means 140.

La Figura 12 es una representación esquemática de un sistema 1200 en donde la información se puede codificar, comprimir y almacenar/transmitir y luego acceder/recibir, decodificar y descomprimir. El sistema 1200 puede incluir una o más de las puestas en práctica del sistema 100 descritas con anterioridad, así como un decodificador 1205 que incluye una entrada 1210 y una salida 1215. La entrada 1210 y la salida 1215 son estructuras físicas a través de las cuales las señales se reciben y se transfieren respectivamente fuera del decodificador 1205. El decodificador 1205 es un componente que decodifica una señal en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. El decodificador 1205, en efecto, traduce, una señal función del tiempo, en la que la sincronización de eventos, dentro de intervalos, representa el contenido de la información en un formato de salida que representa dicha información en un conjunto finito ordenado de dígitos discretos.Figure 12 is a schematic representation of a system 1200 where information can be encoded, compressed, and stored / transmitted and then accessed / received, decoded, and decompressed. System 1200 may include one or more of the implementations of system 100 described above, as well as a decoder 1205 that includes an input 1210 and an output 1215. Input 1210 and output 1215 are physical structures through which the signals are received and transferred respectively out of the decoder 1205. The decoder 1205 is a component that decodes a signal in which the information is encoded by timing the occurrence of events within time intervals. The decoder 1205, in effect, translates, a signal as a function of time, into where the synchronization of events, within intervals, represents the content of the information in an output format that represents said information in a finite ordered set of discrete digits.

La entrada 1210 del decodificador 1205 se puede conectar para recibir una señal 1220 en donde la información se codifica mediante la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. La señal 1220 puede ser objeto de salida desde el sistema o medio de soporte 140 a una ruta de comunicación de datos. La naturaleza exacta de la transferencia de información desde el sistema o medio de soporte 140 al decodificador 1205 a través de la señal 1220 depende del contexto operativo del sistema 1200. Por ejemplo, si el sistema 1200 es parte de un sistema de transmisión de datos, el sistema o medio de soporte 140 puede incluir un transmisor de datos que envíe la señal 1220 a un receptor de datos en el decodificador 1205. A modo de otro ejemplo, si el sistema 1200 es parte de un sistema de almacenamiento de datos, el decodificador 1205 puede incluir, por ejemplo, un cabezal de lectura que puede leer información de un medio de almacenamiento de datos 140. La señal 1220 puede ser transportada, por ejemplo, por una ruta de comunicación de datos inalámbrica o por cable.The input 1210 of the decoder 1205 can be connected to receive a signal 1220 wherein the information is encoded by synchronizing the occurrence of events within time intervals. Signal 1220 may be output from the support system or means 140 to a data communication path. The exact nature of the information transfer from the system or support medium 140 to the decoder 1205 via signal 1220 depends on the operating context of the system 1200. For example, if the system 1200 is part of a data transmission system, Support system or means 140 may include a data transmitter that sends signal 1220 to a data receiver in set-top box 1205. By way of another example, if system 1200 is part of a data storage system, set-top box 1205 can include, for example, a read head that can read information from data storage medium 140. Signal 1220 can be carried, for example, over a wired or wireless data communication path.

Después de la traducción a un formato de salida, el decodificador 1205 proporciona una señal 1230 que incluye la información decodificada 1225. La información decodificada 1225 puede expresarse en un conjunto finito ordenado de dígitos discretos, por ejemplo, en dígitos binarios como una serie de estados altos y bajos, según se ilustra. La salida 1215 puede tener la forma de uno o más puertos de datos binarios en serie o en paralelo.After translation into an output format, the decoder 1205 provides a signal 1230 that includes the decoded information 1225. The decoded information 1225 can be expressed in an ordered finite set of discrete digits, for example, in binary digits as a series of states. highs and lows as illustrated. Output 1215 may be in the form of one or more serial or parallel binary data ports.

En funcionamiento, el decodificador 1205 recibe la señal 1220 del sistema o medio de soporte 140 en la entrada 1210. La señal 1220 expresa información con eventos sincronizados para que ocurran en momentos distinguibles dentro de diferentes intervalos. El decodificador 1205 decodifica la información 1225 y proporciona la señal 1230 que incluye la información decodificada 1225.In operation, decoder 1205 receives signal 1220 from system or support means 140 at input 1210. Signal 1220 expresses information with events timed to occur at distinguishable times within different intervals. Decoder 1205 decodes information 1225 and provides signal 1230 that includes decoded information 1225.

El decodificador 1205 se puede utilizar junto con otros dispositivos, fuera del sistema 1200. Por ejemplo, el decodificador 1205 se puede utilizar como decodificador función del tiempo 41 (Figura 1A).Decoder 1205 can be used in conjunction with other devices, outside of system 1200. For example, decoder 1205 can be used as a time function decoder 41 (Figure 1A).

La Figura 13 es una representación esquemática de una puesta en práctica del decodificador 1205. La puesta en práctica ilustrada del decodificador 1205 incluye un detector de eventos 1305, un circuito traductor de tiempo a estado 1310 y un circuito selector de estado 1315. Aunque se hace referencia a circuitos, uno o más de los componentes del decodificador se pueden poner en práctica en firmware o software. El detector de eventos 1305 es un componente que puede detectar eventos - y su sincronización - en la señal 1220. La estructura del detector de eventos 1305 puede reflejar la naturaleza de los eventos en la señal 1220. Por ejemplo, cuando los eventos en la señal 1220 son pulsos, el detector de eventos 1305 puede ser un detector de pulsos. El detector de eventos 1305 está conectado para recibir la señal 1220 desde la entrada 1210 y una señal indicativa del tiempo dentro de un intervalo 1325 desde un circuito de sincronización de intervalos 1320. El detector de eventos 1305 está conectado para proporcionar salida a los tiempos 1325 dentro de los intervalos en donde se detectan los eventos.Figure 13 is a schematic representation of an implementation of the decoder 1205. The illustrated implementation of the decoder 1205 includes an event detector 1305, a time-to-state translator circuit 1310, and a state selector circuit 1315. Although it is done Reference to circuits, one or more of the decoder components can be implemented in firmware or software. Event listener 1305 is a component that can detect events - and their timing - on signal 1220. The structure of event listener 1305 can reflect the nature of events on signal 1220. For example, when events on signal 1220 are pulses, event detector 1305 may be a pulse detector. Event detector 1305 is connected to receive signal 1220 from input 1210 and a signal indicative of time within an interval 1325 from an interval synchronization circuit 1320. Event detector 1305 is connected to provide output to times 1325 within the intervals where the events are detected.

El circuito de sincronización de intervalo 1320 incluye un reloj 1330, un contador 1335 y un reinicio de intervalo 1340. El reloj 1330 proporciona una señal de reloj de salida 1345 al contador 1335 que a su vez produce un recuento dinámico 1332 de la señal de reloj. El conteo dinámico 1332 se proporciona tanto al detector de eventos 1305 como al reinicio de intervalo 1340. El reinicio de intervalo 1340 puede incluir un comparador (no ilustrado) que compara el conteo dinámico de la señal de reloj con un conteo de umbral representativo de una duración de intervalo. Dicha comparación puede determinar cuándo ha transcurrido un intervalo. El reinicio de intervalo 1340 proporciona como salida una señal de reinicio 1350 al contador 1335. El contador 1335 se reinicia en respuesta a la señal de reinicio 1350. El reinicio del contador 1335 delimita intervalos de una duración del recuento de umbral.The interval synchronization circuit 1320 includes a clock 1330, a counter 1335, and an interval reset 1340. The clock 1330 provides an output clock signal 1345 to the counter 1335 which in turn produces a dynamic count 1332 of the clock signal. . The dynamic count 1332 is provided to both the event listener 1305 and the interval reset 1340. The interval reset 1340 may include a comparator (not shown) that compares the dynamic count of the clock signal to a threshold count representative of a interval duration. Such a comparison can determine when an interval has elapsed. The interval reset 1340 outputs a reset signal 1350 to the counter 1335. The counter 1335 is reset in response to the reset signal 1350. The reset of the counter 1335 delimits intervals of a threshold count duration.

La señal de reinicio 1350 emitida por el reinicio de intervalo 235 puede ser transportada y utilizada por otras partes del decodificador 1205 a su debido tiempo, por ejemplo, la traducción de eventos por el traductor de tiempo a estado 1310 y la selección y salida de dígitos por el selector de estado 1315. Por ejemplo, el traductor de tiempo a estado 1310 puede incluir uno o más interruptores que restablecen las traducciones y la salida de los resultados de las traducciones en respuesta a la señal de reinicio 1350. A modo de otro ejemplo, el selector de estado 1315 puede desactivar la señal de reinicio 1350 para asegurarse de que se selecciona un solo dígito y se emite para cada intervalo.The reset signal 1350 emitted by the interval reset 235 may be carried and used by other parts of the decoder 1205 in due course, for example, the translation of events by the time-to-state translator 1310 and the selection and output of digits. by the state selector 1315. For example, the time-to-state translator 1310 may include one or more switches that reset the translations and output the translation results in response to the reset signal 1350. By way of another example , the status selector 1315 can disable the reset signal 1350 to ensure that a single digit is selected and issued for each interval.

En respuesta a la detección de un evento, el detector de eventos 1305 emite una indicación del tiempo dentro de un intervalo 1325 en donde se detecta un evento. Estas indicaciones son recibidas por el traductor de tiempo a estado 1310. En la puesta en práctica ilustrada, el traductor de tiempo a estado 1310 incluye un detector de bits altos 1355 y un detector de bits bajos 1360 que están ambos conectados para recibir las indicaciones de los tiempos dentro de intervalos en donde se detectan los eventos.In response to the detection of an event, the event listener 1305 issues a time stamp within an interval 1325 where an event is detected. These indications are received by the time-to-state translator 1310. In the illustrated implementation, the time-to-state translator 1310 includes a high-bit detector 1355 and a low-bit detector 1360 that are both connected to receive the indications of the times within intervals where events are detected.

En algunas puestas en práctica, el detector de bits altos 1355 incluye un par de comparadores 1356, 1358 y una puerta AND 1359. El comparador 1356 está conectado para comparar los tiempos dentro de los intervalos en donde se detectan eventos con una primera referencia ref_1. El comparador 1358 es conectado para comparar los tiempos dentro de los intervalos en donde se detectan eventos con una segunda referencia ref_2. Las referencias ref_1, ref_2, son umbrales que indican los tiempos más tempranos y más recientes dentro de un intervalo en donde se considera que un evento detectado está en un primer estado (por ejemplo, un bit alto). Si se detecta un bit en un momento posterior al tiempo indicado por ref_1 y anterior al tiempo indicado por ref_2, se establecen las salidas de ambos comparadores 1356, 1358. La puerta AND 1359 también produce una salida 1365 (por ejemplo, una señal alta) que indica que la sincronización del evento detectado por el detector de eventos 1305 está dentro de un intervalo.In some implementations, the high bit detector 1355 includes a pair of comparators 1356, 1358 and an AND gate 1359. The comparator 1356 is connected to compare the times within the intervals where events are detected with a first reference ref_1. The comparator 1358 is turned on to compare the times within the intervals where events are detected with a second reference ref_2. The references ref_1, ref_2, are thresholds indicating the earliest and most recent times within an interval where a detected event is considered to be in a first state (eg, a high bit). If one bit is detected at a time after the time indicated by ref_1 and before the time indicated by ref_2, the outputs of both comparators 1356, 1358 are set. The AND gate 1359 also produces an output 1365 (for example, a high signal) that indicates that the timing of the detected event by event listener 1305 is within a range.

En la puesta en práctica ilustrada, el detector de bits bajos 1360 incluye un par de comparadores 1361, 1363 y una puerta AND 1364. El comparador 1361 está conectado para comparar los tiempos dentro de los intervalos en donde se detectan eventos con una primera referencia ref_3. El comparador 1363 está conectado para comparar los tiempos dentro de los intervalos en donde se detectan eventos con una segunda referencia ref_4. Las referencias ref_3, ref_4 son umbrales que indican el tiempo más temprano y más reciente dentro de un intervalo en donde se considera que un evento detectado está en un segundo estado (por ejemplo, un bit bajo). Si se detecta un evento en un momento posterior al tiempo indicado por ref_3 y anterior al tiempo indicado por ref_4, se establecen las salidas de ambos comparadores 1361, 1363. La puerta a Nd 1364 también proporciona una salida 1370 que indica que la sincronización del evento detectado por el detector de eventos 1305 está dentro de un intervalo.In the illustrated implementation, the low bit detector 1360 includes a pair of comparators 1361, 1363 and an AND gate 1364. The comparator 1361 is connected to compare the times within the intervals where events are detected with a first reference ref_3 . The comparator 1363 is connected to compare the times within the intervals where events are detected with a second reference ref_4. The references ref_3, ref_4 are thresholds indicating the earliest and most recent time within an interval where a detected event is considered to be in a second state (eg, a low bit). If an event is detected at a time after the time indicated by ref_3 and before the time indicated by ref_4, the outputs of both comparators 1361, 1363 are set. The gate to Nd 1364 also provides an output 1370 that indicates that the timing of the event detected by event listener 1305 is within a range.

El selector de estado 1315 es un componente que está configurado para seleccionar los estados de los dígitos para la salida en la señal 1230 en la salida 1215. En algunas puestas en práctica, los dígitos pueden ser bits binarios. El selector de estado 1315 está conectado para recibir las traducciones (es decir, las salidas 1365, 1370). Basándose en las traducciones recibidas, el selector de estado 1315 proporciona información de estado 1215. Los dígitos pueden emitirse en paralelo o en serie.Status selector 1315 is a component that is configured to select the states of the digits for the output on signal 1230 at output 1215. In some implementations, the digits may be binary bits. Status selector 1315 is wired to receive translations (ie, outputs 1365, 1370). Based on the received translations, the status selector 1315 provides status information 1215. The digits can be output in parallel or serially.

En funcionamiento, el detector de eventos 1305 recibe la señal 1220 en donde la información 1225 está codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. El detector de eventos 1305 detecta la sincronización de los eventos dentro de sus respectivos intervalos y genera una descripción de esa sincronización 1325. El circuito traductor de tiempo a estado 1310 traduce los tiempos dentro de un intervalo a los dígitos discretos que se emitirán desde el decodificador 1205 en la señal 1230 comparando los momentos en donde los eventos fueron detectados por el detector de eventos 1305 con los momentos asignados a los estados. En particular, los eventos detectados dentro de un primer margen de tiempos definidos por las referencias ref_1, ref_2 dan como resultado señales establecidas en la salida 1365. Los eventos detectados dentro de un segundo margen de tiempos definidos por las referencias ref_3, ref_4 dan como resultado señales establecidas en la salida 1370. El circuito selector de estado 1315 recibe los resultados de esas comparaciones y selecciona estados de dígitos para la salida en la salida 1215 de conformidad con esos resultados.In operation, event detector 1305 receives signal 1220 wherein information 1225 is encoded by timing the occurrence of events within time intervals. The event listener 1305 detects the timing of the events within their respective intervals and generates a description of that timing 1325. The time-to-state translator circuit 1310 translates the times within an interval into the discrete digits that will be output from the decoder. 1205 on signal 1230 by comparing the times where the events were detected by the event detector 1305 with the times assigned to the states. In particular, events detected within a first time range defined by references ref_1, ref_2 result in signals set at output 1365. Events detected within a second time range defined by references ref_3, ref_4 result in signals set at output 1370. Status selector circuit 1315 receives the results of those comparisons and selects digit states for output at output 1215 in accordance with those results.

La Figura 14 es una representación esquemática de la decodificación de una señal en donde la información está codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. La decodificación se puede realizar, por ejemplo, mediante un decodificador tal como el decodificador 1205 (Figura 12).Figure 14 is a schematic representation of the decoding of a signal where the information is encoded by the timing of the occurrence of events within time intervals. Decoding can be performed, for example, by a decoder such as decoder 1205 (Figure 12).

La decodificación traduce la información codificada en la señal de código función del tiempo 1220 en una señal 1230 que representa la información 1225 en un conjunto finito ordenado de dígitos discretos. En la puesta en práctica ilustrada, la información 1225 se expresa en la señal 1230 en binario como una serie de dígitos binarios altos 1405 (es decir, "1") y dígitos binarios bajos 1410 (es decir, "0").Decoding translates the information encoded in the time-code signal 1220 into a signal 1230 that represents the information 1225 in a finite ordered set of discrete digits. In the illustrated implementation, the information 1225 is expressed in the signal 1230 in binary as a series of high bits 1405 (ie, "1") and low bits 1410 (ie, "0").

La señal de código función del tiempo 1220 incluye un conjunto de intervalos de tiempo 1420, cada uno de los cuales corresponde a un dígito 1405, 1410 dentro de la señal 1230. Cada intervalo de tiempo 1420 incluye un evento de datos respectivo 1425. La sincronización de los eventos de datos 1425 dentro de intervalos de tiempo individuales 1420 indican el estado del dígito 1405, 1410 correspondiente a ese intervalo de tiempo 1420. Por ejemplo, en la puesta en práctica ilustrada, los eventos de datos 1425 en los intervalos 1420 correspondientes a los dígitos de estado alto 1405 ocurren en momentos 1430 cerca del inicio de esos intervalos 1420. Los eventos de datos 1425 en los intervalos 1420 correspondientes a los dígitos de estado bajo 1405 ocurren en los momentos 1435 cerca de la mitad de esos intervalos 1420. Los momentos 1430 se distinguen de los momentos 1435.Time function code signal 1220 includes a set of time slots 1420, each of which corresponds to a digit 1405, 1410 within signal 1230. Each time slot 1420 includes a respective data event 1425. Synchronization of data events 1425 within individual time intervals 1420 indicate the status of the digit 1405, 1410 corresponding to that time interval 1420. For example, in the illustrated implementation, data events 1425 in intervals 1420 corresponding to the high state digits 1405 occur at times 1430 near the start of those 1420 intervals. Data events 1425 in the 1420 intervals corresponding to the low state digits 1405 occur at times 1435 near the middle of those 1420 intervals. moments 1430 are distinguished from moments 1435.

En la puesta en práctica ilustrada, los eventos de datos 1425 son pulsos que pasan desde un estado de línea base (es decir, un estado de "reposo") 2140 a un estado alto (es decir, un estado "excitado") 1445 y luego retornan al estado de reposo de la línea base 1440. En algunas puestas en práctica, las transiciones iniciales del estado inicial 2140 al estado alto 1445 pueden identificarse y tratarse como los momentos en donde ocurren los eventos de datos 1425. En otras puestas en práctica, las transiciones de retorno del estado alto 1445 al estado inicial 2140 se pueden identificar y tratar como los momentos en donde ocurren los eventos de datos 325. En algunas puestas en práctica, los eventos de datos 1425 son pulsos transitorios en el sentido de que las transiciones iniciales y de retorno son tan cercanas en el tiempo que son indistinguibles, por ejemplo, para codificador temporal 1205. El momento en donde ocurre un evento de datos transitorio 1425 se identifica basándose en la aparente ocurrencia coincidente de la transición inicial y de retorno.In the illustrated implementation, data events 1425 are pulses that transition from a baseline state (ie, a "sleep" state) 2140 to a high state (ie, an "energized" state) 1445, and they then return to the rest state of the baseline 1440. In some implementations, the initial transitions from the initial state 2140 to the high state 1445 can be identified and treated as the times when data events 1425 occur. In other implementations , the return transitions from the high state 1445 to the initial state 2140 can be identified and treated as the times where the data events 325 occur. In some implementations, the data events 1425 are transient pulses in the sense that the Initial and return transitions are so close in time that they are indistinguishable, for example, for time encoder 1205. The time when a transient data event 1425 occurs is identified based on the appearance of the transitions. you coincident occurrence of the initial and return transition.

En algunas puestas en práctica, las formas de diferentes eventos de datos 1425 pueden ser indistinguibles entre sí y los diferentes eventos de datos 1425 pueden distinguirse solamente en virtud de su sincronización. Además, en algunas puestas en práctica, los eventos de datos 1425 pueden ser eventos binarios en el sentido de que ocurren solamente en dos momentos posibles, es decir, en un primer momento o en un segundo momento dentro de un intervalo. In some implementations, the shapes of different data events 1425 may be indistinguishable from each other and the different data events 1425 may be distinguished only by virtue of their timing. Furthermore, in some implementations, data events 1425 may be binary events in the sense that they occur only at two possible times, ie, at a first time or at a second time within an interval.

En la puesta en práctica ilustrada, los intervalos de tiempo 1420 tienen todos, la misma duración y ocurren de manera secuencial. La secuencia de intervalos de tiempo 1420 corresponde a la secuencia de los dígitos correspondientes 1405, 1410 en la señal 1430. Dicho de otro modo, el primer intervalo de tiempo 1420 (y su evento 1425) de la señal de código función del tiempo 1220 corresponde al primer dígito 1405 en la señal 1230, el segundo intervalo de tiempo 1420 (y su evento de datos 1425) de la señal de código función del tiempo 1220 corresponde al segundo dígito 1410 en la señal 1230, y así sucesivamente. Esta correspondencia se representa mediante flechas punteadas 1450. In the illustrated implementation, the time slots 1420 are all the same duration and occur sequentially. The sequence of time intervals 1420 corresponds to the sequence of the corresponding digits 1405, 1410 in signal 1430. In other words, the first time interval 1420 (and its event 1425) of the time-function code signal 1220 corresponds to the first digit 1405 in signal 1230, the second time slot 1420 (and its data event 1425) of the time function code signal 1220 corresponds to the second digit 1410 in signal 1230, and so on. This correspondence is represented by dotted arrows 1450.

La Figura 15 es una representación esquemática de otra puesta en práctica del decodificador 1005. Además del detector de eventos 1305, del circuito traductor de tiempo a estado 1310, del circuito selector de estado 1315 y del circuito de sincronización de intervalo 1320, la puesta en práctica ilustrada del decodificador 1005 también incluye un detector de inicio/parada 1505. El detector de inicio/parada 1505 es un componente que está configurado para detectar uno o ambos de entre el inicio y el final de la transmisión de datos en la señal 1220. Por ejemplo, el detector de inicio/parada 1505 puede reconocer uno o más de entre un evento de cabecera, un intervalo de cabecera, un evento de pie y un intervalo de pie en la señal 1220.Figure 15 is a schematic representation of another implementation of the decoder 1005. In addition to the event detector 1305, the time-to-state translator circuit 1310, the state selector circuit 1315, and the interval synchronization circuit 1320, the The illustrated practice of decoder 1005 also includes a start / stop detector 1505. The start / stop detector 1505 is a component that is configured to detect one or both of the start and end of data transmission on signal 1220. For example, the start / stop detector 1505 may recognize one or more of a header event, a header interval, a foot event, and a foot interval in signal 1220.

El detector de inicio/parada 1505 puede conectarse a la entrada 1210 para recibir la señal 1220 (tal como se muestra). En algunas puestas en práctica, el detector de inicio/parada 1505 puede detectar uno o ambos de entre el inicio y el final de la transmisión de datos en la señal 1220 al detectar eventos de inicio y final en la señal 1220. El detector de inicio/parada 1505 proporciona indicaciones 1510 de uno o ambos de entre el inicio y el final de la transmisión de datos en la señal 1220 al reinicio de intervalo 1340 y a otras partes del decodificador 1205. El reinicio de intervalo 1340 puede reiniciarse por sí mismo - y la demarcación de intervalos - en respuesta a las indicaciones proporcionadas por el detector de inicio/parada 1505. El detector de inicio/parada 1505 puede así sincronizar el reinicio de intervalo 1340 con la sincronización de intervalos y eventos dentro de la señal 1220.The start / stop detector 1505 can be connected to input 1210 to receive signal 1220 (as shown). In some implementations, the start / stop detector 1505 may detect one or both of the start and end of data transmission on signal 1220 by detecting start and end events on signal 1220. The start detector / stop 1505 provides indications 1510 of one or both of the start and end of data transmission on signal 1220 to the interval reset 1340 and other parts of the decoder 1205. The interval reset 1340 can be reset by itself - and interval demarcation - in response to prompts provided by the start / stop detector 1505. The start / stop detector 1505 can thus synchronize the interval reset 1340 with the timing of intervals and events within signal 1220.

En algunas puestas en práctica, las indicaciones del inicio y del final de la transmisión de datos en la señal 1220 proporcionada por el detector de inicio/parada 1505 pueden ser transmitidas y utilizadas por otras partes del decodificador 1205. Por ejemplo, en algunas puestas en práctica, el selector de estado 1315 puede demarcar uno o ambos de entre el inicio y el final de la señal 1220 utilizando un evento de cabecera y un evento de pie en respuesta a las indicaciones proporcionada por el detector de inicio/parada 1505.In some implementations, the indications of the start and end of data transmission in the signal 1220 provided by the start / stop detector 1505 may be transmitted and used by other parts of the decoder 1205. For example, in some implementations In practice, the state selector 1315 may demarcate one or both of the start and end of signal 1220 using a header event and a foot event in response to prompts provided by the start / stop detector 1505.

La Figura 16 es una representación esquemática de la decodificación de una señal en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo con un decodificador que detecta el inicio y el final de la transmisión de datos en una señal. Por ejemplo, la decodificación ilustrada puede realizarse mediante un decodificador tal como el decodificador 1205 que incluye un detector de inicio/parada 1505 (Figura 15). En la puesta en práctica ilustrada, la señal 1230 incluye una cabecera 1605 (ilustrada como una "X") y un pie 1610 (ilustrado como una "Y"). La cabecera 1605 y el pie 1610, por lo tanto, sirve de estructura a la señal 1230. Figure 16 is a schematic representation of the decoding of a signal where the information is encoded by synchronizing the occurrence of events within time intervals with a decoder that detects the start and end of data transmission in a signal. . For example, the illustrated decoding can be performed by a decoder such as decoder 1205 that includes a start / stop detector 1505 (Figure 15). In the illustrated implementation, the sign 1230 includes a header 1605 (illustrated as an "X") and a footer 1610 (illustrated as a "Y"). Header 1605 and footer 1610, therefore, serve as the structure for signal 1230.

La decodificación decodifica la señal de código función del tiempo 1220 en la señal 1230, tal como se describió con anterioridad con referencia a la Figura 14. La señal de código función del tiempo 1220 incluye el intervalo de cabecera 1615 y un intervalo de pie 1620. El intervalo de cabecera 1615 incluye un evento de cabecera 1625 que ocurre en un momento 1635 dentro del intervalo de cabecera 1615. El intervalo de pie 1620 incluye un evento de pie 1630 que ocurre en un momento 1640 dentro del intervalo de pie 1620. El intervalo de cabecera 1615 y el evento de cabecera 1625 delimitan el inicio de la señal de código función del tiempo 1220. El intervalo de pie 1620 y el evento de pie 1630 demarcan el final de la señal de código función del tiempo 1220. La demarcación del inicio de la señal de código función del tiempo 1220 puede utilizarse para determinar la sincronización del primer evento 1625 dentro del primer intervalo 1620. Por ejemplo, el primer evento 1625 ocurre en un período de tiempo 1645 después del evento de cabecera 1625. La sincronización del primer evento 1625 dentro del primer intervalo 1620 se puede determinar utilizando la duración del intervalo 1615 y del periodo de tiempo 1645.Decoding decodes time-function code signal 1220 into signal 1230, as previously described with reference to Figure 14. Time-function code signal 1220 includes head slot 1615 and foot slot 1620. The header interval 1615 includes a header event 1625 that occurs at a time 1635 within the header interval 1615. The foot interval 1620 includes a foot event 1630 that occurs at a time 1640 within the foot interval 1620. The interval The header 1615 and the header event 1625 delimit the start of the time-function code signal 1220. The foot interval 1620 and the foot event 1630 mark the end of the time-function code signal 1220. The start demarcation of the time function code signal 1220 can be used to determine the timing of the first event 1625 within the first interval 1620. For example, the first event 1625 occurs in a period of time 1645 after the header event 1625. The timing of the first event 1625 within the first interval 1620 can be determined using the duration of the interval 1615 and the time period 1645.

En la puesta en práctica ilustrada, los eventos 1625, 1630 y 1425 son pulsos que pasan desde el estado de línea base 1640 al estado alto 1445 y luego retornan al estado de línea base 1640. En algunas puestas en práctica, las formas de los eventos 1625, 1630 pueden ser indistinguibles de entre sí y de las formas de los eventos de datos 1425 y los eventos 1425, 1625, 1630 solamente pueden distinguirse en virtud de su sincronización. Además, en algunas puestas en práctica, los intervalos 1615, 1620 tienen ambos la misma duración entre sí y como intervalos de tiempo 1420. In the illustrated implementation, events 1625, 1630, and 1425 are pulses that go from the baseline state 1640 to the high state 1445 and then return to the baseline state 1640. In some implementations, the forms of the events 1625, 1630 can be indistinguishable from each other and from the forms of data events 1425 and events 1425, 1625, 1630 can only be distinguished by virtue of their timing. Furthermore, in some implementations, the intervals 1615, 1620 are both the same duration as each other and as time intervals 1420.

La Figura 17 es una representación esquemática de otra puesta en práctica del decodificador 1205. Además del detector de eventos 1305, el circuito traductor de tiempo a estado 1310, el circuito selector de estado 1315, el circuito de sincronización de intervalo 1320 y el detector de inicio/parada 1305, la puesta en práctica ilustrada del decodificador 1005 también incluye un decodificador de cabecera/pie 1705. El decodificador de cabecera/pie 1705 es un componente que está configurado para decodificar información codificada en la cabecera de una señal 1220, información codificada en el pie de una señal 1220 o información codificada en ambas ubicaciones.Figure 17 is a schematic representation of another implementation of the decoder 1205. In addition to the event detector 1305, the time-to-state translator circuit 1310, the state selector circuit 1315, the interval synchronization circuit 1320, and the time-to-state detector. start / stop 1305, the illustrated implementation of decoder 1005 also includes a header / footer decoder 1705. The header / footer decoder 1705 is a component that is configured to decode information encoded in the header of a signal 1220, encoded information at the bottom of a 1220 sign or encoded information at both locations.

El decodificador de cabecera/pie 1705 está conectado a la entrada 1210 para recibir la señal 1220 y cualquier evento de cabecera o evento de pie incluido en la señal 1220. En algunas puestas en práctica, p. ej., donde la duración del intervalo de cabecera y de los intervalos de pie es la misma que la duración de intervalos 1420, el decodificador de cabecera/pie 1705 se puede conectar para recibir indicaciones 1510 de uno o de ambos de entre el inicio y el final de la transmisión de datos en la señal 1220 y al detector de eventos 1305 para recibir un conteo dinámico 1325 del tiempo dentro de un intervalo de una magnitud especificada por el reinicio de intervalo. En puestas en práctica, por ejemplo, donde la duración del intervalo de cabecera y de los intervalos de pie difieren de la duración de los intervalos 1420, el decodificador de cabecera/pie 1705 se puede conectar a la salida de otro circuito de sincronización de intervalo, incluir componentes internos de detección de inicio/parada o determinar, de otra manera, el momento en donde ocurren los eventos informativos dentro de una cabecera, un pie o de ambas ubicaciones.Header / footer decoder 1705 is connected to input 1210 to receive signal 1220 and any header events or footer events included in signal 1220. In some implementations, eg. For example, where the duration of the header interval and footer intervals is the same as the duration of intervals 1420, the decoder of header / footer 1705 can be connected to receive 1510 indications from one or both of the start and end of data transmission on signal 1220 and to event listener 1305 to receive a 1325 dynamic count of time within an interval of a magnitude specified by the interval reset. In implementations, for example, where the duration of the header interval and footer intervals differ from the duration of the intervals 1420, the header / footer decoder 1705 may be connected to the output of another interval synchronization circuit. , include internal start / stop detection components, or otherwise determine when informational events occur within a header, footer, or both.

El decodificador de cabecera/pie 1705 genera indicaciones del contenido informativo de eventos informativos que ocurren dentro de una cabecera o pie tal como una salida 1710. El selector de estado 1315 puede recibir las indicaciones y generar dígitos discretos 1015 de conformidad con las indicaciones. Por ejemplo, en algunas puestas en práctica, el selector de estado 1315 puede seleccionar una secuencia de dígitos que identifica la fuente y el destino de la señal 1230, el tipo de información en la señal 1230 y la relación entre la señal 1230 y otras señales.The header / footer decoder 1705 generates indications of the informational content of informational events that occur within a header or footer such as an output 1710. The status selector 1315 may receive the indications and generate discrete digits 1015 in accordance with the indications. For example, in some implementations, the status selector 1315 may select a sequence of digits that identifies the source and destination of the signal 1230, the type of information in the signal 1230, and the relationship between the signal 1230 and other signals. .

En algunas puestas en práctica, las indicaciones emitidas por el decodificador de cabecera/pie 1705 pueden ser transmitidas y utilizadas por otras partes del decodificador 1205. Por ejemplo, la información de verificación de errores puede ser transmitida y utilizada por un componente de verificación de errores dentro del decodificador 1005. A modo de otro ejemplo, las indicaciones emitidas por el decodificador de cabecera/pie 1705 se pueden transmitir al circuito traductor 1310 y utilizarse, por ejemplo, para establecer el número de dígitos que se van a detectar o para cambiar los tiempos dentro de un intervalo en donde un evento detectado se considera que se corresponde con un estado determinado.In some implementations, the indications emitted by the header / footer decoder 1705 may be transmitted and used by other parts of the decoder 1205. For example, the error checking information may be transmitted and used by an error checking component. within decoder 1005. By way of another example, the indications emitted by the header / footer decoder 1705 can be transmitted to the translator circuit 1310 and used, for example, to set the number of digits to be detected or to change the numbers. times within an interval where a detected event is considered to correspond to a certain state.

La Figura 18 es una representación esquemática de otra puesta en práctica del decodificador 1205. La puesta en práctica ilustrada del decodificador 1205 incluye un circuito traductor 1310 y un circuito selector de estado 1315 que son adecuados para decodificar señales en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro intervalos de tiempo en señales que codifican información con dígitos que tienen más de dos estados posibles. Por ejemplo, el decodificador 1205 puede decodificar una señal de código función del tiempo 1220 en una señal 1230.Figure 18 is a schematic representation of another implementation of decoder 1205. The illustrated implementation of decoder 1205 includes a translator circuit 1310 and a state selector circuit 1315 that are suitable for decoding signals where information is encoded by the synchronization of the occurrence of events within time intervals in signals that encode information with digits that have more than two possible states. For example, decoder 1205 may decode a time-based code signal 1220 into a signal 1230.

En respuesta a la detección de un evento, el detector de eventos 1305 emite una indicación del tiempo dentro de un intervalo en donde se detecta un evento. Estas indicaciones 1325 son recibidas por el traductor de tiempo a estado 1310. El traductor de tiempo a estado 1310 incluye un conjunto de detectores de estado 1805, 1810, 1815, 1820 que están todos conectados para recibir las indicaciones de los momentos dentro de intervalos en donde los eventos son detectados.In response to the detection of an event, the event listener 1305 issues a time stamp within an interval where an event is detected. These indications 1325 are received by the time-to-state translator 1310. The time-to-state translator 1310 includes a set of status detectors 1805, 1810, 1815, 1820 that are all connected to receive the indications of the moments within intervals in where events are detected.

Cada detector de estado 1805, 1810, 1815, 1820 está conectado para comparar los momentos dentro de los intervalos en donde se detectan eventos con referencias que incorporan los momentos más tempranos y más recientes dentro de un intervalo en donde se considera que un evento detectado es de estado correspondiente. En respuesta a la detección de que la sincronización de un evento dentro de un intervalo está dentro de un margen correspondiente, cada detector de estado 1805, 1810, 1815, 1820 proporciona una indicación 1825, 1830, 1835, 1840. Los detectores de estado 1805, 1810, 1815, 1820 traducen los momentos dentro de un intervalo a uno de los estados de los dígitos en la señal 1230 que se va a emitir desde el decodificador 1005.Each status detector 1805, 1810, 1815, 1820 is connected to compare the moments within the intervals where events are detected with references that incorporate the earliest and most recent moments within an interval where a detected event is considered to be corresponding status. In response to detecting that the timing of an event within a range is within a corresponding range, each status detector 1805, 1810, 1815, 1820 provides an indication 1825, 1830, 1835, 1840. The status detectors 1805 , 1810, 1815, 1820 translate the moments within an interval into one of the digit states in signal 1230 to be output from decoder 1005.

El selector de estado 1315 está conectado para recibir las traducciones (por ejemplo, las indicaciones 1825, 1830, 1835, 1840) y, en base a las traducciones recibidas, el selector de estado 1315 proporciona dígitos que tienen los estados a la salida 1215.The state selector 1315 is wired to receive the translations (for example, the indications 1825, 1830, 1835, 1840) and, based on the received translations, the state selector 1315 provides digits having the states to the output 1215.

En funcionamiento, el detector de eventos 1305 recibe la señal 1220 en donde la información 120 está codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. El detector de eventos 1305 detecta la sincronización de los eventos dentro de sus respectivos intervalos y genera una descripción de esa sincronización (por ejemplo, las indicaciones 1325). El circuito traductor de tiempo a estado 1310 traduce los momentos dentro de un intervalo a los estados a ser emitidos desde el descodificador 1305 en la señal 1330 comparando los momentos en donde los eventos fueron detectados por el detector de eventos 1305 con los momentos asignados a los estados. El circuito selector de estado 1315 recibe los resultados de esas comparaciones (por ejemplo, las indicaciones 1825, 1830, 1835, 1840) y selecciona estados de dígitos para que la salida se proporcione a la salida 1215 de conformidad con esos resultados.In operation, event detector 1305 receives signal 1220 wherein information 120 is encoded by timing the occurrence of events within time intervals. Event listener 1305 detects the timing of events within their respective ranges and generates a description of that timing (eg, prompts 1325). The time-to-state translator circuit 1310 translates the moments within an interval to the states to be emitted from the decoder 1305 in the signal 1330 by comparing the moments where the events were detected by the event detector 1305 with the moments assigned to the state. State selector circuit 1315 receives the results of those comparisons (eg, indications 1825, 1830, 1835, 1840) and selects digit states for the output to be provided to output 1215 in accordance with those results.

La Figura 19 es una representación esquemática de la decodificación de una señal en donde la información se codifica por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo en una señal que incluye dígitos que tienen más de dos estados posibles. Por ejemplo, la decodificación ilustrada se puede realizar mediante un decodificador tal como el decodificador 1205 ilustrado en la Figura 18. En la puesta en práctica ilustrada, la señal de código función del tiempo 1220 incluye un conjunto de intervalos de tiempo 1420, cada uno de los cuales corresponde a un dígito 1905, 1910, 1915, 1920 dentro de la señal 1230. Cada intervalo de tiempo 1420 incluye un evento de datos respectivo 1425. La sincronización de los eventos de datos 1425 dentro de los intervalos de tiempo individuales 1420 indica el estado del dígito 1905, 1910, 1915, 1920 correspondiente a ese intervalo de tiempo 1420. Por ejemplo, en la puesta en práctica ilustrada, los eventos de datos 1425 en intervalos 1420 correspondientes a los dígitos 1905 del primer estado, ocurren en los momentos 1930 cerca del final de los intervalos 1420. Los eventos de datos 1425 en intervalos 1420 correspondientes a los dígitos 1910 del segundo estado, ocurren en los momentos 1935 cerca de la mitad de los intervalos 1420. Los eventos de datos 1425 en intervalos 1420 correspondientes a los dígitos 1925 del tercer estado, ocurren en los tiempos 1940 antes de la mitad de los intervalos 1420. Los eventos de datos 1425 en intervalos 1420 correspondientes a los dígitos 1905 del cuarto estado, ocurren en los momentos 1945 cerca del inicio de los intervalos 1420. Los tiempos 1930, 1935, 1940, 1945 se distinguen entre sí.Figure 19 is a schematic representation of the decoding of a signal where the information is encoded by the timing of the occurrence of events within time intervals in a signal that includes digits that have more than two possible states. For example, the illustrated decoding may be performed by a decoder such as the decoder 1205 illustrated in Figure 18. In the illustrated implementation, the time-function code signal 1220 includes a set of time slots 1420, each of which corresponds to a digit 1905, 1910, 1915, 1920 within signal 1230. Each time interval 1420 includes a respective data event 1425. Synchronization of data events 1425 within individual time intervals 1420 indicates the status of the digit 1905, 1910, 1915, 1920 corresponding to that time interval 1420. For example, in the illustrated implementation, data events 1425 in intervals 1420 corresponding to the digits 1905 of the first state, occur at times 1930 near the end of intervals 1420. Data events 1425 in intervals 1420 corresponding to the digits 1910 of the second state, occur at times 1935 near the middle of intervals 1420. Events of Data 1425 in intervals 1420 corresponding to the digits 1925 of the third state, occur in the times 1940 before the middle of the intervals 1420. The events of data 1425 in intervals 1420 corresponding to the digits 1905 of the fourth state, occur in the moments 1945 near the beginning of the 1420 intervals. The times 1930, 1935, 1940, 1945 are distinguished from each other.

La decodificación decodifica la señal de código función del tiempo 1220 en la señal 1230. La información se expresa en la señal 1230 utilizando dígitos que tienen cuatro estados potenciales discretos diferentes, a saber, dígitos 1905 que tienen el primer estado (es decir, "A's"), dígitos 1910 que tienen el segundo estado (es decir, "B's"), dígitos 1915 que tienen el tercer estado (es decir, "C's") y dígitos 1920 que tienen el cuarto estado (es decir, "D's"). En otras puestas en práctica, la señal 1230 puede expresar información en dígitos que tienen un número diferente de estados posibles (p. ej., dígitos que tienen 10 estados posibles diferentes que expresan información en decimal) o en dígitos que tienen un número muy superior o un conjunto continuo de estados posibles (p. ej., un continuo de estados analógicos o casi analógicos). En algunas puestas en práctica, la señal 1230 puede expresar información genética, a saber, cuatro ácidos nucleicos, utilizando cuatro estados posibles diferentes.Decoding decodes time-function code signal 1220 into signal 1230. Information is expressed in signal 1230 using digits that have four different discrete potential states, namely, digits 1905 that have the first state (ie, "A's "), digits 1910 that have the second state (that is," B's "), digits 1915 that have the third state (that is," C's "), and digits 1920 that have the fourth state (that is," D's ") . In other implementations, signal 1230 may express information in digits that have a different number of possible states (eg, digits that have 10 different possible states that express information in decimal) or in digits that have a much larger number. or a continuous set of possible states (eg, a continuum of analog or near-analog states). In some implementations, signal 1230 may express genetic information, namely four nucleic acids, using four different possible states.

En otras puestas en práctica, un decodificador se puede poner en práctica como un circuito digital que recibe como entrada un conjunto ordenado de bits que se agrupan en caracteres binarios de una longitud predeterminada de N dígitos binarios (es decir, bits), en donde solamente un bit es distinto de los demás y produce como salida una secuencia de símbolos de salida. Los circuitos digitales pueden ser controlados por un ordenador programado o incluir un ordenador incorporado. En algunas de dichas puestas en práctica, el decodificador incluye circuitos que transforman la secuencia de símbolos en una señal de salida analógica.In other implementations, a decoder can be implemented as a digital circuit that receives as input an ordered set of bits that are grouped into binary characters of a predetermined length of N binary digits (i.e., bits), where only one bit is distinct from the others and outputs a sequence of output symbols. Digital circuits can be controlled by a programmed computer or include a built-in computer. In some such implementations, the decoder includes circuitry that transforms the sequence of symbols into an analog output signal.

La Figura 20 es una representación esquemática de una puesta en práctica del sistema de decodificación 2000. El sistema 2000 puede ser un sistema autónomo o parte de un sistema de mayor magnitud, tal como el sistema 1200 (Figura 12). El sistema 2000 incluye un componente de procesamiento neuronal 140, 1005 desde el cual la señal 1220 es recibida por el decodificador 1205. La señal 1220 codifica información por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. En algunas puestas en práctica, el componente de procesamiento neuronal 140, 1005 puede incluir múltiples elementos que contribuyen a los eventos en la señal 1220. Por ejemplo, en los componentes de procesamiento neuronal 140, 1005 puesto en práctica utilizando componentes neuronales "húmedos", múltiples nervios pueden contribuir a los eventos en la señal 1220. A modo de otro ejemplo, en los componentes de procesamiento neuronal 140, 1005 puesto en práctica utilizando dispositivos de semiconductores, múltiples salidas de la red neuronal pueden contribuir a los eventos en la señal 1220.Figure 20 is a schematic representation of one implementation of decoding system 2000. System 2000 may be a stand-alone system or part of a larger system, such as system 1200 (Figure 12). System 2000 includes a neural processing component 140, 1005 from which signal 1220 is received by decoder 1205. Signal 1220 encodes information by timing the occurrence of events within time slots. In some implementations, neural processing component 140, 1005 may include multiple elements that contribute to events in signal 1220. For example, in neural processing components 140, 1005 implemented using "wet" neural components, Multiple nerves can contribute to events in signal 1220. By way of another example, in neural processing components 140, 1005 implemented using semiconductor devices, multiple outputs of the neural network can contribute to events in signal 1220 .

En funcionamiento, el decodificador 1205 puede decodificar la señal 1220 en una señal 1230 que expresa información 1225 en un conjunto finito ordenado de dígitos discretos. El decodificador 1205 puede actuar, así como una interfaz entre el procesamiento estadístico y las funciones de reconocimiento de patrones proporcionadas por el componente de procesamiento neuronal 1205 y los dispositivos de procesamiento de datos digitales binarios (y otros). Por ejemplo, el decodificador 1205 puede incluirse en un motor u otra prótesis que reciba trenes de picos de nervios con, por ejemplo, control u otra información, codificada en la señal 1220.In operation, decoder 1205 can decode signal 1220 into a signal 1230 that expresses information 1225 in a finite ordered set of discrete digits. Decoder 1205 may act as an interface between statistical processing and pattern recognition functions provided by neural processing component 1205 and binary (and other) digital data processing devices. For example, decoder 1205 can be included in a motor or other prosthesis that receives nerve spike trains with, for example, control or other information, encoded in signal 1220.

La Figura 21 es una representación esquemática de una puesta en práctica de un sistema para decodificar señales en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo, a saber, un sistema de decodificador multicanal 2100. El sistema de decodificador multicanal 2100 puede utilizarse de forma aislada o en conjunto con otros dispositivos. Por ejemplo, el sistema de decodificador multicanal 2100 se puede utilizar como decodificador función del tiempo 41 (Figura 1A).Figure 21 is a schematic representation of an implementation of a system for decoding signals where the information is encoded by timing the occurrence of events within time slots, namely, a 2100 multi-channel decoder system. The system 2100 multichannel decoder can be used alone or in conjunction with other devices. For example, the multichannel decoder system 2100 can be used as a time function decoder 41 (Figure 1A).

El sistema 2100 incluye un conjunto de decodificadores 1205, un sumador de datos 2105, un conjunto de entradas 2110 y una salida 2115. Las entradas 2110 reciben una señal de código función del tiempo 1220 respectiva. Las señales de código función del tiempo 1220 incluyen cada una un conjunto de intervalos que por sí mismos incluyen eventos. La sincronización de los eventos dentro de estos intervalos codifica la información. En algunas puestas en práctica, diferentes señales de código función del tiempo 1220 pueden recibirse todas desde el mismo sistema único o medio de soporte 140, tal como se ilustra.System 2100 includes a set of decoders 1205, a data adder 2105, a set of inputs 2110, and an output 2115. The inputs 2110 receive a respective time-code signal 1220. The time function code signals 1220 each include a set of intervals that themselves include events. The timing of events within these intervals encodes the information. In some implementations, different time code signals 1220 may all be received from the same single system or support means 140, as illustrated.

Las señales de código función del tiempo 1220 se proporcionan desde las entradas 2110 a las entradas 1210 correspondientes de los decodificadores 1205. Los decodificadores 1205 están, por lo tanto, conectados, cada uno, para recibir una señal de código función del tiempo 1220 respectiva. Los decodificadores 1205 decodifican la información en señales 1220 y se proporcionan señales decodificadas 2125. En las señales decodificadas, al menos parte del contenido de información de las señales 1220 se expresa en un conjunto finito ordenado de dígitos discretos, por ejemplo, en un conjunto de bits altos y bajos.Time-code signals 1220 are provided from inputs 2110 to corresponding inputs 1210 of decoders 1205. Decoders 1205 are therefore each connected to receive a respective time-code signal 1220. Decoders 1205 decode information into signals 1220 and decode signals 2125 are provided. In decoded signals, at least part of the information content of signals 1220 is expressed in a finite ordered set of discrete digits, for example, in a set of high and low bits.

Las señales decodificadas 2125 se proporcionan a una o más entradas 2130 del sumador de datos 2105. El sumador de datos 2105 también incluye una salida 2135. El sumador de datos 2105 es un componente que añade un conjunto relativamente pequeño de dígitos en un conjunto mayor de dígitos. En la puesta en práctica ilustrada, el sumador de datos 2105 está conectado para agregar las señales decodificadas recibidas en una señal de salida 1230 que expresa la información 1225 en un conjunto finito ordenado de dígitos discretos. La señal de salida 1230 se proporciona desde la salida 2135 del sumador de datos 2105 a la salida 2115 del sistema 2100.Decoded signals 2125 are provided to one or more inputs 2130 of data adder 2105. Data adder 2105 also includes an output 2135. Data adder 2105 is a component that adds a relatively small set of digits into a larger set of digits. digits. In the illustrated implementation, the data adder 2105 is connected to aggregate the received decoded signals into an output signal 1230 that expresses the 1225 information in a finite ordered set of discrete digits. Output signal 1230 is provided from output 2135 of data adder 2105 to output 2115 of system 2100.

En funcionamiento, cada decodificador 1205 recibe una respectiva señal de código función del tiempo 1220 desde el sistema o medio de soporte 140. Los decodificadores 1205 decodifican sus respectivas señales de código función del tiempo 1220 en señales que expresan el contenido de información en un conjunto finito ordenado de dígitos discretos. El sumador de datos 2105 está conectado para recibir señales 1220, las agrega y las proporciona en una señal de salida 2145.In operation, each decoder 1205 receives a respective time-code signal 1220 from the support system or means 140. The decoders 1205 decode their respective time-code signals 1220 into signals that express the information content in a finite set. ordered of discrete digits. The data adder 2105 is connected to receive signals 1220, aggregates them, and provides them on an output signal 2145.

La Figura 22 es una representación esquemática de una puesta en práctica de un sistema 2200 en donde se puede codificar información. El sistema 2200 incluye un codificador multicanal 1105 y un codificador compresor 2205. Figure 22 is a schematic representation of a 2200 system implementation where information can be encoded. The 2200 system includes a 1105 multichannel encoder and a 2205 compressor encoder.

El codificador compresor 2205 es un componente que comprime múltiples señales de entrada en una única señal de salida 2220. El codificador compresor 2205 incluye un conjunto de una o más entradas 2210 y una salida 2215. Una o más entradas 2210 se pueden conectar para recibir señales de código función del tiempo desde la salida 1115 de un codificador temporal multicanal 1105. El codificador compresor 2205 comprime las señales de código función del tiempo recibidas y proporciona una señal comprimida 2220 en la salida 2215 a un sistema o medio de soporte 140. Compressor encoder 2205 is a component that compresses multiple input signals into a single output signal 2220. Compressor encoder 2205 includes a set of one or more inputs 2210 and one output 2215. One or more inputs 2210 can be connected to receive signals time-code code from the output 1115 of a multichannel time encoder 1105. Compressor encoder 2205 compresses the received time-code signals and provides a compressed signal 2220 at output 2215 to a support system or means 140.

El sistema 2200 se puede utilizar de forma aislada o junto con otros dispositivos. Por ejemplo, el sistema 2200 se puede utilizar como codificador función del tiempo 25, componente de ponderación de la amplitud 27 y compresor 29 (Figura 1A).The 2200 system can be used in isolation or in conjunction with other devices. For example, the 2200 system can be used as a time function encoder 25, amplitude weighting component 27, and compressor 29 (Figure 1A).

La Figura 23 es una representación esquemática de una puesta en práctica de un codificador compresor 2205. El codificador compresor 2205 es un componente que codifica información de un conjunto de señales en donde la información se codifica por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo en una señal que incluye una serie sincronizada de eventos tal como la señal 2220 (Figura 22).Figure 23 is a schematic representation of an implementation of a compressor encoder 2205. The compressor encoder 2205 is a component that encodes information from a set of signals where the information is encoded by the timing of the occurrence of events within intervals time in a signal that includes a synchronized series of events such as signal 2220 (Figure 22).

En la puesta en práctica ilustrada, el codificador 2205 incluye un conjunto de diferentes convertidores binario a analógico 2305, un integrador 2310, un conjunto de entradas 2315 y una salida 2320. Cada uno de los convertidores binario a analógico 2305 incluye una entrada respectiva 2325 y una salida 2330. La entrada 2325 de cada convertidor binario a analógico 2305 está conectada para recibir una señal respectiva 135 en donde la información está codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo a partir de la entrada correspondiente 2315.In the illustrated implementation, the encoder 2205 includes a set of different binary-to-analog converters 2305, an integrator 2310, a set of inputs 2315, and an output 2320. Each of the binary-to-analog converters 2305 includes a respective input 2325 and an output 2330. The input 2325 of each binary-to-analog converter 2305 is connected to receive a respective signal 135 wherein the information is encoded by timing the occurrence of events within time intervals from the corresponding input 2315.

Cada entrada 2315 y el correspondiente par convertidor binario a analógico 2305 forman un canal de codificación 2340. El codificador compresor 2205 es, por lo tanto, una combinación en paralelo de múltiples canales de codificación 2340. Las señales 135 pueden tener la misma información, pueden tener diferente contenido de información, o puede tener combinaciones del mismo y diferente contenido de información.Each input 2315 and the corresponding binary-to-analog converter pair 2305 form an encoding channel 2340. Compressor encoder 2205 is therefore a parallel combination of multiple encoding channels 2340. Signals 135 may have the same information, they may have different information content, or it may have combinations of the same and different information content.

Cada convertidor binario a analógico 2305 es un componente que está configurado para ponderar la amplitud de eventos individuales en una serie temporal de eventos de entrada en función de la sincronización de otros eventos en la serie temporal de entrada. En algunas puestas en práctica, los eventos se pueden ponderar utilizando una función no lineal. En algunas puestas en práctica, el codificador compresor 2205 incluye al menos dos convertidores de binario a analógico diferentes 2305. Un convertidor binario a analógico diferente 2305 puede ponderar eventos utilizando diferentes parámetros función del tiempo, diferentes dependencias del tiempo o combinaciones de estos u otros factores. En algunas puestas en práctica, cada convertidor binario a analógico 2305 en el codificador 2205 será diferente de todos los demás convertidores binario a analógico 2305 en el codificador 2205. En algunas puestas en práctica, el conjunto de convertidores binario a analógico 2305 en el codificador 2205 es el conjunto completo de convertidores binarios a analógicos construidos utilizando un proceso tal como el proceso 3900 (Figura 39). Como consecuencia de dichas diferencias, cuando la misma señal en donde la información está codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo se introduce en diferentes convertidores binario a analógico 2305, diferentes señales que incluyen los eventos ponderados en momentos relativos que corresponden a la sincronización de los eventos no ponderados dentro de la señal de entrada serán objeto de salida mediante los diferentes convertidores de binario a analógico 2305.Each binary-to-analog converter 2305 is a component that is configured to weight the amplitude of individual events in a time series of input events based on the timing of other events in the input time series. In some implementations, the events can be weighted using a non-linear function. In some implementations, the compressor encoder 2205 includes at least two different binary-to-analog converters 2305. A different binary-to-analog converter 2305 can weight events using different parameters as a function of time, different time dependencies, or combinations of these or other factors. . In some implementations, each binary-to-analog converter 2305 in encoder 2205 will be different from all other binary-to-analog converters 2305 in encoder 2205. In some implementations, set of binary-to-analog converters 2305 in encoder 2205 is the complete set of binary to analog converters built using a process such as the 3900 process (Figure 39). As a consequence of these differences, when the same signal where the information is encoded by the synchronization of the occurrence of events within time intervals is introduced into different binary-to-analog converters 2305, different signals that include the weighted events in relative moments that correspond to the synchronization of the unweighted events within the input signal will be output through the different binary to analog converters 2305.

Cada convertidor binario a analógico 2305 proporciona una señal 2345 que puede incluir los eventos ponderados en momentos relativos que corresponden a la sincronización de los eventos no ponderados dentro de la señal de entrada sobre la salida 2330. Las señales 2345 se proporcionan a una entrada respectiva 2350 del integrador 2310. En puestas en práctica en donde el integrador 2310 se pone en práctica utilizando componentes neuronales "húmedos", las propiedades de las señales 2345 se pueden adaptar para que sean compatibles con los componentes neuronales húmedos. Por ejemplo, los eventos dentro de las señales 2345 se pueden adaptar para imitar las características de amplitud y tiempo de los potenciales de acción.Each binary-to-analog converter 2305 provides a signal 2345 that can include the weighted events at relative times corresponding to the timing of the unweighted events within the input signal on the output 2330. The signals 2345 are provided to a respective input 2350 of the integrator 2310. In implementations where the integrator 2310 is implemented using "wet" neural components, the properties of the signals 2345 can be tailored to be compatible with the wet neural components. For example, events within 2345 signals can be tailored to mimic the amplitude and time characteristics of action potentials.

El integrador 2310 incluye un conjunto de entradas 2350 y una salida 2355. El integrador 2310 es un componente que integra las señales recibidas en las entradas 2350 para generar una señal que se proporciona a la salida 2355. La integración de estas señales las combina y comprime en una sola señal. En algunas puestas en práctica, el integrador 2310 puede ser un integrador no lineal en el sentido de que diferentes señales recibidas en diferentes entradas 2350 contribuyen en diferentes medidas a la señal proporcionada a la salida 2355. En algunas puestas en práctica, el integrador 2310 puede ser un integrador lineal en el sentido de que diferentes señales recibidas en diferentes entradas 2350 contribuyen en la misma medida a la señal proporcionada a la salida 2355. En algunas puestas en práctica, tal como se describirá a continuación, el integrador 2310 se modela a partir de una o más neuronas o nodos en el cerebro u otro dispositivo de procesamiento neuronal. Por ejemplo, la salida de señal única 2360 proporcionada en la salida 2355 del integrador 2310 puede representar las interacciones del tipo 'todos a todos' de las diferentes señales recibidas en las entradas 2350.The integrator 2310 includes a set of inputs 2350 and an output 2355. The integrator 2310 is a component that integrates the signals received at the inputs 2350 to generate a signal that is provided to the output 2355. The integration of these signals combines and compresses them in a single signal. In some implementations, the integrator 2310 may be a non-linear integrator in the sense that different signals received at different inputs 2350 contribute in different measures to the signal provided at output 2355. In some implementations, integrator 2310 may be a linear integrator in the sense of that different signals received at different inputs 2350 contribute to the same extent to the signal provided to output 2355. In some implementations, as will be described below, integrator 2310 is modeled from one or more neurons or nodes in the brain or other neural processing device. For example, the single signal output 2360 provided at the output 2355 of the integrator 2310 may represent the 'all to all' interactions of the different signals received at the inputs 2350.

La salida 2355 acopla la señal 2360 a la salida 2320 del codificador compresor 2205. La salida 2320 proporciona la señal 2365 a un sistema o medio de soporte 140.Output 2355 couples signal 2360 to output 2320 of compressor encoder 2205. Output 2320 provides signal 2365 to a support system or means 140.

La Figuras 24, 25, 26, 27 son representaciones esquemáticas relacionadas con diferentes puestas en práctica de un integrador 2310, a saber, un integrador 2400, un integrador 2500, un integrador 2600 y un integrador 2700. El integrador 2400 es un nodo no ramificado de un sistema de procesamiento neuronal. El integrador 2500 es un nodo de un sistema de procesamiento neuronal que tiene múltiples ramas. Los integradores 2600, 2700 son una red de nodos de un sistema de procesamiento neuronal. Los integradores 2400, 2500, 2600, 2700 se pueden construir en hardware, en software, en componentes neuronales húmedos o en combinaciones de estos componentes.Figures 24, 25, 26, 27 are schematic representations related to different implementations of an integrator 2310, namely an integrator 2400, an integrator 2500, an integrator 2600, and an integrator 2700. The integrator 2400 is an unbranched node of a neural processing system. The integrator 2500 is a node in a neural processing system that has multiple branches. The integrators 2600, 2700 are a network of nodes in a neural processing system. The integrators 2400, 2500, 2600, 2700 can be built in hardware, in software, in wet neural components, or in combinations of these components.

Tal como se muestra, el integrador 2500 incluye un conjunto de ramas 2505. En algunas puestas en práctica, las ramas 2505 tienen propiedades idénticas. En otras puestas en práctica, diferentes ramas 2505 tienen diferentes propiedades. Por ejemplo, diferentes ramas 2505 pueden tener diferentes propiedades de cable.As shown, integrator 2500 includes a set of legs 2505. In some implementations, legs 2505 have identical properties. In other implementations, different branches 2505 have different properties. For example, different branches 2505 may have different cable properties.

Tal como se muestra, los integradores 2600, 2700 incluyen cada uno un conjunto de nodos 2605 unidos por un conjunto de enlaces 2610. Los enlaces 2610 pueden incluir, por ejemplo, enlaces de alimentación en sentido directo, enlaces de retroalimentación, enlaces recurrentes o sus combinaciones. El integrador 2700 incluye un par de salidas 2355. Ambas salidas 2355 proporcionan resultados de combinar y comprimir las señales recibidas en las entradas 2350. Sin embargo, en general, las salidas 2355 darán salida a diferentes señales que resulten de diferentes combinaciones y compresiones de las señales recibidas en las entradas 2350. Como resultado, dos señales diferentes pueden salir desde un codificador compresor y transportarse a un sistema o medio de soporte 140. Estas dos señales diferentes también pueden almacenarse o decodificarse en paralelo utilizando los sistemas y técnicas descritos. Aunque dicho almacenamiento y decodificación en paralelo podría disminuir la densidad de almacenamiento de datos o requerir un procesamiento adicional, la fidelidad del almacenamiento y la decodificación se puede verificar y, si fuere necesario, mejorar comparando los resultados de la decodificación en paralelo.As shown, integrators 2600, 2700 each include a set of nodes 2605 joined by a set of links 2610. Links 2610 may include, for example, feed forward links, feedback links, recurring links, or their combinations. The integrator 2700 includes a pair of outputs 2355. Both outputs 2355 provide results of combining and compressing the signals received at inputs 2350. In general, however, outputs 2355 will output different signals that result from different combinations and compressions of the inputs. signals received at inputs 2350. As a result, two different signals can be output from a compressor encoder and transported to a support system or means 140. These two different signals can also be stored or decoded in parallel using the systems and techniques described. Although such parallel storage and decoding might decrease the data storage density or require additional processing, the fidelity of the storage and decoding can be verified and, if necessary, improved by comparing the results of parallel decoding.

En funcionamiento, los integradores 2400, 2500, 2600, 2700 pueden integrar señales de entrada según uno o más modelos. Por ejemplo, en algunas puestas en práctica, el integrador 2400 puede integrarse de conformidad con un modelo de integración y disparo. Dicho modelo incluye un condensador C en paralelo con una resistencia R impulsada por una corriente I(t) y que proporciona:In operation, integrators 2400, 2500, 2600, 2700 can integrate input signals according to one or more models. For example, in some implementations, the 2400 integrator may be integrated according to an integration and trigger model. Said model includes a capacitor C in parallel with a resistance R driven by a current I ( t) and that provides:

Figure imgf000019_0001
Ecuación 1
Figure imgf000019_0001
Equation 1

En este modelo, las señales en las entradas 2350 están integradas por una suma lineal de amplitudes de cada señal en cualquier momento en el tiempo (es decir, se suman las tensiones de cada señal de entrada (RxI(t)). Las señales de tensión se reducen, de manera exponencial, con una constante de tiempo im. Se puede seleccionar una tensión de umbral, por encima de la cual se puede señalar un estado binario en la salida 2355.In this model, the signals at the 2350 inputs are made up of a linear summation of the amplitudes of each signal at any moment in time (that is, the voltages of each input signal are added (RxI (t)). voltage drops exponentially with a time constant im. A threshold voltage can be selected, above which a binary state can be signaled at output 2355.

En otras puestas en práctica, los integradores 2400-2700 pueden integrarse de conformidad con un modelo de neurona de integración y disparo basado en la conductancia proporcionado por:In other implementations, the 2400-2700 integrators can be integrated in accordance with an integrating and firing neuron model based on conductance provided by:

Figure imgf000019_0002
Figure imgf000019_0002

donde gj es la conductancia para una especie iónica particular, V-Vj es el potencial de Nernst de la conductancia e Iext es una corriente aplicada externa.where g j is the conductance for a particular ionic species, V-Vj is the Nernst potential of the conductance, and I ext is an external applied current.

En este modelo, las señales en las entradas 2350 están integradas por una suma no lineal de amplitudes de cada señal en cualquier momento en el tiempo, lograda por una o más conductancias g que escalan la amplitud de las señales (Iext) dependiendo de la tensión total alcanzada en el tiempo. Las amplitudes de cada señal también se reducen, de manera exponencial, con una constante de tiempo im que puede variar si se hace variar la conductancia. Se puede seleccionar una tensión de umbral, por encima de la cual se puede señalar un estado binario en la salida 2355. In this model, the signals at the 2350 inputs are made up of a non-linear summation of the amplitudes of each signal at any moment in time, achieved by one or more conductances g that scale the amplitude of the signals ( I ext ) depending on the total tension reached in time. The amplitudes of each signal are also reduced, exponentially, with a time constant im that can vary if the conductance is varied. A threshold voltage can be selected, above which a binary state can be signaled at output 2355.

En algunas puestas en práctica, el integrador 2500 puede operar de conformidad con un modelo en donde una evolución de tensiones basada en conductancia se extiende para incluir la disminución de tensiones dentro de los cables, que se describe en la Ecuación de Telegrafía que se proporciona por:In some implementations, the integrator 2500 may operate in accordance with a model in which a conductance-based stress evolution is extended to include stress drop within the cables, which is described in the Telegraphy Equation provided by :

Figure imgf000020_0001
Figure imgf000020_0001

donde X es una constante de longitud determinada por las propiedades de las ramas, x es una unidad digitalizada de longitud a lo largo de las ramas y Vl es la tensión en equilibrio.where X is a constant of length determined by the properties of the branches, x is a digitized unit of length along the branches and V l is the equilibrium voltage.

En este modelo, las señales en las entradas 2350 se integran utilizando la Ecuación 1 o la Ecuación 2 anteriores y mediante una suma lineal adicional donde cada señal en las entradas 2350 puede propagarse a lo largo de las ramas físicas del sistema a todas las demás entradas 2350. Mientras se reduce en amplitud de conformidad con la constante de longitud X a medida que se propaga la señal, cada señal en las entradas 2350 contribuye, en cierta medida, a la amplitud en cada entrada 2350. La amplitud de cualquier señal en la entrada 2350 es por lo tanto la amplitud de esa señal más la suma de todas las amplitudes de otras señales en las entradas 2350 después de que cada una de ellas haya disminuido de forma única mientras se propaga a la ubicación de la entrada de ejemplo 2350. Se puede seleccionar una tensión de umbral, por encima de la cual se puede señalar un estado binario en la salida 2355.In this model, the signals at inputs 2350 are integrated using Equation 1 or Equation 2 above and by additional linear summation where each signal at inputs 2350 can propagate along the physical branches of the system to all other inputs. 2350. While reducing in amplitude in accordance with the length constant X as the signal propagates, each signal at inputs 2350 contributes, to some extent, to the amplitude at each input 2350. The amplitude of any signal at the Input 2350 is therefore the amplitude of that signal plus the sum of all the amplitudes of other signals at inputs 2350 after each of them has uniquely decreased while propagating to the location of the example input 2350. A threshold voltage can be selected, above which a binary state can be signaled at output 2355.

En algunas puestas en práctica, los integradores 2600, 2700 pueden operar de conformidad con un modelo de red neuronal en donde todos los nodos están interconectados directa o indirectamente a través de otros nodos. En dichos integradores, cualquier nodo puede servir como salida. En algunas puestas en práctica, los integradores 2600, 2700 pueden operar según un modelo proporcionado por:In some implementations, integrators 2600, 2700 may operate in accordance with a neural network model where all nodes are directly or indirectly interconnected through other nodes. In such integrators, any node can serve as an output. In some implementations, the 2600, 2700 integrators may operate according to a model provided by:

dVdV

c« '^- = E M k _ ^ &■('> Ecuación 4c «'^ - = E M k _ ^ & ■ ('> Equation 4

1=11 = 1

donde Ii(t) es la corriente inyectada por la entrada i en el momento t y donde hay n entradas a una neurona.where Ii ( t) is the current injected by input i at time t and where there are n inputs to a neuron.

En este modelo, las señales en las entradas 2350 están integradas por elementos de procesamiento de red 2605 que están modelados por las Ecuaciones 1,2 o 3 anteriores, lo que crea entradas internas adicionales 2610 para cada elemento 2605, lo que permite una suma no-lineal y en paralelo de todas las entradas 2350 para obtener la salida 2355. Cualquiera de los elementos de procesamiento 2605 puede seleccionarse para señalar estados binarios de la red como salida 2355. In this model, the signals at inputs 2350 are made up of network processing elements 2605 that are modeled by Equations 1, 2 or 3 above, creating additional internal inputs 2610 for each element 2605, allowing a non-summation. -linear and parallel of all the inputs 2350 to obtain the output 2355. Any of the processing elements 2605 can be selected to signal binary states of the network as output 2355.

Los integradores 2400, 2500, 2600, 2700 se pueden utilizar como el compresor 29 (Figura 1A).The integrators 2400, 2500, 2600, 2700 can be used as compressor 29 (Figure 1A).

La Figura 28 es una representación esquemática de un convertidor binario a analógico 2305. El convertidor binario a analógico 2305 se puede utilizar, por ejemplo, en un codificador, en un escáner de serie temporal o en un dispositivo de ponderación. El convertidor binario a analógico 2305 puede, por tanto, en algunas puestas en práctica, ser un convertidor binario a analógico de referencia tal como se describe a continuación.Figure 28 is a schematic representation of a binary-to-analog converter 2305. The binary-to-analog converter 2305 can be used, for example, in an encoder, time series scanner, or weighting device. The binary-to-analog converter 2305 may, therefore, in some implementations, be a reference binary-to-analog converter as described below.

El convertidor binario a analógico 2305 es un componente que está configurado para ponderar la amplitud de eventos individuales en una serie temporal de eventos de entrada como una función de la sincronización de otros eventos en la serie temporal de entrada. En algunas puestas en práctica, los eventos se pueden ponderar utilizando una función no lineal. Por ejemplo, el convertidor binario a analógico 2305 puede utilizar múltiples parámetros función del tiempo para generar pesos de ponderación individuales para cada evento individual en base a la sincronización de eventos predecesores dentro de una señal de entrada. El convertidor binario a analógico 2305 puede aplicar las ponderaciones generadas a eventos individuales, por ejemplo, multiplicando los eventos por las ponderaciones y generando los eventos ponderados en momentos relativos que corresponden a la sincronización de los eventos no ponderados dentro de la señal de entrada.The binary-to-analog converter 2305 is a component that is configured to weight the amplitude of individual events in a time series of input events as a function of the timing of other events in the input time series. In some implementations, the events can be weighted using a non-linear function. For example, binary-to-analog converter 2305 can use multiple time-function parameters to generate individual weighting weights for each individual event based on the timing of predecessor events within an input signal. The binary-to-analog converter 2305 can apply the generated weights to individual events, for example, multiplying the events by the weights and generating the weighted events at relative times that correspond to the timing of the unweighted events within the input signal.

El convertidor binario a analógico 2305 incluye una entrada 2325 y una salida 2330. La entrada 2325 recibe una señal 2805 que incluye una serie temporal de eventos. Por ejemplo, la entrada 2325 puede recibir una señal de código función del tiempo 135 o una salida de señal de un codificador compresor 2205. La salida 2330 proporciona una señal 2810 que incluye los eventos ponderados en momentos relativos que corresponden a la sincronización de los eventos no ponderados dentro de la señal de entrada.The binary-to-analog converter 2305 includes an input 2325 and an output 2330. The input 2325 receives a signal 2805 that includes a time series of events. For example, input 2325 may receive a time-function code signal 135 or a signal output from a compressor encoder 2205. Output 2330 provides a signal 2810 that includes the weighted events at relative times that correspond to the timing of the events. not weighted within the input signal.

En algunas puestas en práctica, el convertidor binario a analógico 2305 puede incluir un mecanismo de reinicialización que reinicia la ponderación de la amplitud de eventos individuales a un estado conocido. El mecanismo de reinicialización puede activarse, por ejemplo, por la presencia de un evento de pie 530 dentro de un intervalo de pie 520 de una señal 135 (Figura 5). Restablecer la ponderación puede detener la evolución de parámetros función del tiempo y devolver estos parámetros a valores conocidos. En otras puestas en práctica, el convertidor binario a analógico 2305 puede quedarse inactivo sin un iniciador, por ejemplo, en el transcurso del tiempo. In some implementations, the binary-to-analog converter 2305 may include a reset mechanism that resets the weighting of the amplitude of individual events to a known state. The reset mechanism can be triggered, for example, by the presence of a foot event 530 within a foot range 520 of a signal 135 (Figure 5). Resetting the weight can stop the evolution of parameters as a function of time and return these parameters to known values. In other implementations, the binary-to-analog converter 2305 may go idle without an initiator, for example, over time.

En algunas puestas en práctica, los parámetros utilizados por el convertidor binario a analógico 2305 pueden aparecer en ecuaciones diferenciales dependientes del tiempo. Por ejemplo, el convertidor binario a analógico 2305 puede utilizar tres parámetros función del tiempo (U, id, if en las ecuaciones siguientes) y un parámetro no función del tiempo (A en las ecuaciones siguientes) para generar pesos de ponderación individuales. En algunas puestas en práctica, la amplitud Ak del k-ésimo evento en la señal en donde los eventos (1, ..., k) están separados por tiempos (Ak, ..., Ak-1) puede estar proporcionada por:In some implementations, the parameters used by the binary-to-analog converter 2305 may appear in time-dependent differential equations. For example, the binary-to-analog converter 2305 can use three time-dependent parameters (U, id, if in the following equations) and one non-time-based parameter (A in the following equations) to generate individual weighting weights. In some implementations, the amplitude Ak of the k-th event in the signal where the events (1, ..., k) are separated by times (Ak, ..., Ak -1 ) can be given by:

Ak — A ■ u k -\|/¿ Ecuación 5 Ak - A ■ uk - \ | / ¿Equation 5

- A- TO

ut = U (1 - U) exp(---—) Ecuación 6 ut = U (1 - U) exp (---—) Equation 6

Figure imgf000021_0001
Figure imgf000021_0001

donde y y pk son variables dinámicas ocultas (p e [0,1]; (y e [0,1]) con valores iniciales de y1 = 1 y p1 = U para el primer evento. La variable y puede representar, por ejemplo, la fracción de recursos disponibles en el momento de cada evento. La variable p puede representar, por ejemplo, la fracción de recursos utilizados por cada evento. En algunas puestas en práctica, ambas variables pueden evolucionar con cada evento y proporcionar que la amplitud de la respuesta a cada evento en una señal sea diferente y refleje el registro temporal de eventos en esa señal.where y and pk are hidden dynamic variables (pe [0,1]; (ye [0,1]) with initial values of y1 = 1 and p1 = U for the first event. The variable y can represent, for example, the fraction of resources available at the time of each event. The variable p can represent, for example, the fraction of resources used by each event. In some implementations, both variables can evolve with each event and provide that the amplitude of the response to each event in a signal is different and reflects the temporal record of events in that signal.

La manera en que estas variables dinámicas evolucionan y el período de tiempo durante el cual cada respuesta acumula información sobre el registro temporal de la señal depende de los valores de los parámetros función del tiempo (U, id, if). El parámetro U puede establecer los recursos máximos disponibles para el primer evento, que fracciona la respuesta máxima posible (proporcionada por A). Por tanto, A1=AU. El parámetro id es una constante de tiempo para la recuperación de los recursos después de su utilización. El parámetro if es una constante de tiempo para la recuperación a partir de una facilitación de pk en alguna magnitud (normalmente p).The way in which these dynamic variables evolve and the period of time during which each response accumulates information about the temporal register of the signal depends on the values of the parameters as a function of time (U, id, if). The U parameter can set the maximum resources available for the first event, which slices the maximum possible response (provided by A). Therefore, A 1 = AU. The id parameter is a time constant for resource recovery after use. The if parameter is a time constant for recovery from a facilitation of pk in some magnitude (usually p).

Asignando diferentes valores a los parámetros U, id, if, diferentes convertidores binarios a analógicos 2305 generarán diferentes secuencias de amplitudes en respuesta a una secuencia de eventos de entrada idéntica. En algunas puestas en práctica, se pueden lograr dependencias del tiempo más complejas utilizando exponenciales de orden doble o superior para uno o ambos parámetros id, if. En algunas puestas en práctica, se pueden lograr dependencias del tiempo más complejas utilizando una función dependiente del tiempo para representar uno o ambos de id, if y haciendo de U una variable estocástica o función vinculada a los propios parámetros.By assigning different values to the parameters U, id, if, different binary-to-analog converters 2305 will generate different sequences of amplitudes in response to an identical sequence of input events. In some implementations, more complex time dependencies can be achieved by using double or higher order exponentials for one or both id, if parameters. In some implementations, more complex time dependencies can be achieved by using a time-dependent function to represent one or both of id, if, and making U a stochastic variable or function bound to the parameters themselves.

En algunas puestas en práctica, los convertidores de binario a analógico 2305 se pueden poner en práctica tal como se describe en uno o más de las siguientes: publicación de patente de Estados Unidos 2003/0208451; Patente de Estados Unidos 5.155.802; Patente de Estados Unidos 5.537.512; Patente de Estados Unidos 6.363.369; y Patente de Estados Unidos 4.962.342. Por ejemplo, los convertidores de binario a analógico 2305 se pueden poner en práctica como un dispositivo que incluye una red de procesadores de señal interconectados por una o más uniones de procesamiento que ajustan, de manera dinámica, la intensidad de respuesta según el patrón temporal de eventos en la señal 2805 y, por lo tanto, simula una "sinapsis dinámica” tal como se describe en la Patente de Estados Unidos 6.363.369. Las uniones de procesamiento pueden recibir y procesar una señal de unión previa de un procesador de señales en la red para obtener una señal de unión que genera una señal de unión posterior a un segundo procesador de señales en la red. Cada unión de procesamiento puede configurarse para que la señal de unión tenga una dependencia dinámica de la señal de preunión. In some implementations, the binary-to-analog converters 2305 may be implemented as described in one or more of the following: US Patent Publication 2003/0208451; US Patent 5,155,802; US Patent 5,537,512; US Patent 6,363,369; and US Patent 4,962,342. For example, the 2305 binary-to-analog converters can be implemented as a device that includes a network of signal processors interconnected by one or more processing junctions that dynamically adjust the response intensity according to the time pattern of events on signal 2805 and thus simulates a "dynamic synapse" as described in US Patent 6,363,369. Processing junctions can receive and process a previous junction signal from a signal processor at the network to obtain a binding signal that generates a subsequent binding signal to a second signal processor in the network.Each processing junction can be configured so that the binding signal has a dynamic dependence on the pre-binding signal.

La Figura 29 es una representación esquemática de la ponderación de la amplitud de eventos individuales en una serie temporal de eventos como una función de la sincronización de otros eventos en la serie temporal. La ponderación ilustrada se puede realizar mediante un convertidor binario a analógico, tal como un convertidor binario a analógico 2305 (Figura 28). En la puesta en práctica ilustrada, la señal 135 es una señal de código función del tiempo que codifica la información por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. Por ejemplo, la señal 135 puede ser una señal de código función del tiempo emitida desde un decodificador 105 (Figuras 1, 2, 4, 6, 8). La señal 135 se pondera para formar una señal de tiempo ponderada 2900.Figure 29 is a schematic representation of the weighting of the amplitude of individual events in a time series of events as a function of the timing of other events in the time series. The weighting illustrated can be performed by a binary-to-analog converter, such as a binary-to-analog converter 2305 (Figure 28). In the illustrated implementation, signal 135 is a time-function code signal that encodes information by timing the occurrence of events within time intervals. For example, signal 135 may be a time-code signal emitted from a decoder 105 (Figures 1, 2, 4, 6, 8). Signal 135 is weighted to form a time-weighted 2900 signal.

La señal de tiempo ponderada 2900 incluye una secuencia de intervalos de tiempo 2905, cada uno de los cuales incluye un evento respectivo 2910. Los eventos 2910 ocurren en los momentos 2915 dentro de los respectivos intervalos 2905. Weighted time signal 2900 includes a sequence of time slots 2905, each of which includes a respective event 2910. Events 2910 occur at times 2915 within respective slots 2905.

En la puesta en práctica ilustrada, los eventos 2910 son pulsos que pasan desde un estado de línea base (es decir, un estado de "reposo") 2920 a un estado alto (es decir, un estado "excitado") 2925 y luego retornan al estado de reposo de la línea base 2920. El nivel de estado alto 2925 difiere para diferentes eventos 2910. El nivel de estado alto 2925 es la amplitud del evento 2910 y un resultado de la ponderación. El nivel de estado alto 2925 (es decir, la amplitud de cada evento 2910) incorpora el tiempo de ese evento 2910 dentro de la señal 135 y la sincronización de otros eventos 2910 dentro de la señal 135. Dicho de otro modo, la información codificada por la sincronización de dos o más eventos 2910 dentro de la señal 135 están incorporados dentro de las amplitudes de cada evento 2910. Tal como se describió con anterioridad, en algunas puestas en práctica, las amplitudes de cada evento 2910 pueden incorporar la sincronización solamente de los eventos predecesores 2910.In the illustrated implementation, events 2910 are pulses that go from a baseline state (ie, a "sleep" state) 2920 to a high state (ie, an "energized" state) 2925 and then return. to the idle state of the baseline 2920. The high state level 2925 differs for different events 2910. The high state level 2925 is the amplitude of event 2910 and a result of the weighting. The high state level 2925 (that is, the amplitude of each event 2910) incorporates the timing of that event 2910 within signal 135 and the timing of other events 2910 within signal 135. In other words, the encoded information by timing two or more events 2910 within signal 135 are embedded within the amplitudes of each event 2910. As previously described, in some implementations, the amplitudes of each event 2910 may incorporate timing only of predecessor events 2910.

En la puesta en práctica ilustrada, la ponderación de los eventos en la señal de código función del tiempo 135 cambia la amplitud de esos eventos mientras se retiene la información de sincronización dentro del intervalo y dentro de la señal. En particular, la señal de tiempo ponderada ilustrada 2900 incluye un conjunto de intervalos de tiempo 2905, cada uno de los cuales corresponde a un intervalo respectivo 320 en la señal 135. Esta correspondencia se representa mediante flechas 2930. En la puesta en práctica ilustrada, algunos eventos 2910 aumentan en amplitud con respecto a los respectivos eventos 205 correspondientes y algunos eventos 2910 disminuyen en amplitud con respecto a los respectivos eventos 205 correspondientes.In the illustrated implementation, weighting the events in the time-function code signal 135 changes the amplitude of those events while retaining the timing information within the range and within the signal. In particular, the illustrated time-weighted signal 2900 includes a set of time intervals 2905, each of which corresponds to a respective interval 320 in signal 135. This correspondence is represented by arrows 2930. In the illustrated implementation, some 2910 events increase in amplitude with respect to the respective corresponding 205 events and some 2910 events decrease in amplitude with respect to the respective corresponding 205 events.

Los intervalos de tiempo correspondientes 2905, 320 incluyen, cada uno, un evento respectivo 2910, 325 que codifica información. La posición de los eventos 2910, 320 dentro de los respectivos intervalos de tiempo 2905, 325 correspondientes es la misma. Por ejemplo, cuando un evento 320 ocurre al inicio de un intervalo de tiempo 325, el evento 2910 en el correspondiente intervalo de tiempo 2905 también ocurre al inicio de ese intervalo. A modo de otro ejemplo, cuando un evento 320 ocurre en la mitad de un intervalo de tiempo 325, el evento 2910 en el correspondiente intervalo de tiempo 2905 también ocurre en la mitad de ese intervalo. En la puesta en práctica ilustrada, la duración de los intervalos 2905, 325 correspondientes es la misma. Además, el orden de los intervalos 2905, 325 correspondientes con respecto a otros intervalos 2905, 325 dentro de una señal respectiva 2900, 135 es el mismo.The corresponding time slots 2905, 320 each include a respective event 2910, 325 that encodes information. The position of the events 2910, 320 within the respective corresponding time slots 2905, 325 is the same. For example, when event 320 occurs at the start of a time interval 325, event 2910 in the corresponding time interval 2905 also occurs at the start of that interval. By way of another example, when an event 320 occurs in the middle of a time interval 325, event 2910 in the corresponding time interval 2905 also occurs in the middle of that interval. In the illustrated implementation, the duration of the corresponding intervals 2905, 325 is the same. Furthermore, the order of corresponding intervals 2905, 325 with respect to other intervals 2905, 325 within a respective signal 2900, 135 is the same.

La Figura 30 es una representación esquemática de una puesta en práctica de una señal 2365. La señal 2365 puede ser objeto de salida desde un codificador compresor 2205 de un dispositivo tal como un transmisor de un teléfono móvil o el cabezal de una unidad de disco. La señal 2365 puede ser una señal unidimensional y puede ser una señal unidimensional 29 (Figura 1A).Figure 30 is a schematic representation of a signal 2365 implementation. Signal 2365 may be output from a compressor encoder 2205 of a device such as a mobile phone transmitter or a disk drive head. Signal 2365 can be a one-dimensional signal and can be a one-dimensional signal 29 (Figure 1A).

La señal 2365 incluye una serie sincronizada de eventos 3005. Los eventos 3005 están separados entre sí por intervalos de tiempo 3010. La duración de los intervalos de tiempo 3010 incorpora la integración de las secuencias de amplitud que incluyen eventos ponderados, por ejemplo, señal de tiempo ponderada 2900.The signal 2365 includes a synchronized series of events 3005. The events 3005 are separated from each other by time intervals 3010. The duration of the time intervals 3010 incorporates the integration of the amplitude sequences that include weighted events, for example, signal of time weighted 2900.

En la puesta en práctica ilustrada, los eventos 3005 son pulsos que pasan desde un estado de línea base (es decir, un estado de "reposo") 3015 a un estado alto (es decir, un estado "excitado") 3020 y luego retornan al estado de reposo de la línea base 3015. En algunas puestas en práctica, las formas de los diferentes eventos 3005 pueden ser indistinguibles entre sí y los diferentes eventos 3005 pueden distinguirse solamente en virtud de su sincronización. In the illustrated implementation, events 3005 are pulses that go from a baseline state (ie, a "sleep" state) 3015 to a high state (ie, an "energized" state) 3020 and then return. to the rest state of the baseline 3015. In some implementations, the shapes of the different events 3005 may be indistinguishable from each other and the different events 3005 may be distinguished only by virtue of their timing.

El número de intervalos de tiempo 3010 para una señal proporcionada 2365 dentro de una unidad de tiempo puede seleccionarse para ajustarse a una distribución de probabilidad predeterminada. En algunas puestas en práctica, la distribución de probabilidad puede ser asimétrica y sesgada, por ejemplo, a la izquierda de su mediana. En algunas puestas en práctica, la desviación estándar de la distribución de probabilidad puede ser aproximadamente igual a la raíz cuadrada de la media de la distribución de probabilidad. Por ejemplo, en algunas puestas en práctica, el número de intervalos de tiempo 3010 dentro de una unidad de tiempo puede distribuirse según el modelo de Poisson.The number of time intervals 3010 for a provided signal 2365 within a unit of time can be selected to fit a predetermined probability distribution. In some implementations, the probability distribution may be skewed and skewed, for example, to the left of its median. In some implementations, the standard deviation of the probability distribution may be approximately equal to the square root of the mean of the probability distribution. For example, in some implementations, the number of time intervals 3010 within a time unit can be distributed according to the Poisson model.

En algunas puestas en práctica, la señal 2365 se puede agregar, superponer o transmitir de otra manera junto con información adicional. Por ejemplo, los eventos 3005 pueden añadirse a una señal analógica o digital modulada o desplazada y, por tanto, parecerse al ruido en esa señal. Dichas puestas en práctica son particularmente pertinentes para la comunicación de datos encubiertos o cifrados. Por ejemplo, los eventos 3005 se pueden transmitir junto con una señal analógica modulada en frecuencia que transmite información sin importancia tal como, por ejemplo, una transmisión de radio. Para el observador desinformado, los eventos 3005 parecerían ser ruido en esta segunda señal. El contenido de información codificado por los eventos 3005 puede, por tanto, disfrazarse.In some implementations, signal 2365 may be added, overlaid, or otherwise transmitted along with additional information. For example, events 3005 can be added to a modulated or shifted analog or digital signal and thus resemble noise in that signal. Such implementations are particularly relevant for the communication of covert or encrypted data. For example, events 3005 can be transmitted along with a frequency modulated analog signal that transmits unimportant information such as, for example, a radio transmission. To the uninformed observer, events 3005 would appear to be noise on this second signal. The information content encoded by events 3005 can therefore be disguised.

La Figura 31 es una representación esquemática de un dispositivo de almacenamiento de datos 3100. El dispositivo de almacenamiento de datos 3100 es un componente en donde se puede almacenar información y desde el cual se puede acceder a la información almacenada. Por ejemplo, el dispositivo de almacenamiento de datos 3100 puede ser un disco óptico, un disco magnético, una cinta magnética, un álbum de registro, una tarjeta perforada, una etiqueta con código de barras u otro dispositivo de almacenamiento de datos.Figure 31 is a schematic representation of a data storage device 3100. The data storage device 3100 is a component in which information can be stored and from which stored information can be accessed. For example, data storage device 3100 can be an optical disk, magnetic disk, magnetic tape, record album, punch card, barcode label, or other data storage device.

El dispositivo de almacenamiento de datos 3100 incluye un conjunto de manifestaciones físicas detectables 3105. Las manifestaciones físicas 3105 son elementos estructurales que pueden ser detectados o descubiertos por un lector de dispositivo de almacenamiento de datos. Por ejemplo, las manifestaciones físicas 3105 pueden ser los agujeros o protuberancias de un disco óptico que son detectables por un lector de disco óptico. A modo de otro ejemplo, las manifestaciones físicas 3105 pueden ser elementos magnetizados de disco o cinta magnéticos que son detectables por un sensor de magnetización. A modo de otro ejemplo, las manifestaciones físicas 3105 pueden ser las características de un álbum de registro que son detectables por el lápiz óptico de un reproductor de discos. Data storage device 3100 includes a set of detectable physical manifestations 3105. Physical manifestations 3105 are structural elements that can be detected or discovered by a data storage device reader. For example, physical manifestations 3105 can be the holes or bumps on an optical disc that are detectable by an optical disc reader. By way of another example, physical manifestations 3105 may be magnetized magnetic disk or tape elements that are detectable by a magnetization sensor. By way of another example, physical manifestations 3105 may be the characteristics of a record album that are detectable by the stylus of a record player.

Las manifestaciones físicas 3105 están dispuestas y colocadas en secuencia a lo largo de las rutas 3110. Las rutas 3110 guían el almacenamiento y el acceso de datos y pueden ser, por ejemplo, pistas, ranuras, una cinta magnética o la longitud de un código de barras. Las manifestaciones físicas 3105 a lo largo de cada ruta 3110 están separadas entre sí por distancias 3115. Las longitudes de las distancias 3115 se pueden escalar para corresponder a los tiempos entre eventos en una señal. Por ejemplo, las longitudes de las distancias 3115 se pueden escalar para que correspondan con la duración de los intervalos de tiempo 3010 en la señal 2365 (Figura 30).Physical manifestations 3105 are arranged and placed in sequence along routes 3110. Routes 3110 guide the storage and access of data and can be, for example, tracks, slots, a magnetic tape or the length of a code of bars. The physical manifestations 3105 along each route 3110 are separated from each other by distances 3115. The lengths of the distances 3115 can be scaled to correspond to the times between events in a signal. For example, the lengths of distances 3115 can be scaled to correspond to the duration of time intervals 3010 in signal 2365 (Figure 30).

Durante la escritura de datos en el dispositivo de almacenamiento de datos 3100, la velocidad del movimiento relativo entre las rutas 3110 del dispositivo de almacenamiento de datos 3100 y un aparato de escritura del dispositivo de almacenamiento de datos puede transformar los tiempos entre eventos en dichas señales en la posición de las manifestaciones físicas 3105 a lo largo de las rutas. 3110. Durante la lectura de datos del dispositivo de almacenamiento de datos 3100, la velocidad del movimiento relativo entre las rutas 3110 del dispositivo de almacenamiento de datos 3100 y un lector del dispositivo de almacenamiento de datos puede transformar la posición de las manifestaciones físicas 3105 a lo largo de las rutas 3110 en tiempos entre eventos en dichas señales. En algunas puestas en práctica, la velocidad del movimiento relativo durante la lectura y la escritura no necesita ser constante, pero puede variar, por ejemplo, en base a la posición de una ruta 3110 en el dispositivo de almacenamiento de datos 3100.During data writing to the data storage device 3100, the speed of relative movement between the paths 3110 of the data storage device 3100 and a writing apparatus of the data storage device can transform the times between events into said signals. at the position of 3105 physical manifestations along the routes. 3110. During data reading from data storage device 3100, the speed of relative movement between paths 3110 of data storage device 3100 and a reader of data storage device can transform the position of physical manifestations 3105 to along routes 3110 in times between events on those signals. In some implementations, the speed of relative movement during reading and writing need not be constant, but may vary, for example, based on the position of a path 3110 in the data storage device 3100.

El número de longitudes de distancias 315 dentro de una longitud unitaria puede seleccionarse para ajustarse a una distribución de probabilidad predeterminada. En algunas puestas en práctica, la distribución de probabilidad puede ser asimétrica y sesgada, por ejemplo, a la izquierda de su mediana. En algunas puestas en práctica, la desviación estándar de la distribución de probabilidad puede ser aproximadamente igual a la raíz cuadrada de la media de la distribución de probabilidad. Por ejemplo, en algunas puestas en práctica, el número de longitudes de distancias 315 dentro de una unidad de longitud puede distribuirse según el modelo de Poisson.The number of distance lengths 315 within a unit length can be selected to fit a predetermined probability distribution. In some implementations, the probability distribution may be skewed and skewed, for example, to the left of its median. In some implementations, the standard deviation of the probability distribution may be approximately equal to the square root of the mean of the probability distribution. For example, in some implementations, the number of lengths of distances 315 within a unit of length can be distributed according to the Poisson model.

En funcionamiento, un aparato de escritura de un dispositivo de almacenamiento de datos puede recibir una señal que caracteriza una serie sincronizada de eventos, tal como la señal 2365. El aparato de escritura del dispositivo de almacenamiento de datos puede escribir manifestaciones físicas 3105 a lo largo de una o más rutas 3110 en el dispositivo de almacenamiento de datos 3100 de modo que las longitudes de las distancias 3115 estén a escala para corresponder a los tiempos entre eventos en la señal. El dispositivo de almacenamiento de datos 3100 puede mantener o "almacenar" las manifestaciones físicas 3105 y las longitudes de las distancias 3115 que separan las manifestaciones físicas 3105.In operation, a data storage device writer may receive a signal that characterizes a synchronized series of events, such as signal 2365. The data storage device writer may write physical manifestations 3105 along of one or more routes 3110 in the data storage device 3100 so that the lengths of the distances 3115 are scaled to correspond to the times between events in the signal. The data storage device 3100 can maintain or "store" the physical manifestations 3105 and the lengths of distances 3115 that separate the physical manifestations 3105.

Al acceder a la información almacenada, un lector de dispositivo de almacenamiento de datos puede medir las longitudes de las distancias 3115 que separan las manifestaciones físicas 3105 a lo largo de una o más rutas 3110 en el dispositivo de almacenamiento de datos 3100. Las medidas se pueden convertir en una señal que caracteriza una serie sincronizada de eventos, tal como la señal 2365 (Figura 30). Por ejemplo, el lector del dispositivo de almacenamiento de datos puede emitir la señal 2365 de manera que la duración de los intervalos de tiempo estén en escala 3010 para corresponder a las longitudes de las distancias 3115. En algunas puestas en práctica, el lector del dispositivo de almacenamiento de datos y el aparato de escritura del dispositivo de almacenamiento de datos pueden ser el mismo dispositivo.By accessing the stored information, a data storage device reader can measure the lengths of the distances 3115 that separate physical manifestations 3105 along one or more routes 3110 in the data storage device 3100. The measurements are made. they can be converted into a signal that characterizes a synchronized series of events, such as signal 2365 (Figure 30). For example, the data storage device reader may output signal 2365 so that the duration of the time intervals are scaled 3010 to correspond to the lengths of the distances 3115. In some implementations, the device reader The data storage device and the writing apparatus of the data storage device may be the same device.

La Figura 32 es una representación esquemática de una puesta en práctica de un sistema en donde se puede decodificar información, a saber, un sistema 3200. El sistema 3200 incluye un decodificador multicanal 2100 y un decodificador expansor 3205.Figure 32 is a schematic representation of an implementation of a system where information can be decoded, namely, a 3200 system. The 3200 system includes a 2100 multichannel decoder and a 3205 expander decoder.

El decodificador expansor 3205 es un componente que expande una o más señales de entrada en un conjunto de señales de salida. El decodificador expansor 3205 incluye una entrada 3210 y un conjunto de una o más salidas 3215. La entrada 3210 recibe una señal 2365 desde un sistema o medio de soporte 140. El decodificador expansor 3205 expande la señal 2365 y emite un conjunto de una o más señales en donde se codifica la información por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo en una o más salidas 3215 al decodificador multicanal 2100.The expander decoder 3205 is a component that expands one or more input signals into a set of output signals. The expander decoder 3205 includes an input 3210 and a set of one or more outputs 3215. The input 3210 receives a signal 2365 from a support system or means 140. The expander decoder 3205 expands the signal 2365 and outputs a set of one or more signals where the information is encoded by synchronizing the occurrence of events within time intervals on one or more outputs 3215 to the multi-channel decoder 2100.

El sistema 3200 se puede utilizar de forma aislada o junto con otros dispositivos. Por ejemplo, el sistema 3200 puede utilizarse como expansor de ponderación 37, decodificador de amplitud 39 y decodificador función del tiempo 41 (Figura 1A).The 3200 system can be used in isolation or in conjunction with other devices. For example, the 3200 system can be used as a weight expander 37, amplitude decoder 39, and time function decoder 41 (Figure 1A).

La Figura 33 es una representación esquemática de una puesta en práctica de un decodificador expansor 3205. El decodificador 3205 es un componente que decodifica información en una señal que incluye una serie sincronizada de eventos en una señal de código función del tiempo en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. El decodificador 3205 puede por tanto decodificar una señal como la señal 2365 (Figura 30) en una señal como la señal 1220 (Figura 12).Figure 33 is a schematic representation of an implementation of an expander decoder 3205. The decoder 3205 is a component that decodes information in a signal that includes a synchronized series of events in a time-based code signal where the information is encoded by the synchronization of the occurrence of events within time intervals. Decoder 3205 can thus decode a signal like signal 2365 (Figure 30) into a signal like signal 1220 (Figure 12).

Además de la entrada 3210 y una o más salidas 3215, el decodificador 3205 incluye un dispositivo de ponderación 3310 y un escáner de serie temporal 3315. El dispositivo de ponderación 3310 es un componente para ponderar eventos en una señal que incluye una serie sincronizada de eventos. El escáner de serie temporal 3315 es un componente que busca una serie temporal que, cuando se introduce en un convertidor binario a analógico con la referencia adecuada, proporciona una señal de código función del tiempo en donde la información está codificada por la sincronización de la ocurrencia de eventos dentro de los intervalos de tiempo.In addition to input 3210 and one or more outputs 3215, decoder 3205 includes weighting device 3310 and time series scanner 3315. Weighting device 3310 is a component for weighting. events in a signal that includes a synchronized series of events. The 3315 time series scanner is a component that searches for a time series that, when input into a binary-to-analog converter with the appropriate reference, provides a time-function code signal where the information is encoded by the timing of the occurrence of events within the time intervals.

La entrada 3210 del decodificador expansor 3205 recibe la señal 2365. La señal 2365 incluye una serie sincronizada de eventos. El dispositivo de ponderación 3310 está acoplado a la entrada 3210 y también incluye una salida 3335. La salida 3335 proporciona una serie neta de eventos de amplitud 3340.Input 3210 of expander decoder 3205 receives signal 2365. Signal 2365 includes a synchronized series of events. Weighting device 3310 is coupled to input 3210 and also includes output 3335. Output 3335 provides a net series of events of amplitude 3340.

El escáner de serie temporal 3315 incluye una entrada 3345 y está acoplado a la salida 3215 del decodificador 3305. La entrada 3345 recibe los eventos 3340 y proporciona una señal de código función del tiempo en donde la información está codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. Por ejemplo, la salida 3215 puede proporcionar una señal 135 a un sistema o a un medio.The time series scanner 3315 includes an input 3345 and is coupled to the output 3215 of the decoder 3305. The input 3345 receives the events 3340 and provides a time-based code signal where the information is encoded by the timing of the occurrence of events within time intervals. For example, output 3215 can provide a signal 135 to a system or media.

El decodificador expansor se puede utilizar de forma aislada o junto con otros dispositivos. Por ejemplo, el decodificador expansor puede utilizarse como expansor de ponderación 37 y decodificador de amplitud 39 (Figura 1A). The expander decoder can be used in isolation or in conjunction with other devices. For example, the expander decoder can be used as a weight expander 37 and an amplitude decoder 39 (Figure 1A).

La Figura 34 es una representación esquemática de un dispositivo de ponderación 3310. El dispositivo de ponderación 3310 es un componente para ponderar eventos en una señal que incluye una serie sincronizada de eventos. Por ejemplo, el dispositivo de ponderación 3310 puede ponderar los eventos 3005 de la señal 2365 (Figura 30). Tal como se describe a continuación, las ponderaciones con las que el dispositivo de ponderación 3310 pondera los eventos se pueden seleccionar basándose en el éxito en la representación de una operación matemática o de otro tipo en una señal particular en un canal de entrada 2340 de un codificador compresor 2205 (Figura 23). Por ejemplo, en algunas puestas en práctica, las ponderaciones con las que el dispositivo de ponderación 3310 pondera los eventos se pueden seleccionar para realizar una o más operaciones de compresión y cifrado de datos en señales en el canal de entrada 2340, operaciones de procesamiento de texto en señales en el canal de entrada 2340, operaciones de procesamiento de números en señales en el canal de entrada 2340, operaciones de procesamiento de imágenes en señales en el canal de entrada 2340 y operaciones de procesamiento de señales en señales en el canal de entrada 2340. El dispositivo de ponderación 3310 puede ser parte del decodificador expansor 3205 (Figura 33).Figure 34 is a schematic representation of a weighting device 3310. The weighting device 3310 is a component for weighting events in a signal that includes a synchronized series of events. For example, weighting device 3310 may weight events 3005 of signal 2365 (Figure 30). As described below, the weights with which the weighting device 3310 weights the events can be selected based on the success of rendering a mathematical or other operation on a particular signal on an input channel 2340 of a 2205 Compressor Encoder (Figure 23). For example, in some implementations, the weights with which the weighting device 3310 weights the events may be selected to perform one or more data compression and encryption operations on signals on the input channel 2340, data processing operations. text on signals on input channel 2340, number processing operations on signals on input channel 2340, image processing operations on signals on input channel 2340, and signal processing operations on signals on input channel 2340. Weighting device 3310 may be part of expander decoder 3205 (Figure 33).

El dispositivo de ponderación 3310 incluye una entrada 3210, una salida 3335, un conjunto de convertidores binario a analógico 2305, un conjunto de multiplicadores 3440, un conjunto de pesos de ponderación 3445 y un sumador 3465. La entrada 3210 recibe la señal 2365 que incluye una serie sincronizada de eventos. La entrada 3210 distribuye la señal 2365 a las entradas 2325 de los convertidores binario a analógico 2305. Cada convertidor binario a analógico 2305 pondera la amplitud de los eventos individuales en una serie temporal de eventos de entrada como una función de la sincronización de otros eventos en la serie temporal de entrada. Por ejemplo, cada convertidor binario a analógico 2305 puede utilizar múltiples parámetros función del tiempo para generar pesos de ponderación individuales para cada evento individual basado en la sincronización de eventos predecesores dentro de la señal 2365. En general, cada convertidor binario a analógico 2305 aplica las ponderaciones generadas para eventos individuales, por ejemplo, multiplicando los eventos por los pesos de ponderación y proporcionando los eventos ponderados en momentos relativos que corresponden a la sincronización de los eventos no ponderados dentro de la señal 2365.Weighting device 3310 includes input 3210, output 3335, set of binary-to-analog converters 2305, set of multipliers 3440, set of weighting weights 3445, and adder 3465. Input 3210 receives signal 2365 which includes a synchronized series of events. Input 3210 distributes signal 2365 to inputs 2325 of binary-to-analog converters 2305. Each binary-to-analog converter 2305 weights the amplitude of individual events in a time series of input events as a function of the timing of other events in the input time series. For example, each binary-to-analog converter 2305 can use multiple time-function parameters to generate individual weighting weights for each individual event based on the timing of predecessor events within the 2365 signal. In general, each binary-to-analog converter 2305 applies the weights generated for individual events, for example, by multiplying the events by the weighting weights and providing the weighted events at relative times that correspond to the timing of the unweighted events within the 2365 signal.

En algunas puestas en práctica, el conjunto de convertidores de binario a analógico 2305 puede construirse utilizando un proceso tal como el proceso 3900 (Figura 39). En algunas puestas en práctica, el conjunto de convertidores binario a analógico 2305 en el dispositivo de ponderación 3310 puede ser el conjunto completo de convertidores binario a analógico construido utilizando el proceso 3900.In some implementations, the binary-to-analog converter assembly 2305 can be constructed using a process such as process 3900 (Figure 39). In some implementations, the set of binary-to-analog converters 2305 in the weighting device 3310 may be the full set of binary-to-analog converters constructed using the 3900 process.

Cada convertidor binario a analógico 2305 incluye la salida 2330 en donde se proporciona la serie sincronizada ponderada de eventos 3430. La serie sincronizada ponderada de eventos 3430 se proporciona como entrada a un multiplicador 3440 respectivo. Los multiplicadores 3440 son componentes que están configurados para multiplicar una serie sincronizada ponderada de eventos por otro peso de ponderación 3445. Tal como se describe a continuación, los pesos de ponderación 3445 se pueden determinar durante un proceso de formación. Por ejemplo, cada peso de ponderación 3445 se puede determinar de conformidad con el éxito de un correspondiente convertidor binario a analógico 2305 al representar una señal particular 135 de entrada en un canal 2340 de un codificador compresor 2205. A modo de otro ejemplo, los pesos de ponderación 3445 se pueden determinar de conformidad con para el éxito de un convertidor binario a analógico 2305 respectivo en la representación de una operación matemática u otra operación en una señal particular 135 introducida en un canal 2340 de un codificador compresor 2205.Each binary-to-analog converter 2305 includes output 2330 where the weighted synchronized series of events 3430 is provided. The weighted synchronized series of events 3430 is provided as input to a respective multiplier 3440. Multipliers 3440 are components that are configured to multiply a weighted synchronized series of events by another weight 3445. As described below, weight weights 3445 can be determined during a training process. For example, each weighting weight 3445 can be determined according to the success of a corresponding binary-to-analog converter 2305 in representing a particular input signal 135 on a channel 2340 of a compressor encoder 2205. By way of another example, the weights Weights 3445 can be determined in accordance with the success of a respective binary-to-analog converter 2305 in representing a mathematical or other operation on a particular signal 135 input to a channel 2340 of a compressor encoder 2205.

Cada peso de ponderación 3445 puede ser recibido por un multiplicador 3440 en una entrada respectiva 3450. Los pesos de ponderación 3445 pueden almacenarse, por ejemplo, en uno o más dispositivos de almacenamiento de datos. Los multiplicadores 3440 son componentes que escalan la serie sincronizada ponderada de eventos 3430 recibidos en la entrada 3435 de conformidad con el peso de ponderación 3445. Los multiplicadores 3440 pueden escalar la serie sincronizada ponderada de eventos de forma lineal o no lineal. Por ejemplo, en algunas puestas en práctica, los multiplicadores 3440 pueden utilizar pesos de ponderación 3445 como pesos escalares y multiplicar los eventos ponderados en cada serie sincronizada por un peso correspondiente 3445. En algunas puestas en práctica, los multiplicadores 3440 pueden utilizar pesos de ponderación 3445 para escalar varios eventos ponderados en cada sincronización serie no lineal o de otro tipo.Each weighting weight 3445 may be received by a multiplier 3440 at a respective input 3450. Weighting weights 3445 may be stored, for example, in one or more data storage devices. The multipliers 3440 are components that scale the weighted synchronized series of events 3430 received at input 3435 in accordance with the weighting weight 3445. The multipliers 3440 can scale the weighted synchronized series of events linearly or non-linearly. For example, in some implementations, multipliers 3440 may use weighting weights 3445 as scalar weights and multiply the weighted events in each synchronized series by a corresponding weight 3445. In some implementations, multipliers 3440 may use weighting weights 3445 to scale multiple weighted events at each nonlinear or other serial sync.

Cada multiplicador 3440 genera la serie de eventos 3455 escalados y ponderados sincronizados sobre una salida 3450 que está acoplada a las entradas 3460 de un sumador 3465. El sumador 3465 es un componente que suma estos eventos escalados y ponderados 3455 en cada momento de la entrada de las series sincronizadas ponderadas y escaladas para generar una serie neta de eventos de amplitud 3470.Each multiplier 3440 generates the series of scaled and weighted events 3455 synchronized on an output 3450 that is coupled to the inputs 3460 of an adder 3465. The adder 3465 is a component that adds these scaled and weighted events 3455 at each moment of the input of the weighted and scaled synchronized series to generate a net series of events of amplitude 3470.

En algunas puestas en práctica, el sumador 3465 puede incluir un umbral dinámico para generar un evento de amplitud en la serie neta 3470. Un umbral dinámico es un umbral que cambia. El umbral dinámico puede ser un límite inferior para la inclusión de un evento de amplitud en la serie neta 3470. Dicho de otro modo, si la suma de los eventos ponderados y escalados por primera vez está por debajo del límite inferior, esta suma no se incluye en la serie neta 3470 aun cuando la suma no sea cero. El umbral dinámico se puede cambiar para controlar el número de eventos de amplitud en la serie neta 3470. Por ejemplo, el umbral dinámico se puede cambiar para garantizar que el número de eventos de amplitud en la serie neta 3470 sea idéntico al número de eventos en la señal de entrada 2365. En algunas puestas en práctica, el sumador 3465 primero suma los eventos escalados y ponderados en cada momento de la serie sincronizada ponderada y escalada de entrada, y luego la amplitud dinámica se reduce, de manera gradual, hasta que el número de eventos de amplitud en la serie neta 3470 sea idéntico al número de eventos en la señal 2365. Lo que antecede permite que se aplique el mismo umbral dinámico para toda la serie neta 3470.In some implementations, the adder 3465 may include a dynamic threshold to generate an amplitude event in the net series 3470. A dynamic threshold is a threshold that changes. The dynamic threshold can be a lower limit for the inclusion of an amplitude event in the net series 3470. In other words, if the sum of the weighted and scaled events for the first time is below the lower limit, this sum is not calculated. includes in the net series 3470 even if the sum is not zero. The dynamic threshold can be changed to control the number of amplitude events in the 3470 net series. For example, the dynamic threshold can be changed to ensure that the number of amplitude events in the 3470 net series is identical to the number of events in input signal 2365. In some implementations, adder 3465 first adds the scaled and weighted events at each point in time of the input weighted and scaled synchronized series, and then the dynamic amplitude is gradually reduced until the number of amplitude events in the net series 3470 is identical to the number of events in signal 2365. The above allows the same dynamic threshold to be applied for the entire net series 3470.

En la puesta en práctica ilustrada, los eventos de amplitud dentro de la serie neta 3470 están separados por períodos no uniformes. Este no es necesariamente el caso. En cambio, el sumador 3465 puede generar los eventos de amplitud dentro de la serie neta 3470 sin información de sincronización. A la luz del umbral dinámico descrito con anterioridad, el sumador 3465 puede en efecto generar una lista de las amplitudes de los eventos de mayor amplitud como serie neta 3470 sin describir el tiempo entre esos eventos. El orden de las amplitudes en dicha lista puede corresponder al orden en que ocurrieron dichos eventos.In the illustrated implementation, the amplitude events within the net series 3470 are separated by non-uniform periods. This is not necessarily the case. Instead, the adder 3465 can generate the amplitude events within the net string 3470 without timing information. In light of the dynamic threshold described above, the adder 3465 may in effect generate a list of the amplitudes of the highest amplitude events as a net series 3470 without describing the time between those events. The order of the amplitudes in this list may correspond to the order in which these events occurred.

La Figura 35 es una representación esquemática de la ponderación de la amplitud de eventos individuales en una serie temporal de eventos como una función de la sincronización de otros eventos en la serie temporal. La ponderación ilustrada se puede realizar mediante un convertidor binario a analógico, tal como un convertidor binario a analógico 2305 (Figura 28). En la puesta en práctica ilustrada, la señal 2365 incluye una serie sincronizada de eventos 3005 que están separados entre sí por intervalos de tiempo 3010. La duración de los intervalos de tiempo 3010 representa la integración de las secuencias de amplitud que incluyen eventos ponderados. Por tanto, la señal 2365 se puede emitir, por ejemplo, desde un integrador tal como uno de los integradores 2310, 2400, 2500, 2600, 2700.Figure 35 is a schematic representation of the weighting of the amplitude of individual events in a time series of events as a function of the timing of other events in the time series. The weighting illustrated can be performed by a binary-to-analog converter, such as a binary-to-analog converter 2305 (Figure 28). In the illustrated implementation, signal 2365 includes a synchronized series of events 3005 that are separated from each other by time intervals 3010. The duration of time intervals 3010 represents the integration of the amplitude sequences that include weighted events. Thus, signal 2365 can be output, for example, from an integrator such as one of integrators 2310, 2400, 2500, 2600, 2700.

La señal 2365 se pondera para formar una señal de tiempo ponderada 3500. La señal de tiempo ponderada 3500 incluye un conjunto de eventos 3505 que están separados entre sí por intervalos de tiempo 3510.Signal 2365 is weighted to form a time-weighted signal 3500. Time-weighted signal 3500 includes a set of events 3505 that are separated from each other by time intervals 3510.

En la puesta en práctica ilustrada, los eventos 3505 son pulsos que pasan desde un estado de línea base (es decir, un estado de "reposo") 3520 a un estado alto (es decir, un estado "excitado") 3525 y luego retornan al estado de referencia de reposo 3520. El nivel del estado alto 3525 difiere para diferentes eventos 3505. El nivel del estado alto 3525 es la amplitud del evento 3505 y un resultado de la ponderación. El nivel de estado alto 3525 (es decir, la amplitud de cada evento 3505) incorpora el tiempo de ese evento 3505 dentro de la señal 2365 y el tiempo de al menos algunos de los otros eventos 3505 dentro de la señal 2365. Dicho de otro modo, la información codificada por la sincronización de dos o más eventos 3505 dentro de la señal 2365 está incorporada dentro de las amplitudes de cada evento 3505. Tal como se describió con anterioridad, en algunas puestas en práctica, las amplitudes de cada evento 3505 pueden incorporar la sincronización solamente de los eventos predecesores 3505.In the illustrated implementation, events 3505 are pulses that go from a baseline state (ie, a "sleep" state) 3520 to a high state (ie, an "energized" state) 3525 and then return. to the idle reference state 3520. The level of the high state 3525 differs for different events 3505. The level of the high state 3525 is the amplitude of the event 3505 and a result of the weighting. The high state level 3525 (that is, the amplitude of each event 3505) incorporates the time of that event 3505 within signal 2365 and the time of at least some of the other events 3505 within signal 2365. In other words Thus, the information encoded by the timing of two or more events 3505 within signal 2365 is embedded within the amplitudes of each event 3505. As previously described, in some implementations, the amplitudes of each event 3505 may incorporate timing of predecessor events 3505 only.

En la puesta en práctica ilustrada, algunos eventos 3505 aumentan en amplitud con respecto a los respectivos eventos correspondientes 2365 y algunos eventos 3505 disminuyen en amplitud con respecto a los respectivos eventos correspondientes 2365.In the illustrated implementation, some events 3505 increase in amplitude with respect to the respective corresponding events 2365 and some events 3505 decrease in amplitude with respect to the respective corresponding events 2365.

Los intervalos de tiempo 3510 entre la ocurrencia de eventos 3505 dentro de la señal de tiempo ponderada 3500 se escalan a intervalos de tiempo 3010 entre la ocurrencia de eventos 3005 dentro de 2365. En la puesta en práctica ilustrada, los intervalos de tiempo 3510 se escalan uno a uno a intervalos de tiempo 3010. Dicho de otro modo, el intervalo de tiempo 3010 que separa un primer par de eventos 3005 es idéntico al intervalo de tiempo 3510 que separa un par de eventos 3505 que corresponde al primer par.The time intervals 3510 between the occurrence of events 3505 within the weighted time signal 3500 are scaled to time intervals 3010 between the occurrence of events 3005 within 2365. In the illustrated implementation, the time intervals 3510 are scaled one by one at time intervals 3010. In other words, the time interval 3010 that separates a first pair of events 3005 is identical to the time interval 3510 that separates a pair of events 3505 that corresponds to the first pair.

La Figura 36 es una representación esquemática de un escáner de serie temporal 3315. El escáner de serie temporal 3315 es un componente que busca una serie temporal que, cuando se introduce en un convertidor binario a analógico debidamente referenciado, proporciona una señal de código función del tiempo en donde la información está codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. Por ejemplo, el escáner de serie temporal 3315 puede explorar una señal de código función del tiempo 135 que se aproxime o sea la misma que la señal de código función del tiempo 135 introducida en un canal 2340 de un codificador compresor 2205 (Figura 23). Figure 36 is a schematic representation of a 3315 time series scanner. The 3315 time series scanner is a component that searches for a time series which, when input into a properly referenced binary-to-analog converter, provides a code signal as a function of the time where the information is encoded by the synchronization of the occurrence of events within time intervals. For example, time series scanner 3315 may scan a time-function code signal 135 that approximates or is the same as time-function code signal 135 input on a channel 2340 of a compressor encoder 2205 (Figure 23).

El escáner de serie temporal 3315 incluye una entrada 3345 y una salida 3215. La entrada 3345 recibe la serie neta 3470 de amplitudes o eventos de amplitud. La entrada 3345 transporta la serie neta 3470 a una entrada 3620 de una memoria intermedia de amplitud 3625. La memoria intermedia de amplitud 3625 es un componente que memoriza las amplitudes en la serie neta 3470 para compararlas con un comparador 3635. En algunas puestas en práctica, la memoria intermedia de amplitud 3625 puede incluir un caché u otra memoria que almacena las magnitudes de las amplitudes o eventos de amplitud de la serie neta 3470. En puestas en práctica en donde la serie neta 3470 incluye información de tiempo, la memoria intermedia de amplitud 3625 puede incluir componentes para eliminar la información de tiempo de la serie neta 3470 sin perder la información de amplitud. La memoria intermedia de amplitud 3615 incluye una salida 3630 que proporciona las amplitudes memorizadas en memoria intermedia a una entrada 3640 del comparador 3635.The time series scanner 3315 includes an input 3345 and an output 3215. The input 3345 receives the net series 3470 of amplitudes or amplitude events. Input 3345 transports the net string 3470 to an input 3620 of an amplitude buffer 3625. The amplitude buffer 3625 is a component that stores the amplitudes in the net string 3470 for comparison with a comparator 3635. In some implementations , the amplitude buffer 3625 may include a cache or other memory that stores the magnitudes of the amplitudes or amplitude events of the net series 3470. In implementations where the net series 3470 includes time information, the buffer of amplitude 3625 may include components to remove the time information from the net series 3470 without losing the amplitude information. The amplitude buffer 3615 includes an output 3630 that provides the buffered amplitudes to an input 3640 of the comparator 3635.

El comparador 3635 también incluye una entrada 3645 y una salida 3650. El comparador 3635 es un componente que compara amplitudes en la entrada 3640 con amplitudes en la entrada 3645 y genera una indicación del resultado de la comparación en la salida 3650. El resultado de la comparación incorpora las diferencias entre las amplitudes en las entradas 3640, 3645. Por ejemplo, cuando las diferencias entre las amplitudes en las entradas 3640, 3645 son muy pequeñas, la salida 3650 puede generar una pequeña señal.The comparator 3635 also includes an input 3645 and an output 3650. The comparator 3635 is a component that compares amplitudes at input 3640 with amplitudes at input 3645 and generates an indication of the result of the comparison at output 3650. The result of the comparison Comparison incorporates the differences between the amplitudes at the inputs 3640, 3645. For example, when the differences between the amplitudes at the inputs 3640, 3645 are very small, the output 3650 may generate a small signal.

El comparador 3635 compara las amplitudes almacenadas en la memoria intermedia de amplitud 3615 con las amplitudes de salida de un convertidor binario a analógico de referencia 2305. Aunque se muestra como un solo componente, el comparador 3635 puede incluir un conjunto de comparadores que están conectados para comparar amplitudes individuales, p. ej., en paralelo. Dicho de otro modo, un primer comparador puede comparar una primera amplitud almacenada en memoria intermedia de amplitud 3625 con una primera salida de amplitud del convertidor binario a analógico de referencia 2305, un segundo comparador puede comparar una segunda amplitud almacenada en memoria intermedia de amplitud 3625 con una segunda salida de amplitud desde el convertidor binario a analógico 2305 de referencia, y así sucesivamente. Los resultados de las comparaciones individuales de un conjunto de comparadores de este tipo pueden convertirse en un conjunto de una o más salidas.The comparator 3635 compares the amplitudes stored in the amplitude buffer 3615 with the output amplitudes of a reference binary-to-analog converter 2305. Although shown as a single component, the comparator 3635 may include a set of comparators that are connected to compare individual amplitudes, e.g. eg in parallel. In other words, a first comparator may compare a first buffered amplitude of amplitude 3625 with a first amplitude output of the reference binary-to-analog converter 2305, a second comparator may compare a second buffered amplitude of amplitude 3625 with a second amplitude output from the reference binary-to-analog converter 2305, and so on. The results of individual comparisons of such a set of comparators can be converted into a set of one or more outputs.

La salida o salidas 3660 del comparador 3635 se proporcionan a una entrada 3665 de un permutador de código función del tiempo 3670. El permutador de código función del tiempo 3670 es un componente que permuta un código función del tiempo en respuesta a la retroalimentación por las salidas 3660. En particular, el permutador de código función del tiempo 3670 permuta un código función del tiempo para minimizar las diferencias entre las amplitudes en las entradas 3640, 3645 del comparador 3635. El permutador de código función del tiempo 3670 genera un código función del tiempo candidato 3675 sobre una salida 3680. Tal como se describe a continuación, el código función del tiempo candidato se propone como una solución que aproxima una entrada de señal de código función del tiempo 135 a un canal 2340 de un codificador compresor 2205 (Figura 23). Por ejemplo, el permutador de código función del tiempo 3670 puede utilizar aproximaciones sucesivas para generar códigos función del tiempo candidatos 3675.The output (s) 3660 of the comparator 3635 are provided to an input 3665 of a time-code permutator 3670. The time-code permutator 3670 is a component that permutes a time-based code in response to feedback from the outputs. 3660. In particular, the time-based code permuter 3670 permutes a time-based code to minimize the differences between the amplitudes at the inputs 3640, 3645 of the comparator 3635. The time-based code permuter 3670 generates a time-based code candidate 3675 over a 3680 output. As described below, the candidate time function code is proposed as a solution that approximates a 135 time function code signal input to a channel 2340 of a 2205 compressor encoder (Figure 23) . For example, the time code permuter 3670 may use successive approximations to generate candidate time codes 3675.

El código 3675 se proporciona a una entrada 2325 del convertidor binario a analógico de referencia 2305. El convertidor binario a analógico de referencia 2305 es un componente que puede ponderar la amplitud de los eventos individuales del código función del tiempo candidato como una función de la sincronización de otros eventos en el código función del tiempo candidato, por ejemplo, utilizando múltiples parámetros función del tiempo para generar ponderaciones individuales para cada evento individual basándose en la sincronización de los eventos predecesores dentro del código función del tiempo. El convertidor binario a analógico 2305 de referencia puede generar eventos ponderados en momentos relativos que corresponden a la sincronización de los eventos no ponderados dentro del código función del tiempo candidato o sin información de sincronización. Dicho de otro modo, el convertidor binario a analógico 2305 de referencia puede generar una lista ordenada de ponderaciones de amplitud sin describir el tiempo entre esos eventos en el código función del tiempo candidato de entrada. En algunas puestas en práctica, el convertidor binario a analógico 2305 de referencia puede incluir una memoria intermedia, una memoria caché u otra memoria que almacene las magnitudes de los pesos o amplitudes ponderadas.Code 3675 is provided to an input 2325 of reference binary-to-analog converter 2305. Reference binary-to-analog converter 2305 is a component that can weight the amplitude of individual events of the candidate time function code as a function of timing. from other events in the candidate time function code, for example, using multiple time function parameters to generate individual weights for each individual event based on the timing of the predecessor events within the time function code. The reference binary-to-analog converter 2305 can generate weighted events at relative times corresponding to the timing of the unweighted events within the candidate time-function code or without timing information. In other words, the reference binary-to-analog converter 2305 can generate an ordered list of amplitude weights without describing the time between those events in the input candidate time code. In some implementations, the reference binary-to-analog converter 2305 may include a buffer, cache, or other memory that stores the magnitudes of the weights or weighted amplitudes.

En algunas puestas en práctica, el convertidor binario a analógico 2305 de referencia puede ser idéntico a un convertidor binario a analógico 2305 del codificador compresor 2205 (Figura 23). Por ejemplo, los parámetros función del tiempo utilizados por el convertidor binario a analógico de referencia 2305 en el escáner de serie temporal 3315 pueden ser idénticos a los parámetros función del tiempo, utilizados por el convertidor binario a analógico 2305 en el canal 2340.In some implementations, the reference binary-to-analog converter 2305 may be identical to a binary-to-analog converter 2305 of the compressor encoder 2205 (Figure 23). For example, the time-function parameters used by reference binary-to-analog converter 2305 on time-series scanner 3315 may be identical to the time-function parameters, used by binary-to-analog converter 2305 on channel 2340.

En algunas puestas en práctica, el permutador de código función del tiempo 3670 también puede incluir un comparador que compara la retroalimentación proporcionada por las salidas 3660 con un nivel de umbral que incorpora una magnitud aceptable de diferencia entre las amplitudes en las entradas 3640, 3645 del comparador 3635. El permutador de código función del tiempo 3670 puede permutar el código candidato basado en tiempo hasta que se alcance la cantidad aceptable de diferencia. Dicho de otro modo, en puestas en práctica donde la fidelidad es muy importante, el nivel de umbral puede ser más estricto y establecerse para requerir que la diferencia entre las amplitudes en las entradas 3640, 3645 del comparador 3635 sean relativamente pequeñas o nulas. En dichas circunstancias, el permutador de código función del tiempo 3670 generalmente realizará, de manera relativa, más permutaciones. En puestas en práctica en donde la fidelidad es menos importante y factores como, por ejemplo, la velocidad es más importante, el nivel de umbral puede ser menos estricto y establecerse para permitir que la diferencia entre las amplitudes en las entradas 3640, 3645 del comparador 3635 sean relativamente grandes. En dichas circunstancias, el permutador 3670 de código función del tiempo generalmente realizará relativamente menos permutaciones. En algunos casos, la magnitud aceptable de diferencia entre las amplitudes en las entradas 3640, 3645 del comparador 3635 puede alcanzarse después de más o menos permutaciones de las generalmente requeridas. Por ejemplo, el permutador de código función del tiempo 3670 puede, por casualidad, generar un código función del tiempo candidato después de muy pocas permutaciones que satisfagan incluso un nivel de umbral muy estricto. En algunas puestas en práctica, el rigor del umbral puede ser sintonizable, por ejemplo, por un usuario, para operar en diferentes contextos. In some implementations, the time code permutator 3670 may also include a comparator that compares the feedback provided by the outputs 3660 to a threshold level that incorporates an acceptable amount of difference between the amplitudes at the inputs 3640, 3645 of the comparator 3635. Time function code permutator 3670 may permute the candidate code based on time until the acceptable amount of difference is reached. In other words, in implementations where fidelity is very important, the threshold level may be stricter and set to require that the difference between the amplitudes at the inputs 3640, 3645 of the comparator 3635 be relatively small or null. In such circumstances, the time code permuter 3670 will generally perform relatively more permutations. In implementations where fidelity is less important and factors such as speed are more important, the threshold level may be less stringent and set to allow the difference between the amplitudes at inputs 3640, 3645 of comparator 3635 are relatively large. In such circumstances, the time-code permutator 3670 will generally perform relatively fewer permutations. In some cases, the acceptable magnitude of difference between the amplitudes at the inputs 3640, 3645 of the comparator 3635 can be reached after more or fewer permutations than are generally required. For example, the time-based code permuter 3670 may, by chance, generate a candidate time-based code after very few permutations that satisfy even a very strict threshold level. In some implementations, the threshold stringency may be tunable, for example, by a user, to operate in different contexts.

En respuesta a la retroalimentación de las salidas 3660 que alcanzan o cruzan el nivel de umbral, el permutador de código función del tiempo 3670 puede emitir una señal de selección 3685 sobre una salida 3690. La señal de selección 3685 es una indicación de que la diferencia entre las amplitudes en las entradas 3640, 3645 del comparador 3635 ha alcanzado un nivel aceptablemente pequeño. La señal de selección 3685 se puede configurar para efectuar el cierre de un interruptor 3690, conectando así la salida 3215 con el código 3675. Lo que antecede transmite el código función del tiempo candidato 3675 a la salida 3215 para su salida al sistema o medio de soporte 140 en la señal 135.In response to feedback from outputs 3660 that reach or cross the threshold level, time-function code permutator 3670 may output a select signal 3685 on an output 3690. Select signal 3685 is an indication that the difference Between the amplitudes at the inputs 3640, 3645 of the comparator 3635 has reached an acceptably small level. Selection signal 3685 can be configured to close a 3690 breaker, thus connecting output 3215 to code 3675. The foregoing transmits candidate time function code 3675 to output 3215 for output to the system or media. stand 140 at sign 135.

La Figura 37 es una representación esquemática de un decodificador expansor 3205, es decir, un decodificador expansor multicanal 3700. El decodificador 3700 es un componente que decodifica información en una señal que incluye una serie sincronizada de eventos en una señal de código función del tiempo en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. El decodificador 3700 puede así decodificar una señal tal como la señal 2365 (Figura 30) en un conjunto de señales 135. El decodificador 3700 se puede utilizar de forma aislada o junto con otros dispositivos. Por ejemplo, el descodificador 3700 se puede utilizar como expansor de ponderación 37 y descodificador de amplitud 39 (Figura 1A).Figure 37 is a schematic representation of a 3205 expander decoder, that is, a 3700 multi-channel expander decoder. The 3700 decoder is a component that decodes information in a signal that includes a synchronized series of events in a time-dependent code signal in where the information is encoded by the synchronization of the occurrence of events within time intervals. Decoder 3700 can thus decode a signal such as signal 2365 (Figure 30) into a set of signals 135. Decoder 3700 can be used in isolation or in conjunction with other devices. For example, decoder 3700 can be used as a weight expander 37 and an amplitude decoder 39 (Figure 1A).

El decodificador 3700 incluye un conjunto de dispositivos de ponderación 3310, un conjunto de escáner de serie temporal 3315, una entrada 3710 y un conjunto de una o más salidas 3715. Cada dispositivo de ponderación 3310 está emparejado con un escáner de serie temporal correspondiente 3315. Estos pares pueden formar un conjunto de canales de decodificación 3717 en el decodificador 3700. El decodificador 3700 es, por tanto, una combinación en paralelo de múltiples canales de decodificación 3717, cada uno de los cuales forma un decodificador expansor 3205 separado.Decoder 3700 includes a set of weighting devices 3310, a time series scanner set 3315, an input 3710, and a set of one or more outputs 3715. Each weighting device 3310 is paired with a corresponding time series scanner 3315. These pairs can form a set of decoding channels 3717 in decoder 3700. Decoder 3700 is thus a parallel combination of multiple decoding channels 3717, each of which forms a separate expander decoder 3205.

En el decodificador 3700, cada dispositivo de ponderación 3310 puede ponderar eventos utilizando un conjunto asociado de convertidores binario a analógico 2305 y un conjunto asociado de ponderaciones 3445. En algunas puestas en práctica, al menos algunos de los convertidores binario a analógico 2305, al menos algunos de los pesos de ponderación 3445 de diferentes dispositivos de ponderación 3310, o ambos, serán diferentes. Por ejemplo, en puestas en práctica donde el conjunto de convertidores binario a analógico 2305 es un conjunto completo de convertidores binario a analógico 2305 construido utilizando un proceso tal como el proceso 3900 (Figura 39), los mismos convertidores binario a analógico 2305 se pueden incluir en todos los dispositivos de ponderación 3310 en el decodificador expansor multicanal 3700. Sin embargo, al menos algunos de los pesos de ponderación 3445 de diferentes dispositivos de ponderación 3310 serán diferentes. Por ejemplo, en algunas puestas en práctica, muchos pesos de ponderación 3445 de diferentes dispositivos de ponderación 3310 serán cero o cercanos a cero, pero algunos pesos de ponderación 3445 no lo serán. Como consecuencia de estas diferencias, cuando se introduce la misma serie sincronizada de eventos en diferentes dispositivos de ponderación 3310, cada dispositivo de ponderación 3310 generará por lo general, diferentes series netas de eventos de amplitud. Sin embargo, este no es necesariamente el caso, ya que la casualidad puede dar como resultado que diferentes dispositivos de ponderación 3310 proporcionen la misma serie neta de eventos de amplitud a pesar de diferentes convertidores binario a analógico 2305 y pesos de ponderación 3445.In decoder 3700, each weighting device 3310 can weight events using an associated set of binary-to-analog converters 2305 and an associated set of weights 3445. In some implementations, at least some of the binary-to-analog converters 2305, at least some of the weighting weights 3445 of different weighting devices 3310, or both, will be different. For example, in implementations where the 2305 binary-to-analog converter set is a complete 2305 binary-to-analog converter set constructed using a process such as the 3900 process (Figure 39), the same 2305 binary-to-analog converters can be included. in all weighting devices 3310 in the multi-channel expander decoder 3700. However, at least some of the weighting weights 3445 of different weighting devices 3310 will be different. For example, in some implementations, many 3445 weight weights from different 3310 weight devices will be zero or close to zero, but some 3445 weight weights will not. As a consequence of these differences, when the same synchronized series of events is input to different weighting devices 3310, each weighting device 3310 will generally generate different net series of amplitude events. However, this is not necessarily the case, as chance can result in different 3310 weighting devices providing the same net series of amplitude events despite different 2305 binary-to-analog converters and 3445 weighting weights.

En el decodificador 3700, cada escáner de serie temporal 3315 puede escanear una señal de código función del tiempo utilizando diferentes componentes. Por ejemplo, cada escáner de serie temporal 3315 puede incluir un convertidor binario a analógico de referencia diferente 2305. Por ejemplo, el convertidor de referencia binario a analógico 2305 en cada escáner de serie temporal 3315 puede ser idéntico al convertidor binario a analógico 2305 de un canal 2340 de un codificador compresor 2205 (Figura 23).In the 3700 decoder, each 3315 time series scanner can scan a time code signal using different components. For example, each 3315 time series scanner may include a different reference binary-to-analog converter 2305. For example, the 2305 binary-to-analog reference converter in each 3315 time series scanner may be identical to the 2305 binary-to-analog converter of a Channel 2340 of a 2205 Compressor Encoder (Figure 23).

Como consecuencia de los diferentes componentes en diferentes escáneres de serie temporal 3315, diferentes escáneres de serie temporal 3315 por lo general generan diferentes series temporales incluso en respuesta a la misma serie neta de eventos de amplitud que se reciben en las entradas 3345. Además, las diferencias entre distintos escáneres de serie temporal 3315 proporcionarán diferentes series temporales incluso en los casos en que, debido a las circunstancias, la misma serie temporal sea generada por diferentes escáneres de serie temporal 3315. Además, diferentes escáneres de serie temporal 3315 pueden proporcionar de manera ocasional la misma serie temporal en respuesta a distintas series netas de eventos de amplitud que se reciben en las entradas 3345.As a consequence of the different components in different 3315 time series scanners, different 3315 time series scanners generally generate different time series even in response to the same net series of amplitude events that are received on the 3345 inputs. Differences between different 3315 time series scanners will provide different time series even in cases where, due to circumstances, the same time series is generated by different 3315 time series scanners. In addition, different 3315 time series scanners can provide different Occasionally the same time series in response to different net series of amplitude events received at inputs 3345.

La entrada 3710 del decodificador 3700 recibe una señal 2365. La señal 2365 incluye una serie sincronizada de eventos. La entrada 3700 distribuye la señal 2365 a las entradas 3210 de los dispositivos de ponderación 3310. La misma señal única 2365 se introduce así en diferentes dispositivos de ponderación 3310 en el conjunto. The input 3710 of the decoder 3700 receives a signal 2365. The signal 2365 includes a synchronized series of events. Input 3700 distributes signal 2365 to inputs 3210 of weighting devices 3310. The same single signal 2365 is thus input to different weighting devices 3310 in the array.

Las una o más salidas 3215 de cada escáner de serie temporal 3315 generan una señal de código función del tiempo 3725 en donde la información se codifica por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo. Cada señal 3725 transmite un código función del tiempo a una salida respectiva 3715 del decodificador 3700. Una o más salidas 3715 proporcionan señales de código función del tiempo 135 en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo para, p. ej., un sistema o medio de soporte 140.The one or more outputs 3215 of each time series scanner 3315 generate a time-function code signal 3725 wherein the information is encoded by timing the occurrence of events within time intervals. Each signal 3725 transmits a time-function code to a respective output 3715 of the 3700 decoder. One or more outputs 3715 provide time-function code signals 135 where the information is encoded by timing the occurrence of events within time intervals. to P. eg, a support system or means 140.

La Figura 38 es una representación esquemática de una puesta en práctica de un sistema en donde se puede codificar y decodificar información, a saber, un sistema 3800. El sistema 3800 incluye el sistema 2200 (Figura 22) y el sistema 3200 (Figura 32). El sistema 3800 puede ser, por ejemplo, un sistema de almacenamiento de datos, un sistema de comunicaciones y/o un sistema de compresión de datos. El sistema 3800 se puede utilizar de forma aislada o junto con otros dispositivos. Por ejemplo, el sistema 3800 se puede utilizar como codificador función del tiempo 25, componente de ponderación de la amplitud 27, compresor 29, expansor de ponderación 37, decodificador de amplitud 39 y decodificador función del tiempo 41 (Figura 1A).Figure 38 is a schematic representation of one implementation of a system where information can be encoded and decoded, namely a 3800 system. The 3800 system includes the 2200 system (Figure 22) and the 3200 system (Figure 32). . System 3800 can be, for example, a data storage system, a communication system, and / or a data compression system. The 3800 system can be used in isolation or in conjunction with other devices. For example, the 3800 system can be used as a time function encoder 25, amplitude weighting component 27, compressor 29, weight expander 37, amplitude decoder 39, and time function decoder 41 (Figure 1A).

En el sistema 3800, el codificador temporal multicanal 1105 recibe la señal 125 y proporciona un conjunto de señales de código función del tiempo en las salidas 1115. Las señales de código función del tiempo son recibidas por una o más entradas 2210 de codificación de compresión, que comprime las señales de código función del tiempo recibidas y proporciona una señal comprimida 2220 en la salida 2215 al sistema o medio de soporte 140. El decodificador expansor 3205 recibe la señal 2365 desde el sistema o medio de soporte 140 en la entrada 3210. El decodificador expansor 3205 expande la señal 2365 y proporciona un conjunto de una o más señales en donde la información es codificada por la sincronización de la ocurrencia de eventos dentro de intervalos de tiempo en una o más salidas 3215 al decodificador multicanal 2100. El decodificador multicanal 2100 recibe las señales y las decodifica y las agrega en la señal de salida 1230 que expresa información en un conjunto finito ordenado de dígitos discretos.In the 3800 system, the multichannel time encoder 1105 receives the signal 125 and provides a set of time-code signals at the outputs 1115. The time-code signals are received by one or more compression encoding inputs 2210, which compresses the received time-code signals and provides a compressed signal 2220 at the output 2215 to the support system or means 140. The expander decoder 3205 receives the signal 2365 from the support system or means 140 at the input 3210. The expander decoder 3205 expands signal 2365 and provides a set of one or more signals wherein the information is encoded by synchronizing the occurrence of events within time slots on one or more outputs 3215 to the multi-channel decoder 2100. The multi-channel decoder 2100 receives the signals and decodes them and adds them to the output signal 1230 which expresses information in a finite ordered set of digits. discreet coughs.

La Figura 39 es un diagrama de flujo de un proceso 3900 para construir un conjunto de convertidores binarios a analógicos. Por ejemplo, el proceso 3900 se puede utilizar para construir convertidores de binario a analógico 2305 en un dispositivo de ponderación 3310 (Figura 34). A modo de otro ejemplo, el proceso 3900 se puede utilizar para construir convertidores binario a analógico en un codificador compresor 2205 (Figura 23). A modo de otro ejemplo, el proceso 3900 se puede utilizar para construir convertidores binario a analógico de referencia en el escáner de serie temporal 3315 (Figura 26). El proceso 3900 se puede realizar de forma aislada o junto con otras actividades. Por ejemplo, el proceso 3900 puede ser parte de un proceso 4100 (Figura 41) para crear un par de codificador/descodificador. El proceso 3900 puede realizarse mediante uno o más dispositivos de procesamiento de datos.Figure 39 is a flow diagram of a process 3900 for building a set of binary to analog converters. For example, the 3900 process can be used to build 2305 binary-to-analog converters on a 3310 weighting device (Figure 34). As another example, process 3900 can be used to build binary-to-analog converters in a 2205 compressor encoder (Figure 23). As another example, process 3900 can be used to build reference binary-to-analog converters in time series scanner 3315 (Figure 26). The 3900 process can be done in isolation or in conjunction with other activities. For example, process 3900 can be part of a process 4100 (Figure 41) to create an encoder / decoder pair. Process 3900 can be performed by one or more data processing devices.

Tal como se describió con anterioridad, un conjunto de convertidores binarios a analógicos puede utilizar múltiples parámetros función del tiempo para generar pesos de ponderación individuales para eventos individuales en una serie temporal de eventos en función de la sincronización de ocurrencia entre eventos en una señal de entrada. En algunas puestas en práctica, las ponderaciones se pueden generar basándose en la sincronización de eventos predecesores dentro de la señal de entrada. En la etapa 3905 se asigna un margen de valores posibles para cada parámetro función del tiempo. Por ejemplo, los parámetros función del tiempo se pueden restringir para que estén dentro del mismo margen normalizado, por ejemplo, entre cero y uno.As previously described, a set of binary-to-analog converters can use multiple parameters as a function of time to generate individual weighting weights for individual events in a time series of events as a function of the timing of occurrence between events in an input signal. . In some implementations, the weights can be generated based on the timing of predecessor events within the input signal. At step 3905, a range of possible values is assigned for each time-function parameter. For example, time-function parameters can be constrained to be within the same normalized range, for example, between zero and one.

Se pueden identificar varios valores discretos dentro de cada margen (etapa 3910). En algunas puestas en práctica, los valores discretos se pueden distribuir dentro de cada margen de modo que todos estén separados de su vecino más próximo por una sola distancia. Por ejemplo, para un parámetro función del tiempo al que se le ha asignado un margen entre cero y uno, se pueden identificar cinco valores separados de cero, 0.25, 0.5, 0.75 y uno. En algunas puestas en práctica, los valores discretos no se distribuyen de manera uniforme dentro de cada margen, sino que se distribuyen de conformidad con su uso en los convertidores de binario a analógico. Por ejemplo, los valores de un parámetro función del tiempo que aparece en una función no lineal se pueden distribuir de conformidad con la posición del parámetro función del tiempo en la función no lineal. En algunas puestas en práctica, el número de valores discretos dentro de cada margen puede seleccionarse para que sea aproximadamente igual o mayor que el número de pares del dispositivo de ponderación 3310 y del escáner de serie temporal 3315 dentro de un decodificador expansor multicanal 3700 (Figura 37).Several discrete values can be identified within each range (step 3910). In some implementations, the discrete values can be distributed within each range so that they are all separated from their nearest neighbor by a single distance. For example, for a time-function parameter assigned a margin between zero and one, five separate values of zero, 0.25, 0.5, 0.75, and one can be identified. In some implementations, the discrete values are not distributed evenly within each range, but rather are distributed according to their use in binary-to-analog converters. For example, the values of a time-dependent parameter appearing in a non-linear function can be distributed according to the position of the time-function parameter in the non-linear function. In some implementations, the number of discrete values within each range can be selected to be approximately equal to or greater than the number of pairs of the 3310 weighting device and 3315 time series scanner within a 3700 multichannel expander decoder (Figure 37).

Se selecciona uno de los valores discretos identificados para cada parámetro utilizado por un convertidor binario a analógico (etapa 3915). Los valores se pueden seleccionar mediante un proceso aleatorio o no aleatorio. En algunas puestas en práctica, un valor seleccionado de un parámetro dado puede excluirse de ser seleccionado de nuevo para ese parámetro. A tal efecto, esto requeriría que los convertidores binario a analógico construidos tuvieran valores diferentes de cada parámetro. En estas puestas en práctica, si existen N valores discretos dentro de cada margen de Y parámetros diferentes, se puede seleccionar un número (N*Y) posibles combinaciones de valores.One of the identified discrete values is selected for each parameter used by a binary-to-analog converter (step 3915). The values can be selected by a random or non-random process. In some implementations, a selected value of a given parameter may be excluded from being selected again for that parameter. To this end, this would require that the built-in binary-to-analog converters have different values for each parameter. In these implementations, if there are N discrete values within each range of Y different parameters, a number (N * Y) possible combinations of values can be selected.

En algunas puestas en práctica, el mismo valor se puede seleccionar varias veces para múltiples convertidores de binario a analógico. Por ejemplo, los convertidores de binario a analógico se pueden construir utilizando un conjunto combinatorio exhaustivo de los valores identificados. Por ejemplo, si hay N valores discretos dentro de cada margen de Y parámetros diferentes, se puede seleccionar un número (NY) de posibles combinaciones de valores. In some implementations, the same value can be selected multiple times for multiple binary-to-analog converters. For example, binary-to-analog converters can be constructed using a comprehensive combinatorial set of the identified values. For example, if there are N discrete values within each range of Y different parameters, a number (NY) of possible combinations of values can be selected.

En algunas puestas en práctica, el mismo valor se puede seleccionar varias veces para múltiples convertidores de binario a analógico, pero el conjunto combinatorio de los valores identificados no necesita ser exhaustivo. Por ejemplo, si hay N valores discretos dentro de cada margen de Y parámetros diferentes, se puede seleccionar un número mayor que (NY) pero menor que (NY) posibles combinaciones de valores.In some implementations, the same value can be selected multiple times for multiple binary-to-analog converters, but the combinatorial set of identified values need not be exhaustive. For example, if there are N discrete values within each range of Y different parameters, a number greater than (NY) but less than (NY) possible combinations of values can be selected.

Se puede construir un convertidor binario a analógico utilizando los valores seleccionados (etapa 3920). Se puede realizar una verificación para determinar si se ha construido el número deseado de convertidores binario a analógico (etapa 3930). En algunas puestas en práctica, el número deseado de convertidores binario a analógico será lo suficientemente grande como para que, para una sola serie temporal de eventos de entrada, casi cualquier serie temporal ponderada posible para un conjunto dado de parámetros y sus márgenes se pueda generar por alguna superposición lineal de una o más salidas de los convertidores binario a analógico en el conjunto. Si aún no se ha construido el número deseado de convertidores binario a analógico, el proceso retorna para seleccionar valores de parámetros adicionales y construir un convertidor binario a analógico adicional (etapas 3915, 3920). Si se ha construido el número deseado de convertidores binario a analógico, se puede ensamblar un dispositivo utilizando los convertidores binario a analógico construidos (etapa 3935).A binary-to-analog converter can be constructed using the selected values (step 3920). A check can be performed to determine if the desired number of binary-to-analog converters have been built (step 3930). In some implementations, the desired number of binary-to-analog converters will be large enough that, for a single time series of input events, almost any weighted time series possible for a given set of parameters and their margins can be generated. by some linear superposition of one or more outputs of the binary-to-analog converters in the set. If the desired number of binary-to-analog converters have not yet been built, the process returns to select additional parameter values and build an additional binary-to-analog converter (steps 3915, 3920). If the desired number of binary-to-analog converters have been built, a device can be assembled using the built-in binary-to-analog converters (step 3935).

La Figura 40 es un diagrama de flujo de un proceso 4000 para calibrar un dispositivo de ponderación. Por ejemplo, el proceso 4000 puede utilizarse para calibrar dispositivos de ponderación tales como el dispositivo de ponderación 3310 (Figura 34). El proceso 4000 se puede utilizar de forma aislada o junto con otras actividades. Por ejemplo, el proceso 4000 puede ser parte de un proceso 4100 (Figura 41) para crear un par de codificador/descodificador. El proceso 4000 puede realizarse, por ejemplo, mediante uno o más dispositivos de procesamiento de datos digitales.Figure 40 is a flow chart of a process 4000 for calibrating a weighting device. For example, process 4000 can be used to calibrate weighting devices such as weighting device 3310 (Figure 34). Process 4000 can be used in isolation or in conjunction with other activities. For example, process 4000 can be part of process 4100 (Figure 41) to create an encoder / decoder pair. Process 4000 can be performed, for example, by one or more digital data processing devices.

Se pueden introducir una o más señales de código función del tiempo conocidas en los canales de un codificador multicanal (etapa 4005). Por ejemplo, el sistema puede introducir una o más señales de código función del tiempo conocidas 135 (Figura 3) en las entradas 2315 del codificador compresor 2205 (Figura 23). En algunas puestas en práctica, la misma señal de código función del tiempo 135 se puede introducir en todos los canales.One or more known time-code signals can be input into the channels of a multichannel encoder (step 4005). For example, the system may input one or more known time-function code signals 135 (Figure 3) into inputs 2315 of compressor encoder 2205 (Figure 23). In some implementations, the same time function code signal 135 may be input to all channels.

Puede identificarse la señal de salida del codificador multicanal, así como la serie temporal ponderada en amplitud para cada canal en el codificador multicanal (etapa 4010). En algunas puestas en práctica, el sistema puede almacenar una descripción de la serie temporal ponderada en amplitud y la salida del codificador multicanal. Por ejemplo, en algunas puestas en práctica, el sistema puede almacenar la señal de salida del codificador multicanal en un dispositivo de almacenamiento de datos 3100 (Figura 31).The output signal of the multichannel encoder can be identified, as well as the amplitude-weighted time series for each channel in the multichannel encoder (step 4010). In some implementations, the system may store an amplitude-weighted time series description and the output of the multichannel encoder. For example, in some implementations, the system may store the output signal of the multichannel encoder in a data storage device 3100 (Figure 31).

La señal de salida del codificador multicanal se proporciona como una entrada a un decodificador expansor multicanal no calibrado (etapa 4015). El decodificador multicanal no está calibrado porque no ha sido calibrado para funcionar junto con el codificador multicanal que generó la señal de salida particular (es decir, el codificador multicanal desde el que se recibe la señal de salida en la etapa 4010).The output signal from the multichannel encoder is provided as an input to an uncalibrated multichannel expander decoder (step 4015). The multichannel decoder is not calibrated because it has not been calibrated to work in conjunction with the multichannel encoder that generated the particular output signal (ie, the multichannel encoder from which the output signal is received in step 4010).

La serie neta de eventos de amplitud para cada canal del decodificador expansor multicanal se identifica y se compara con la serie temporal ponderada en amplitud de un canal correspondiente (etapa 4020). En algunas puestas en práctica, dichas comparaciones pueden incluir medir las amplitudes de los eventos, pero descartando la sincronización de los eventos tanto para la serie neta de eventos de amplitud como para la serie temporal ponderada en amplitud para un canal dado. Por ejemplo, en algunas puestas en práctica, el sistema puede formar una lista secuencial de las amplitudes de los eventos en la serie temporal ponderada en amplitud y una lista secuencial de las amplitudes de los eventos en la serie neta de eventos de amplitud. Estas listas no describen la sincronización de los eventos ni en la serie temporal ponderada en amplitud ni en la serie neta de eventos de amplitud. Sin embargo, las amplitudes de la lista se pueden comparar para determinar las diferencias. En general, los resultados de la comparación se expresan sobre una base de canal por canal. Sin embargo, en algunas puestas en práctica, los resultados de la comparación se pueden expresar en un valor que incorpora la comparación de múltiples canales.The net series of amplitude events for each channel of the multichannel expander decoder is identified and compared to the amplitude-weighted time series of a corresponding channel (step 4020). In some implementations, such comparisons may include measuring the amplitudes of the events, but disregarding the timing of the events for both the net amplitude event series and the amplitude-weighted time series for a given channel. For example, in some implementations, the system may form a sequential list of the amplitudes of the events in the amplitude-weighted time series and a sequential list of the amplitudes of the events in the net series of amplitude events. These lists do not describe the timing of events in either the amplitude-weighted time series or the net amplitude event series. However, the amplitudes in the list can be compared to determine the differences. In general, the results of the comparison are expressed on a channel-by-channel basis. However, in some implementations, the comparison results may be expressed in a value that incorporates the multi-channel comparison.

En algunas puestas en práctica, la serie neta de eventos de amplitud se compara con el resultado de una operación matemática o de otro tipo realizada en la serie temporal ponderada en amplitud de un canal correspondiente. Por ejemplo, si se va a calibrar un dispositivo de ponderación para multiplicar un canal en particular por dos, la serie temporal ponderada en amplitud de ese canal se puede multiplicar primero por dos y el resultado de esa multiplicación se puede comparar con la serie neta de eventos de amplitud. Los pesos de ponderación se pueden utilizar entonces para realizar las operaciones matemáticas o de otro tipo. Por ejemplo, se pueden seleccionar pesos de ponderación para realizar una o más operaciones de compresión y cifrado de datos, operaciones de procesamiento de texto, operaciones de procesamiento numérico, operaciones de procesamiento de imágenes y operaciones de procesamiento de señales. En algunas puestas en práctica, diferentes canales en un solo dispositivo pueden utilizar pesos de ponderación que realizan diferentes operaciones.In some implementations, the net series of amplitude events is compared to the result of a mathematical or other operation performed on the amplitude-weighted time series of a corresponding channel. For example, if a weighting device is to be calibrated to multiply a particular channel by two, the amplitude-weighted time series for that channel can first be multiplied by two and the result of that multiplication can be compared to the net series of amplitude events. The weighting weights can then be used to perform mathematical or other operations. For example, weighting weights can be selected to perform one or more data compression and encryption operations, word processing operations, numerical processing operations, image processing operations, and signal processing operations. In some implementations, different channels in a single device may use weighting weights that perform different operations.

Se realiza una determinación de si las diferencias entre la serie neta de eventos de amplitud y la serie temporal ponderada en amplitud de los canales correspondientes son suficientemente pequeñas (etapa 4025). Por ejemplo, en algunas puestas en práctica, el sistema que realiza el proceso 4000 puede comparar las diferencias con un umbral que incorpora un nivel aceptable de diferencias sobre una base de canal por canal. En algunas puestas en práctica, el rigor del umbral puede ser sintonizable, por ejemplo, por un usuario, para operar en diferentes contextos.A determination is made as to whether the differences between the net amplitude event series and the amplitude-weighted time series of the corresponding channels are small enough (step 4025). For example, in some implementations, the system performing process 4000 may compare the differences to a threshold incorporating an acceptable level of differences on a channel-by-channel basis. In some implementations, the threshold stringency may be tunable, for example, by a user, to operate in different contexts.

En respuesta a la determinación de que las diferencias entre la serie neta de eventos de amplitud y la serie temporal ponderada en amplitud de los canales correspondientes no son suficientemente pequeñas, se ajustan los pesos de los dispositivos de ponderación (etapa 4030). En algunas puestas en práctica, las ponderaciones se ajustan sobre una base de canal por canal. Por ejemplo, el sistema puede identificar los pesos de la serie sincronizada ponderada de eventos emitidos por convertidores binario a analógico 320 individuales que se asemejan más a la serie temporal ponderada en amplitud. Los pesos de ponderación 345 que están asociados con esas series sincronizadas ponderadas de eventos pueden aumentarse. A modo de otro ejemplo, el sistema puede identificar los pesos de la serie sincronizada ponderada de eventos emitidos por convertidores binario a analógico 320 individuales que se diferencian más de la serie temporal ponderada en amplitud. Los pesos de ponderación 345 que están asociados con esas series sincronizadas ponderadas de eventos se pueden disminuir.In response to the determination that the differences between the net amplitude event series and the amplitude-weighted time series of the corresponding channels are not small enough, the weights of the weighting devices are adjusted (step 4030). In some implementations, the weights are adjusted on a channel-by-channel basis. For example, the system may identify the weights of the weighted synchronized series of events emitted by individual binary-to-analog converters 320 that most closely resemble the amplitude-weighted time series. The weighting weights 345 that are associated with those weighted synchronized series of events can be increased. By way of another example, the system may identify the weights of the weighted clock series of events emitted by individual binary-to-analog converters 320 that differ further from the amplitude-weighted time series. The weighting weights 345 that are associated with those weighted synchronized series of events can be decreased.

En algunas puestas en práctica, la entrada de la señal de salida desde el codificador multicanal al decodificador multicanal se puede repetir después de ajustes incrementales en los pesos de ponderación. Los resultados de las comparaciones entre sucesivas series netas de eventos de amplitud con las series temporales ponderadas en amplitud de un canal correspondiente pueden tomarse como una indicación de si los ajustes incrementales han sido apropiados. Dicho de otro modo, si la serie neta de eventos de amplitud se parece más a la serie temporal ponderada en amplitud para un canal dado, los ajustes a ese canal pueden tomarse como favorables y realizar ajustes adicionales. Por ejemplo, los pesos de ponderación se pueden aumentar o disminuir de manera adicional según pueda ser el caso. In some implementations, the input of the output signal from the multichannel encoder to the multichannel decoder may be repeated after incremental adjustments in the weighting weights. The results of comparisons between successive net series of amplitude events with the amplitude-weighted time series of a corresponding channel can be taken as an indication of whether the incremental adjustments have been appropriate. In other words, if the net series of amplitude events more closely resembles the amplitude-weighted time series for a given channel, adjustments to that channel can be viewed as favorable and further adjustments made. For example, the weighting weights can be further increased or decreased as the case may be.

Por otro lado, si las diferencias entre la serie neta de eventos de amplitud y la serie temporal ponderada en amplitud aumentan, los ajustes a un canal pueden tomarse como desfavorables y las ponderaciones pueden volver a sus valores anteriores o cambiarse en un sentido diferente. Por ejemplo, los pesos de ponderación que se aumentaron inicialmente se pueden disminuir y los pesos que se disminuyeron inicialmente se pueden aumentar.On the other hand, if the differences between the net series of events of amplitude and the time series weighted in amplitude increase, the adjustments to a channel can be taken as unfavorable and the weights can be returned to their previous values or changed in a different sense. For example, the weight weights that were initially increased can be decreased and the weights that were initially decreased can be increased.

Se seleccionan una o más señales de código función del tiempo nuevas (etapa 4035) en respuesta a la determinación de que las diferencias entre la serie neta de eventos de amplitud y la serie temporal ponderada en amplitud de los canales correspondientes no son suficientemente pequeñas. En algunas puestas en práctica, las nuevas señales de código función del tiempo pueden seleccionarse de conformidad con las diferencias entre las nuevas señales de código función del tiempo y las antiguas señales de código función del tiempo. Por ejemplo, se pueden seleccionar de manera preferente nuevas señales de código función del tiempo que difieren en gran medida del código función del tiempo anterior. En otras puestas en práctica, las nuevas señales de código función del tiempo se pueden seleccionar de forma aleatoria. El proceso puede continuar e introducir uno o más códigos nuevos función del tiempo en los canales del codificador multicanal (etapa 4005).One or more new time-code signals are selected (step 4035) in response to determining that the differences between the net series of amplitude events and the amplitude-weighted time series of the corresponding channels are not small enough. In some implementations, the new time-based code signals may be selected in accordance with the differences between the new time-based code signals and the old time-based code signals. For example, new time-based code signals that differ greatly from the previous time-based code can be preferably selected. In other implementations, the new time-based code signals may be randomly selected. The process may continue and enter one or more new time-function codes into the channels of the multichannel encoder (step 4005).

En respuesta a la determinación de que las diferencias entre la serie neta de eventos de amplitud y la serie temporal ponderada en amplitud de los canales correspondientes son suficientemente pequeñas, se pueden fijar los pesos del dispositivo de ponderación (etapa 4040). Después de fijar los pesos, el decodificador multicanal se calibra para funcionar junto con el codificador multicanal que generó la señal de salida particular (es decir, el codificador multicanal desde el que se recibe la señal de salida en la etapa 4010).In response to the determination that the differences between the net amplitude event series and the amplitude-weighted time series of the corresponding channels are sufficiently small, the weights of the weighting device can be set (step 4040). After setting the weights, the multichannel decoder is calibrated to work in conjunction with the multichannel encoder that generated the particular output signal (ie, the multichannel encoder from which the output signal is received in step 4010).

La Figura 41 es un diagrama de flujo de un proceso 4100 para crear un par de codificador/descodificador. El proceso 4100 se puede utilizar de forma aislada o junto con otras actividades. Por ejemplo, el proceso 4100 puede incluir uno o más de entre el proceso 3900 (Figura 39) y el proceso 4000 (Figura 40). El proceso 4100 puede realizarse mediante uno o más dispositivos de procesamiento de datos digitales.Figure 41 is a flow diagram of a process 4100 for creating an encoder / decoder pair. The 4100 process can be used in isolation or in conjunction with other activities. For example, process 4100 may include one or more of process 3900 (Figure 39) and process 4000 (Figure 40). The 4100 process can be performed by one or more digital data processing devices.

El proceso 4100 comienza construyendo un conjunto de convertidores binarios a analógicos (etapa 4105). Los convertidores de binario a analógico se pueden construir en hardware, en software o en combinaciones de hardware y software. La construcción de los convertidores de binario a analógico puede incluir un proceso como el proceso 3900 (Figura 39).Process 4100 begins by building a set of binary-to-analog converters (step 4105). Binary-to-analog converters can be built in hardware, in software, or in combinations of hardware and software. Building binary-to-analog converters can include a process such as process 3900 (Figure 39).

Se realiza el ensamblaje de un codificador que utiliza los convertidores binario a analógico (etapa 4110). En algunas puestas en práctica, cada canal del codificador ensamblado puede incluir uno diferente de los convertidores binario a analógico.The assembly of an encoder using the binary-to-analog converters is performed (step 4110). In some implementations, each channel of the assembled encoder may include a different one of the binary-to-analog converters.

Se ensambla un conjunto de escáneres de serie temporal utilizando los mismos convertidores binario a analógico (etapa 4115). En algunas puestas en práctica, cada escáner de serie temporal puede incluir uno de los convertidores de binario a analógico que aparece en un canal del codificador. Los convertidores de binario a analógico de los escáneres de serie temporal pueden actuar como convertidores de binario a analógico de referencia. La correspondencia entre los convertidores binario a analógico en los canales del codificador y el convertidor binario a analógico en cada escáner de serie temporal se puede anotar y utilizar, por ejemplo, para calibrar los pesos de los dispositivos de ponderación. A set of time series scanners is assembled using the same binary-to-analog converters (step 4115). In some implementations, each time series scanner may include one of the binary-to-analog converters that appear on one channel of the encoder. Time series scanners binary-to-analog converters can act as reference binary-to-analog converters. The correspondence between the binary-to-analog converters on the encoder channels and the binary-to-analog converter in each time series scanner can be noted and used, for example, to calibrate the weights of the weighting devices.

Se realiza el ensamblaje de un conjunto de dispositivos de ponderación utilizando el conjunto de convertidores binario a analógico (etapa 4120). En algunas puestas en práctica, los mismos convertidores binario a analógico que se utilizan para ensamblar el codificador y el conjunto de escáneres de series temporales se utilizan para ensamblar el conjunto de dispositivos de ponderación. En otras puestas en práctica, se utilizan convertidores binario a analógico completamente diferentes para ensamblar el conjunto de dispositivos de ponderación. En otras puestas en práctica, se utilizan combinaciones del mismo y diferentes convertidores binario a analógico para ensamblar el conjunto de dispositivos de ponderación.The assembly of a set of weighting devices is performed using the set of binary-to-analog converters (step 4120). In some implementations, the same binary-to-analog converters that are used to assemble the encoder and the set of time series scanners are used to assemble the set of weighting devices. In other implementations, completely different binary-to-analog converters are used to assemble the set of weighting devices. In other implementations, combinations of the same and different binary-to-analog converters are used to assemble the set of weighting devices.

En algunas puestas en práctica, los convertidores binario a analógico pueden aparecer (al menos inicialmente) en cada dispositivo de ponderación. Por ejemplo, en algunas puestas en práctica, el conjunto completo de convertidores binario a analógico que se construye aparece en cada dispositivo de ponderación. Tal como se describe a continuación, las ponderaciones que se utilizan para ponderar la salida de un convertidor binario a analógico se pueden calibrar a cero, lo que de hecho elimina el convertidor binario a analógico del dispositivo de ponderación. En las puestas en práctica de hardware, los convertidores de binario a analógico cuya salida está ponderada a cero pueden eliminarse físicamente de un dispositivo de ponderación.In some implementations, binary-to-analog converters may appear (at least initially) in each weighting device. For example, in some implementations, the complete set of binary-to-analog converters that is built appears in each weighting device. As described below, the weights that are used to weight the output of a binary-to-analog converter can be calibrated to zero, which effectively removes the binary-to-analog converter from the weighting device. In hardware implementations, binary-to-analog converters whose output is zero-weighted can be physically removed from a weighting device.

Se calibran los pesos en los dispositivos de ponderación (etapa 4125). La calibración de los pesos en los dispositivos de ponderación puede incluir un proceso tal como el proceso 4000 (Figura 40).The weights are calibrated on the weighting devices (step 4125). Calibrating the weights on the weighting devices may include a process such as process 4000 (Figure 40).

El proceso 4100 codifica, comprime o almacena información utilizando el codificador, el conjunto de escáneres de serie temporal y el conjunto de dispositivos de ponderación (etapa 4130).Process 4100 encodes, compresses, or stores information using the encoder, set of time series scanners, and set of weighting devices (step 4130).

Las formas de realización de la materia y las operaciones descritas en esta especificación se pueden poner en práctica en circuitos electrónicos digitales, o en software, firmware o hardware de ordenador, incluyendo las estructuras descritas en esta especificación y sus equivalentes estructurales, o en combinaciones de uno o más de los mismas. The embodiments of the matter and the operations described in this specification can be practiced in digital electronic circuits, or in computer software, firmware or hardware, including the structures described in this specification and their structural equivalents, or in combinations of one or more of them.

Los aspectos de la materia descritos en esta especificación se pueden poner en práctica como uno o más programas informáticos, es decir, uno o más módulos de instrucciones de programas informáticos, codificados en un medio de almacenamiento de ordenador para su ejecución o para controlar la operación de aparatos de procesamiento de datos. Por ejemplo, las líneas y señales que transmiten información se pueden poner en práctica como variables u objetos que se pasan entre componentes de programas informáticos (por ejemplo, programas informáticos, módulos de software, subrutinas, procedimientos y funciones) para transmitir información. Los detectores, comparadores, temporizadores, interruptores y selectores se pueden poner en práctica como componentes de programas informáticos que cooperan para realizar operaciones.Aspects of matter described in this specification may be implemented as one or more computer programs, that is, one or more computer program instruction modules, encoded on a computer storage medium for execution or to control operation. of data processing apparatus. For example, lines and signals that transmit information can be implemented as variables or objects that are passed between components of computer programs (eg, computer programs, software modules, subroutines, procedures, and functions) to transmit information. Detectors, comparators, timers, switches and selectors can be implemented as components of computer programs that cooperate to perform operations.

Por ejemplo, las operaciones de codificación/compresión realizadas por el codificador-compresor 10 (Figura 1A) se pueden poner en práctica de conformidad con las siguientes instrucciones.For example, the encoding / compression operations performed by the encoder-compressor 10 (Figure 1A) can be carried out in accordance with the following instructions.

CODIFICACIÓN-COMPRESIÓNCODING-COMPRESSION

//Convertir una secuencia de números binarios en un vector de onda con dígitos binarios// Convert a sequence of binary numbers to a wave vector with binary digits

(Señal Binaria)(Binary Signal)

Función file2binary(str)File2binary (str) function

String strString str

Make/o/n=(strlen(str)) in_BinarySignalMake / o / n = (strlen (str)) in_BinarySignal

in_B inarySignal[]=str2num(str [p])in_B inarySignal [] = str2num (str [p])

EndEnd

//Convertir un solo vector de números binarios en un conjunto de ondas binarias (Bytes)// Convert a single vector of binary numbers into a set of binary waves (Bytes)

Función binary2bytes()Binary2bytes () function

NVAR numChannels = numChannelsNVAR numChannels = numChannels

WAVE in_BinarySignalWAVE in_BinarySignal

Variable/G numBits = numpnts(in_Binary_Signal)Variable / G numBits = numpnts (in_Binary_Signal)

Variable n,iVariable n, i

String in_ByteString in_Byte

//Inicializar//Initialize

numChannels=numBits/8numChannels = numBits / 8

i=0; n=l i = 0; n = l

dodo

in_Byte = "in_Byte"+num2str(n) Duplicate/o/R=[i,(i+7)] in_BinarySignal in_Byte_w Duplicate/o in_Byte_w $in_Bytein_Byte = "in_Byte" + num2str (n) Duplicate / o / R = [i, (i + 7)] in_BinarySignal in_Byte_w Duplicate / o in_Byte_w $ in_Byte

i+=8i + = 8

n+=ln + = l

While(n<numChannels+1)While (n <numChannels + 1)

EndEnd

//Convertir Bytes a nBinary// Convert Bytes to nBinary

Función bytes2nBinary()Bytes2nBinary () function

NVAR timeIntervalNVAR timeInterval

NVAR numChannels = numChannelsNVAR numChannels = numChannels

NVAR dt = dtNVAR dt = dt

Variable n,i,jVariable n, i, j

String in_ByteString in_Byte

String in_nBinaryString in_nBinary

//inicializar//initialize

dt = timelntervaldt = timelnterval

n=ln = l

dodo

//Ondas de entrada// Input waves

in_Byte = "in_Byte"+num2str(n)in_Byte = "in_Byte" + num2str (n)

Duplicate/o $in_Byte in_Byte_wDuplicate / o $ in_Byte in_Byte_w

InsertPoints 0,1, in Byte wInsertPoints 0,1, in Byte w

in_Byte_w[0]=l //add start bitin_Byte_w [0] = l // add start bit

InsertPoints 9,1, in_Byte_wInsertPoints 9.1, in_Byte_w

in_Byte_w[9]=0 //add stop bitin_Byte_w [9] = 0 // add stop bit

//Ondas de salida// Output waves

in_nBinary = "in_nBinary"+num2str(n) Make/o/n=(numpnts(in_Byte_w)*2) in_nBinary_out //Operaciónin_nBinary = "in_nBinary" + num2str (n) Make / o / n = (numpnts (in_Byte_w) * 2) in_nBinary_out // Operation

in_nBinary_out = 0in_nBinary_out = 0

i=0i = 0

j=0j = 0

dodo

if(in_Byte_w[i]==l)if (in_Byte_w [i] == l)

in:nBinary_out [j]=1in: nBinary_out [j] = 1

else; in_nBinary_out[j+l]=lelse; in_nBinary_out [j + l] = l

endifendif

i+=li + = l

j+=2j + = 2

while(i<numpnts(in_Byte_w))while (i <numpnts (in_Byte_w))

//Salida//Departure

Duplicate/o in_nBinary_out $in_nBinary Duplicate / o in_nBinary_out $ in_nBinary

SetScale/P x 0,(0.5*dt),"", $in_nBinarySetScale / P x 0, (0.5 * dt), "", $ in_nBinary

n+=ln + = l

While(n<numChannels+1)While (n <numChannels + 1)

EndEnd

//Convertir nBinario a amplitudes analógicas en tiempos binarios (aAmps_bTimes) Función nBinary2iBAC_r() // Convert nBinary to analog amplitudes in binary times (aAmps_bTimes) Function nBinary2iBAC_r ()

NVAR numChannels = numChannelsNVAR numChannels = numChannels

Variable n,i,jVariable n, i, j

Variable Ase, Use, u, D, FVariable Ase, Use, u, D, F

Variable R, EVariable R, E

Variable elapsedTimeVariable elapsedTime

String in_nBinaryString in_nBinary

String iBACString iBAC

String iBAC_rString iBAC_r

//Inicializar//Initialize

n=ln = l

DoDo

// Ondas de entrada// Input waves

in_nBinary = "in_nBinary"+num2str(n)in_nBinary = "in_nBinary" + num2str (n)

Duplicate/o $in_nBinary in_nBinary_w, iBAC_r_wDuplicate / o $ in_nBinary in_nBinary_w, iBAC_r_w

iBAC = MiBAC"+num2str(n)iBAC = MiBAC "+ num2str (n)

Duplicate/o $iBAC ibac_wDuplicate / o $ iBAC ibac_w

Make/o/n=0 EventTimesMake / o / n = 0 EventTimes

Findlevels/Q/D=EventTimes in_nBinary_w 1Findlevels / Q / D = EventTimes in_nBinary_w 1

// Ondas de salida// Output waves

iBAC_r ="IB AC_r"+num2str(n)iBAC_r = "IB AC_r" + num2str (n)

// Inicializar BACs// Initialize BACs

Ase = ibac_w[0]; Use = ibac_w[l]; D = ibac_w[2]; F = ibac_w[3]; R= 1; u=Use // OperaciónAse = ibac_w [0]; Use = ibac_w [l]; D = ibac_w [2]; F = ibac_w [3]; R = 1; u = Use // Operation

E = Ase*u*RE = Ase * u * R

iBAC_r_w[0]=EiBAC_r_w [0] = E

i=l;j=0i = l; j = 0

dodo

if(in_nBinary_w[i]==0)if (in_nBinary_w [i] == 0)

iBAC_r_w[i]=0; elseiBAC_r_w [i] = 0; else

elapsedTime = (EventTimes[j+l]/1000)-(EventTimesj]/1000) u = Use+((u*(l-Use))*exp(-elapsedTime/F))elapsedTime = (EventTimes [j + l] / 1000) - (EventTimesj] / 1000) u = Use + ((u * (l-Use)) * exp (-elapsedTime / F))

R = l+((R-R*u-l)*exp(-elapsedTime/D))R = l + ((R-R * u-l) * exp (-elapsedTime / D))

E = Ase*u*RE = Ase * u * R

iBAC_r_w[i]=EiBAC_r_w [i] = E

j+=lj + = l

endifendif

i+=li + = l

while(i<numpnts(in_nBinary_w)) while (i <numpnts (in_nBinary_w))

// Salida// Departure

wavestats/q iBAC_r_wwavestats / q iBAC_r_w

iBAC_r_w=iBAC_r_w/v_maxiBAC_r_w = iBAC_r_w / v_max

Duplicate/o iBAC r w $IBAC_rDuplicate / o iBAC r w $ IBAC_r

n+=ln + = l

While(n<numChannels+1)While (n <numChannels + 1)

EndEnd

////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////

//Integrar y comprimir las respuestas de iBAC// Integrate and compress iBAC responses

Función Compress()Compress () function

NVAR tau = tauNVAR tau = tau

NVAR IntDep = IntDepNVAR IntDep = IntDep

NVAR numChannels = numChannelsNVAR numChannels = numChannels

Variable dtVariable dt

Variable i,n,mVariable i, n, m

//Obtener dt// Get dt

in_nBinary = "in_nBinary"+num2str(l)in_nBinary = "in_nBinary" + num2str (l)

Duplicate/o $in_nBinary temp_wDuplicate / o $ in_nBinary temp_w

tempw = 0tempw = 0

dt = pnt2x(temp_w, l)-pnt2x(temp_w, 0)dt = pnt2x (temp_w, l) -pnt2x (temp_w, 0)

//Activar dispositivo analógico// Activate analog device

i=li = l

DoDo

Analoglntegration()Analoglntegration ()

i+=li + = l

While(i<numpnts(sumAmps))While (i <numpnts (sumAmps))

Wavestats/Q sumAmpsWavestats / Q sumAmps

sumAmps = sumAmps/v_maxsumAmps = sumAmps / v_max

//Onda de salida// Output wave

aEventsMessage = sumAmps*thresholdFunction()aEventsMessage = sumAmps * thresholdFunction ()

EndEnd

A modo de otro ejemplo, las operaciones de expansión/decodificación realizadas por el expansor-decodificador 34 (Figura 1A) se pueden poner en práctica de conformidad con las siguientes instrucciones.By way of another example, the expansion / decoding operations performed by the expander-decoder 34 (Figure 1A) can be performed in accordance with the following instructions.

EXPANDIR Y DECODIFICAREXPAND AND DECODE

//Convertir eventos de tiempo en amplitudes analógicas// Convert time events to analog amplitudes

Función aEventMessage2oBAC_r()AEventMessage2oBAC_r () function

NVAR numChannels = numChannelsNVAR numChannels = numChannels

NVAR num_oBACsNVAR num_oBACs

Variable n,iVariable n, i

Variable Ase, Use, u, D, FVariable Ase, Use, u, D, F

Variable R, EVariable R, E

Variable elapsedTimeVariable elapsedTime

String oBAC String oBAC

String oBAC_rString oBAC_r

WAVE aEventMessage = aEventMessageWAVE aEventMessage = aEventMessage

//Extraer tiempos// Extract times

Findlevels/Q aEventMessage 1Findlevels / Q aEventMessage 1

Make/o/n=0 aTimesMessageMake / o / n = 0 aTimesMessage

Findlevels/Q/D=aTimesMessage, aEventMessage 1Findlevels / Q / D = aTimesMessage, aEventMessage 1

Make/o/n=(V_LevelsFound) oBAC_r_wMake / o / n = (V_LevelsFound) oBAC_r_w

//Calcular las respuestas de oBAC// Calculate oBAC responses

n=ln = l

DoDo

//cargar oBAC// load oBAC

oBAC = "oBAC"+num2str(n)oBAC = "oBAC" + num2str (n)

Duplicate/o $oBAC oBAC wDuplicate / o $ oBAC oBAC w

//crear una onda de salida de amplificador analógico// create an analog amp output waveform

oBACr = "oBAC_r"+num2str(n)oBACr = "oBAC_r" + num2str (n)

//Inicializar oBAC// Initialize oBAC

Ase = l;Use = oBAC_w[l];D = oBAC_w[2];F = oBAC_w[3];u=Use;R=l //Calcular amplitudesAse = l; Use = oBAC_w [l]; D = oBAC_w [2]; F = oBAC_w [3]; u = Use; R = l // Calculate amplitudes

i=0i = 0

dodo

if(i=0)if (i = 0)

E = Ase*u*R;oBAC_r_w[i]=EE = Ase * u * R; oBAC_r_w [i] = E

elseelse

elapsedTime = (aTimesMessage[i]/1000)-(aTimesMessage[i-l]/1000) u = Use+((u*(l-Use))*exp(-elapsedTime/F))elapsedTime = (aTimesMessage [i] / 1000) - (aTimesMessage [i-l] / 1000) u = Use + ((u * (l-Use)) * exp (-elapsedTime / F))

R = l+((R-R*u-l)*exp(-elapsedTime/D))R = l + ((R-R * u-l) * exp (-elapsedTime / D))

E = Ase*u*RE = Ase * u * R

oBAC_r_w[i]=EoBAC_r_w [i] = E

endifendif

i+=li + = l

while(i<numpnts(oBAC_r_w))while (i <numpnts (oBAC_r_w))

Duplicate/o oBAC_r_w $oBAC_rDuplicate / o oBAC_r_w $ oBAC_r

n+=ln + = l

While(n<num_oB ACs+1)While (n <num_oB ACs + 1)

EndEnd

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////

//Escalar diferencialmente las salidas// Differentially scale the outputs

Función oBAC_r2oBAC_s()OBAC_r2oBAC_s () function

NVAR numChannelsNVAR numChannels

NVAR num_oBACsNVAR num_oBACs

Variable n,mVariable n, m

String oBAC_rString oBAC_r

String oBAC_r_errorString oBAC_r_error

String oBAC_r_s String oBAC_r_s

//Inicializar//Initialize

oBAC_r= "oBAC_r"+num2str(l)oBAC_r = "oBAC_r" + num2str (l)

Duplicate/o $oBAC_r oBAC_r_s_wDuplicate / o $ oBAC_r oBAC_r_s_w

//Convertir oBAC_r a oBAC_s// Convert oBAC_r to oBAC_s

n=ln = l

DoDo

oBAC_r_s = “oBAC_r_s"+num2str(n)oBAC_r_s = “oBAC_r_s" + num2str (n)

oBAC_r_s_w=0oBAC_r_s_w = 0

m=lm = l

DoDo

oBACr = "oBAC_r"+num2str(m)oBACr = "oBAC_r" + num2str (m)

Duplicate/o $oBAC_r oBAC_r_wDuplicate / o $ oBAC_r oBAC_r_w

oBAC_r_error = "oBAC_r_error"+num2str(n)+"_"+num2str(m) Duplicate/o $oBAC_r_error oBAC_r_error_woBAC_r_error = "oBAC_r_error" + num2str (n) + "_" + num2str (m) Duplicate / o $ oBAC_r_error oBAC_r_error_w

Wavestats/Q oBAC_r_error_wWavestats / Q oBAC_r_error_w

oB AC_r_w=oB AC_r_w/error_w oBAC_r_s_w=oBAC_r_s_w+oBAC_r_woB AC_r_w = oB AC_r_w / error_w oBAC_r_s_w = oBAC_r_s_w + oBAC_r_w

m+=lm + = l

While(m<num_oB ACs+1)While (m <num_oB ACs + 1)

Wavestats/Q oBAC_r_s_wWavestats / Q oBAC_r_s_w

oBAC_r_s_w=oBAC_r_s_w/v_maxoBAC_r_s_w = oBAC_r_s_w / v_max

Duplicate/o oBAC_r_s_w $oBAC_r_sDuplicate / o oBAC_r_s_w $ oBAC_r_s

n+=ln + = l

While(n<numChannels+1)While (n <numChannels + 1)

EndEnd

//Convertir las respuestas de oBAC a out_nBinary// Convert responses from oBAC to out_nBinary

Función oBAC_s2out_nBinary()OBAC_s2out_nBinary () function

NVAR numChannels = numChannelsNVAR numChannels = numChannels

NVAR dt = dtNVAR dt = dt

Variable n,iVariable n, i

Variable rTPL_lRTPL_l variable

Variable rTPL_2RTPL_2 variable

Variable targetAmpTargetAmp variable

Variable Ase,Use,D,FVariable Ase, Use, D, F

String rBACString rBAC

String oBAC_r_sString oBAC_r_s

String out_nBinaryString out_nBinary

//Crear ondas de salida// Create output waves

oBAC_r_s = "oBAC_r_s"+num2str(l)oBAC_r_s = "oBAC_r_s" + num2str (l)

Duplicate/o $oBAC_r_s oBAC_s_wDuplicate / o $ oBAC_r_s oBAC_s_w

Make/o/n=(numpnts(oBAC_s_w)) rBAC_r_w, out_nBinary_wMake / o / n = (numpnts (oBAC_s_w)) rBAC_r_w, out_nBinary_w

//Convertir todos los canales de salida// Convert all output channels

n=ln = l

Do Do

//Inicializar ondas// Initialize waves

rBAC = MrBAC "+num2str(n)rBAC = MrBAC "+ num2str (n)

Duplicate/o $rBAC rBAC_wDuplicate / o $ rBAC rBAC_w

oBAC_r_s = "oBAC_r_s"+num2str(n)oBAC_r_s = "oBAC_r_s" + num2str (n)

Duplicate/o $oBAC_r_s oBAC_s_wDuplicate / o $ oBAC_r_s oBAC_s_w

out_nBinary = "out_nBinary"+num2str(n)out_nBinary = "out_nBinary" + num2str (n)

//Inicializar parámetros rBAC// Initialize rBAC parameters

Ase = l;Use = rBAC_w[l];D = rBAC_w[2];F = rBAC_w[3]Ase = l; Use = rBAC_w [l]; D = rBAC_w [2]; F = rBAC_w [3]

//Asignar bit de inicio// Assign start bit

out_nBinary_w[0]=1out_nBinary_w [0] = 1

//bucle para cada intervalo de tiempo// loop for each time interval

i=2i = 2

DoDo

out_nBinary_w[i]=lout_nBinary_w [i] = l

out_nBinary_w[i] =0out_nBinary_w [i] = 0

rBACResponse(Use,D,F)rBACResponse (Use, D, F)

rTPL_l=rBAC_r_w[i]rTPL_l = rBAC_r_w [i]

out_nBinary_w[i] =0out_nBinary_w [i] = 0

out_nBinary_w[i]=1out_nBinary_w [i] = 1

rBACResponse(Use,D,F)rBACResponse (Use, D, F)

rTPL_2=rBAC_r_w[i]rTPL_2 = rBAC_r_w [i]

//amplitud objetivo// target amplitude

targetAmp=oBAC_s_w[i]targetAmp = oBAC_s_w [i]

//seleccionar tpl para la coincidencia de amplificador más cercana if(abs(targetAmp-rTPL_l)<abs(targetAmp-rTPL_2))// select tpl for closest amp match if (abs (targetAmp-rTPL_l) <abs (targetAmp-rTPL_2))

out_nBinary_w[i]=1out_nBinary_w [i] = 1

out_nBinary_w[i] =0out_nBinary_w [i] = 0

elseelse

out_nBinary_w[i] =0out_nBinary_w [i] = 0

out_nBinary_w[i]=1out_nBinary_w [i] = 1

endifendif

i+=2i + = 2

While(i<numpnts(out_nBinary_w))While (i <numpnts (out_nBinary_w))

//Asignar bit final// Assign end bit

out_nBinary_w[numpnts(out_nBinary_w)-2]=lout_nBinary_w [numpnts (out_nBinary_w) -2] = l

//Salida nBinary// nBinary output

Duplicate/o out_nBinary_w $out_nBinaryDuplicate / o out_nBinary_w $ out_nBinary

//establecer la escala a la misma que la entrada// set the scale to the same as the input

SetScale/P x 0,dt,"", $out_nBinarySetScale / P x 0, dt, "", $ out_nBinary

n+=ln + = l

While(n<numChannels+1)While (n <numChannels + 1)

EndEnd

////////////////////////////////////////////////////////////////////

// Obtener respuesta rBAC // Get rBAC response

Función rBACResponse(Use,D,F)RBACResponse function (Use, D, F)

Variable Use,D,FVariable Use, D, F

NVAR numChannels = numChannelsNVAR numChannels = numChannels

Variable n,iVariable n, i

Variable R, E,Ase, uVariable R, E, Ase, u

Variable elapsedTimeVariable elapsedTime

WAVE out_nBinaryw = out_nBinary_wWAVE out_nBinaryw = out_nBinary_w

WAVE rBAC_r_w=rBAC_r_wWAVE rBAC_r_w = rBAC_r_w

//obtener onda de tiempo out_nBinary// get time wave out_nBinary

Make/o/n=0 out_times_wMake / o / n = 0 out_times_w

Findlevels/Q/D= out times w, out_nBinary_w 1Findlevels / Q / D = out times w, out_nBinary_w 1

//Inicializar oBAC// Initialize oBAC

Ase = l;u=Use,R=lAse = l; u = Use, R = l

//Inicializar la onda de respuesta rBAC// Initialize the rBAC response waveform

rBAC_r_w=0rBAC_r_w = 0

//Calcular amplitudes// Calculate amplitudes

i=0i = 0

DoDo

if(i=0)if (i = 0)

E = Ase*u*RE = Ase * u * R

rBAC_r_w[i]=ErBAC_r_w [i] = E

elseelse

elapsedTime = (out_times_w[i])-(out_times_w[i-l]) u = Use+((u*(l-Use))*exp(-elapsedTime/F))elapsedTime = (out_times_w [i]) - (out_times_w [i-l]) u = Use + ((u * (l-Use)) * exp (-elapsedTime / F))

R = l+((R-R*u-l)*exp(-elapsedTime/D))R = l + ((R-R * u-l) * exp (-elapsedTime / D))

E = Ase*u*RE = Ase * u * R

rBAC_r_w[i]=ErBAC_r_w [i] = E

endifendif

i+=li + = l

while(i<numpnts(out_times_w))while (i <numpnts (out_times_w))

EndEnd

////////////////////////////////////////////////////////////////////////////////////

//Convertir a bytes// Convert to bytes

Función out_nBinary2out_Byte()Out_nBinary2out_Byte () function

NVAR numChannels = numChannelsNVAR numChannels = numChannels

Variable nVariable n

String out_nBinaryString out_nBinary

String out_ByteString out_Byte

//Inicializar//Initialize

n=ln = l

DoDo

out_Byte = "out_Byte"+num2str(n)out_Byte = "out_Byte" + num2str (n)

out_nBinary = "out_nBinary"+num2str(n)out_nBinary = "out_nBinary" + num2str (n)

Duplicate/o $out_nBinary out_nBinary_w Duplicate / o $ out_nBinary out_nBinary_w

DeletePoints 0,l,out_nBinary_wDeletePoints 0, l, out_nBinary_w

DeletePoints numpnts(out_nBinaryw)-1,1 ,out_nBinary_wDeletePoints numpnts (out_nBinaryw) -1,1, out_nBinary_w

Duplicate/o out_nBinary_w, $out_ByteDuplicate / or out_nBinary_w, $ out_Byte

n+=ln + = l

While(n<numChannels+1)While (n <numChannels + 1)

EndEnd

//////////////////////////////////////////////////////////////////////

//Convertir bytes a señal binaria// Convert bytes to binary signal

Función out_out_Byte2out_BinarySignal()Out_out_Byte2out_BinarySignal () function

NVAR numChannels = numChannelsNVAR numChannels = numChannels

Variable nVariable n

String out_ByteString out_Byte

String out_BinarySignalString out_BinarySignal

ConcatBytes()ConcatBytes ()

EndEnd

Un medio de almacenamiento informático puede ser, o estar incluido en, un dispositivo de almacenamiento legible por ordenador, un sustrato de almacenamiento legible por ordenador, una matriz o dispositivo de memoria de acceso aleatorio o en serie, o una combinación de uno o más de ellos. El medio también puede ser, o estar incluido en, uno o más componentes físicos o medios separados (por ejemplo, múltiples CDs, discos u otros dispositivos de almacenamiento).A computer storage medium may be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a serial or random access memory device or array, or a combination of one or more of they. The medium can also be, or be included in, one or more physical components or separate media (eg, multiple CDs, disks, or other storage devices).

Las operaciones descritas en este documento pueden ponerse en práctica como operaciones realizadas por un aparato de procesamiento de datos sobre datos almacenados en uno o más dispositivos de almacenamiento legibles por ordenador o recibidos desde otras fuentes.The operations described in this document can be implemented as operations performed by a data processing apparatus on data stored in one or more computer-readable storage devices or received from other sources.

El término "aparato de procesamiento de datos" abarca todo tipo de aparatos, dispositivos y máquinas para procesar datos, incluyendo, a modo de ejemplo, un procesador programable, un ordenador, un sistema en un circuito integrado, o múltiples, o combinaciones, de lo anterior. El aparato puede incluir circuitos lógicos de uso especial, por ejemplo, un FPGA (matriz de puertas programables en campo) o un ASIC (circuito integrado específico de la aplicación). El aparato también puede incluir, además del hardware, código que crea un entorno de ejecución para el programa informático en cuestión, por ejemplo, código que constituye el firmware del procesador, una pila de protocolos, un sistema de gestión de bases de datos, un sistema operativo, un entorno de tiempo de ejecución multiplataforma, una máquina virtual o una combinación de uno o más de ellos. El aparato y el entorno de ejecución pueden realizar diversas infraestructuras de modelos informáticos diferentes, tales como servicios web, informática distribuida e infraestructuras informáticas en cuadrícula.The term "data processing apparatus" encompasses all types of apparatus, devices and machines for processing data, including, by way of example, a programmable processor, a computer, a system on an integrated circuit, or multiple, or combinations, of the above. The apparatus may include special purpose logic circuits, for example an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). The apparatus may also include, in addition to hardware, code that creates an execution environment for the computer program in question, for example, code that constitutes the processor firmware, a protocol stack, a database management system, a operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of these. The appliance and runtime environment can realize various different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

Un programa informático (también denominado como programa, software, aplicación de software, secuencia de comandos o código) puede ser objeto de escritura en cualquier forma de lenguaje de programación, incluyendo los lenguajes compilados o interpretados, los lenguajes declarativos o procedimentales, y se puede poner en práctica en cualquier forma, incluso como programa independiente o como módulo, componente, subrutina, objeto u otra unidad adecuada para su uso en un entorno informático. Un programa informático puede, pero no necesariamente, corresponder a un archivo en un sistema de archivos. Un programa se puede almacenar en una parte de un archivo que contiene otros programas o datos (por ejemplo, uno o más scripts almacenados en un documento de lenguaje de marcado), en un solo archivo dedicado al programa en cuestión, o en varios archivos coordinados (por ejemplo, archivos que almacenan uno o más módulos, subprogramas o partes de código). Se puede poner en práctica un programa informático para que se ejecute en un ordenador o en varios ordenadores ubicados en un sitio o distribuidos en múltiples sitios e interconectados por una red de comunicación.A computer program (also referred to as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be implement in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program can, but need not, correspond to a file on a file system. A program can be stored in a part of a file that contains other programs or data (for example, one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in several coordinated files (for example, files that store one or more modules, applets, or pieces of code). A computer program can be implemented to run on one computer or on several computers located at one site or distributed over multiple sites and interconnected by a communication network.

Los procesos y flujos lógicos descritos en este documento pueden ser realizados por uno o más procesadores programables que ejecutan uno o más programas informáticos para realizar acciones operando con datos de entrada y generando salida. Los procesos y los flujos lógicos también se pueden realizar y el aparato también se puede poner en práctica como un circuito lógico de uso especial, por ejemplo, un FPGA (matriz de puertas programables en campo) o un ASIC (circuito integrado específico de la aplicación).The processes and logical flows described in this document can be performed by one or more programmable processors that execute one or more computer programs to perform actions operating with input data and generating output. Processes and logic flows can also be realized and the apparatus can also be implemented as a special purpose logic circuit, for example an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). ).

Los procesadores adecuados para la ejecución de un programa informático que realizan actividades en los procesos aquí descritos incluyen, a modo de ejemplo, microprocesadores de uso general y especial, y uno o más procesadores de cualquier tipo de ordenador digital. Por lo general, un procesador recibirá instrucciones y datos desde una memoria de solamente lectura o una memoria de acceso aleatorio o ambas. Los elementos esenciales de un ordenador son un procesador para realizar acciones de conformidad con las instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. Por lo general, un ordenador también incluirá, o estará operativamente acoplado para recibir o transferir datos a, o ambos, a uno o más dispositivos de almacenamiento masivo para almacenar datos, por ejemplo, discos magnéticos, discos magneto-ópticos o discos ópticos. Sin embargo, un ordenador no necesita tener dichos dispositivos. Además, un ordenador puede integrarse en otro dispositivo, por ejemplo, en un teléfono móvil, en un asistente digital personal (PDA), en un reproductor de audio o vídeo móvil, en una consola de juegos, en un receptor del Sistema de Posicionamiento Global (GPS) o en un dispositivo de almacenamiento portátil (por ejemplo, una unidad de memoria instantánea de bus serie universal (USB)), por nombrar solamente algunos. Los dispositivos adecuados para almacenar instrucciones y datos de programas informáticos incluyen todas las formas de memoria no volátil, medios y dispositivos de memoria, incluyendo, a modo de ejemplo, dispositivos de memoria de semiconductores, por ejemplo, EPROM, EEPROM y dispositivos de memoria instantánea; discos magnéticos, por ejemplo, discos duros internos o discos extraíbles; discos magneto-ópticos; y discos CD-ROM y DVD-ROM. El procesador y la memoria pueden complementarse o incorporarse en circuitos lógicos de uso especial.Suitable processors for executing a computer program that perform activities in the processes described herein include, by way of example, general and special purpose microprocessors, and one or more processors of any type of digital computer. Typically, a processor will receive instructions and data from read-only memory or random access memory, or both. The essential elements of a computer are a processor to perform actions in accordance with instructions and one or more memory devices to store instructions and data. Generally, a computer will also include, or be operably coupled to receive or transfer data to, or both, one or more mass storage devices for storing data, eg, magnetic discs, magneto-optical discs, or optical discs. However, a computer does not need to have such devices. In addition, a computer can be integrated into another device, for example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System receiver. (GPS) or on a portable storage device (for example, a universal serial bus (USB) flash drive), to name just a few. Suitable devices for storing computer program instructions and data include all forms of non-volatile memory, memory media and devices, including, by way of example, semiconductor memory devices, for example EPROM, EEPROM, and flash memory devices. ; magnetic drives, for example internal hard drives or removable drives; magneto-optical discs; and CD-ROM and DVD-ROM discs. The processor and memory can be supplemented or incorporated into special-purpose logic circuits.

Aunque esta especificación contiene muchos detalles de puesta en práctica específicos, estos no deben interpretarse como limitaciones del alcance de la invención o de lo que se puede reivindicar, sino más bien como descripciones de características específicas de formas de realización particulares de la invención. Ciertas características que se describen en esta invención dentro del contexto de formas de realización separadas también se pueden poner en práctica en combinación en una única forma de realización. A la inversa, varias características que se describen en el contexto de una única forma de realización también pueden ponerse en práctica en múltiples formas de realización por separado o en cualquier subcombinación adecuada. Además, aunque las características pueden describirse con anterioridad como que actúan en ciertas combinaciones e incluso inicialmente reivindicadas como tales, una o más características de una combinación reivindicada pueden en algunos casos eliminarse de la combinación, y la combinación reivindicada puede dirigirse a una subcombinación o variación de una subcombinación.Although this specification contains many specific implementation details, these should not be construed as limitations on the scope of the invention or what can be claimed, but rather as descriptions of specific features of particular embodiments of the invention. Certain features that are described in this invention within the context of separate embodiments can also be practiced in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple separate embodiments or in any suitable sub-combination. Furthermore, although the characteristics may be previously described as acting in certain combinations and even initially claimed as such, one or more characteristics of a claimed combination may in some cases be removed from the combination, and the claimed combination may be directed to a sub-combination or variation. of a subcombination.

De manera similar, aunque las operaciones se representan en los dibujos en un orden particular, esto no debe entenderse como que requiere que dichas operaciones se realicen en el orden particular ilustrado o en el orden secuencial, o que todas las operaciones ilustradas se realicen, para lograr los resultados deseables. En determinadas circunstancias, la multitarea y el procesamiento en paralelo pueden resultar ventajosos. Además, la separación de varios componentes del sistema en las formas de realización descritas con anterioridad no debe entenderse como que requiere dicha separación en todas las formas de realización, y debe entenderse que los componentes y sistemas del programa descritos generalmente pueden integrarse juntos en un único producto de software o empaquetarse en múltiples productos de software.Similarly, although the operations are represented in the drawings in a particular order, this should not be understood as requiring that said operations be performed in the particular illustrated order or sequential order, or that all illustrated operations be performed, in order to achieve desirable results. In certain circumstances, multitasking and parallel processing can be advantageous. Furthermore, the separation of various components of the system in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the components and systems of the program described generally can be integrated together into a single software product or bundled into multiple software products.

FORMAS DE REALIZACIÓNWAYS OF REALIZATION

Los métodos, sistemas y aparatos, incluidos los programas informáticos codificados en un medio de almacenamiento informático, para codificar y decodificar la información descrita en este documento se pueden realizar en una o más de las siguientes formas de realización.The methods, systems and apparatus, including computer programs encoded on a computer storage medium, for encoding and decoding the information described herein can be performed in one or more of the following embodiments.

Forma de realización 1. Un método de interfaz entre el procesamiento de datos digitales y el procesamiento estadístico y el reconocimiento de patrones proporcionados en un componente de procesamiento neuronal y la información de codificación en un codificador, que comprende: recibir una señal que representa información utilizando un conjunto de dígitos discretos; convertir, mediante un codificador, la señal recibida en un código función del tiempo, en donde: el código función del tiempo se divide en intervalos de tiempo, cada uno de los intervalos de tiempo del código función del tiempo corresponde a un dígito en la señal recibida, cada dígito de un primer estado de la señal recibida se expresa como un evento que ocurre en un primer momento dentro del intervalo de tiempo correspondiente del código función del tiempo, expresado cada dígito de un segundo estado de la señal recibida como un evento que ocurre en un segundo tiempo dentro de los intervalos de tiempo correspondientes del código función del tiempo, siendo el primer momento distinguible del segundo momento, y todos los estados de los dígitos en la señal recibida están representados por eventos en el código función del tiempo; y colocar el código función del tiempo en el componente de procesamiento neuronal.Embodiment 1. An interface method between digital data processing and statistical processing and pattern recognition provided in a neural processing component and encoding information in an encoder, comprising: receiving a signal representing information using a set of discrete digits; converting, by means of an encoder, the received signal into a code as a function of time, where: the code as a function of time is divided into time intervals, each of the time intervals of the code as a function of time corresponds to a digit in the signal received, each digit of a first state of the received signal is expressed as an event that occurs at a first moment within the corresponding time interval of the code as a function of time, each digit of a second state of the received signal expressed as an event that it occurs in a second time within the corresponding time intervals of the time-function code, the first moment being distinguishable from the second moment, and all the states of the digits in the received signal are represented by events in the time-function code; and place the code as a function of time in the neural processing component.

Forma de realización 2. El método según la forma de realización 1, en donde: la señal recibida es una representación binaria de la información; y los dígitos de la señal recibida comprenden bits en la representación binaria.Embodiment 2. The method according to embodiment 1, wherein: the received signal is a binary representation of the information; and the digits of the received signal comprise bits in the binary representation.

Forma de realización 3. El método según cualquiera de las formas de realización 1 a 2, en donde: cada dígito del primer estado de la representación binaria se expresa como un evento que ocurre en el medio del intervalo de tiempo correspondiente del código función del tiempo; y cada dígito del segundo estado de la representación binaria se expresa como un evento que ocurre al principio o al final del intervalo de tiempo correspondiente del código función del tiempo.Embodiment 3. The method according to any one of embodiments 1 to 2, wherein: each digit of the first state of the binary representation is expressed as an event that occurs in the middle of the corresponding time interval of the code as a function of time ; and each digit of the second state of the binary representation is expressed as an event that occurs at the beginning or end of the corresponding time interval of the code as a function of time.

Forma de realización 4. El método según cualquiera de las formas de realización 1 a 3, en donde, excepto en los momentos de ocurrencia, los eventos que expresan los dígitos del primer estado son indistinguibles de los eventos que expresan los dígitos del segundo estado. Embodiment 4. The method according to any one of embodiments 1 to 3, wherein, except at times of occurrence, the events expressing the digits of the first state are indistinguishable from the events expressing the digits of the second state.

Forma de realización 5. El método según cualquiera de las formas de realización 1 a 4, en donde los eventos comprenden cada uno un par de transiciones de bajo a alto y de alto a bajo.Embodiment 5. The method according to any of embodiments 1 to 4, wherein the events each comprise a pair of transitions from low to high and from high to low.

Forma de realización 6. El método según cualquiera de las formas de realización 1 a 5, en donde los eventos son binarios.Embodiment 6. The method according to any one of embodiments 1 to 5, wherein the events are binary.

Forma de realización 7. El método según cualquiera de las formas de realización 1 a 6, en donde la salida del código función del tiempo comprende la salida del código función del tiempo a un componente de procesamiento neuronal puesto en práctica utilizando componentes neuronales húmedos, en donde las propiedades del código función del tiempo están diseñadas para compatibilidad con los componentes neuronales húmedos.Embodiment 7. The method according to any one of embodiments 1 to 6, wherein the time-function code output comprises the time-function code output to a neural processing component implemented using wet neural components, in where the properties of the time function code are designed for compatibility with wet neural components.

Forma de realización 8. El método según cualquiera de las formas de realización 1 a 7, en donde convertir la señal recibida en el código función del tiempo comprende agregar una cabecera de inicio al código función del tiempo, delimitando la cabecera de inicio el inicio del código función del tiempo y el correspondiente a una cabecera en la señal recibida.Embodiment 8. The method according to any of embodiments 1 to 7, wherein converting the received signal into the time-function code comprises adding a start header to the time-function code, the start header delimiting the start of the time code and the one corresponding to a header in the received signal.

Forma de realización 9. El método según cualquiera de las formas de realización 1 a 8, en donde la conversión de la señal recibida en el código función del tiempo comprende agregar un pie de parada al código función del tiempo, demarcando el pie de parada el final del código función del tiempo y el correspondiente a un pie en la señal recibida. Embodiment 9. The method according to any one of embodiments 1 to 8, wherein the conversion of the received signal into the time-function code comprises adding a stop foot to the time-function code, the stop foot demarking the end of the code as a function of time and the one corresponding to one foot in the received signal.

Forma de realización 10. El método según cualquiera de las formas de realización 1 a 9, en donde los intervalos de tiempo son todos de una sola duración.Embodiment 10. The method according to any one of embodiments 1 to 9, wherein the time intervals are all of a single duration.

Forma de realización 11. El método según cualquiera de las formas de realización 1 a 10, en donde los intervalos de tiempo se ordenan en serie en una misma secuencia que los dígitos correspondientes en la señal recibida.Embodiment 11. The method according to any one of embodiments 1 to 10, wherein the time intervals are ordered serially in the same sequence as the corresponding digits in the received signal.

Forma de realización 12. El método según cualquiera de las formas de realización 1 a 11, en donde convertir la señal recibida en el código función del tiempo comprende: convertir cada dígito del primer estado de la señal recibida en eventos que ocurren en el primer momento; y convertir cada dígito del segundo estado de la representación binaria en eventos que ocurren en el segundo tiempo.Embodiment 12. The method according to any of the embodiments 1 to 11, wherein converting the received signal into the code as a function of time comprises: converting each digit of the first state of the received signal into events that occur in the first moment ; and converting each digit of the second state of the binary representation into events that occur in the second beat.

Forma de realización 13. Un sistema para servir de interfaz entre el procesamiento de datos digitales y el procesamiento estadístico y el reconocimiento de patrones proporcionados en un componente de procesamiento neuronal, comprendiendo el sistema: una entrada para recibir una señal que representa información utilizando un conjunto de dígitos discretos; un codificador que codifica la señal recibida, comprendiendo el codificador: un detector de estado configurado para detectar los estados de los dígitos en la señal recibida, y un traductor configurado para traducir los estados de los dígitos en la señal recibida en un código función del tiempo, comprendiendo el código función del tiempo un conjunto de intervalos de tiempo a cada uno de los cuales se asigna un dígito respectivo en la señal recibida, comprendiendo cada uno de los intervalos de tiempo un evento, la sincronización del evento dentro de cada uno de los intervalos de tiempo que caracteriza el estado de un dígito asignado respectivo; una salida para proporcionar el código función del tiempo a otro sistema o dispositivo; un componente de procesamiento neuronal conectado para recibir el código función del tiempo.Embodiment 13. A system to interface between digital data processing and statistical processing and pattern recognition provided in a neural processing component, the system comprising: an input for receiving a signal representing information using a set discrete digits; an encoder that encodes the received signal, the encoder comprising: a state detector configured to detect the states of the digits in the received signal, and a translator configured to translate the states of the digits in the received signal into a code as a function of time , the time-function code comprising a set of time intervals to each of which a respective digit is assigned in the received signal, each of the time intervals comprising an event, the timing of the event within each of the time intervals characterizing the status of a respective assigned digit; an output to provide the code as a function of time to another system or device; a neural processing component wired to receive the code as a function of time.

Forma de realización 14. El sistema según la forma de realización 13, en donde el componente de procesamiento neuronal se pone en práctica utilizando componentes neuronales húmedos y las propiedades del código función del tiempo se adaptan para la compatibilidad con los componentes neuronales húmedos.Embodiment 14. The system according to embodiment 13, wherein the neural processing component is implemented using wet neural components and the properties of the time-function code are adapted for compatibility with the wet neural components.

Forma de realización 15. El sistema según cualquiera de las formas de realización 13 a 14, en donde: la señal recibida comprende una señal binaria; y el detector de estado comprende un detector de bits configurado para detectar el estado de bits en la señal binaria.Embodiment 15. The system according to any one of embodiments 13 to 14, wherein: the received signal comprises a binary signal; and the state detector comprises a bit detector configured to detect the state of bits in the binary signal.

Forma de realización 16. El sistema según cualquiera de las formas de realización 13 a 15, en donde el traductor comprende un generador de eventos, estando el generador de eventos configurado y conectado para generar los eventos del código función del tiempo.Embodiment 16. The system according to any of the embodiments 13 to 15, wherein the translator comprises an event generator, the event generator being configured and connected to generate the code events as a function of time.

Forma de realización 17. El sistema según la forma de realización 16, en donde el generador de eventos comprende un generador de pulsos, en donde las formas de los pulsos que expresan los primeros estados son indistinguibles de las formas de los pulsos que expresan los segundos estados.Embodiment 17. The system according to embodiment 16, wherein the event generator comprises a pulse generator, wherein the forms of the pulses that express the first states are indistinguishable from the forms of the pulses that express the second state.

Forma de realización 18. El sistema según la forma de realización 16, en donde el generador de eventos está configurado, además, para generar un evento de cabecera que delimita el inicio del código función del tiempo y corresponde a una cabecera en la señal recibida.Embodiment 18. The system according to embodiment 16, wherein the event generator is further configured to generate a header event that delimits the start of the code as a function of time and corresponds to a header in the received signal.

Forma de realización 19. El sistema según cualquiera de las formas de realización 13 a 18, que comprende, además, un detector de inicio/parada configurado y conectado para detectar el inicio y el final de la señal recibida. Embodiment 19. The system according to any of embodiments 13 to 18, further comprising a start / stop detector configured and connected to detect the start and end of the received signal.

Forma de realización 20. El sistema según cualquiera de las formas de realización 13 a 19, que comprende, además, un componente de sincronización de intervalo, demarcando el componente de sincronización de intervalo la etapa de los intervalos de tiempo del código función del tiempo.Embodiment 20. The system according to any one of embodiments 13 to 19, further comprising a slot synchronization component, the slot synchronization component demarcating the time slot stage of the time-based code.

Forma de realización 21. El sistema según la forma de realización 20, en donde el componente de sincronización de intervalo está configurado para demarcar la etapa de los intervalos de tiempo de una única duración.Embodiment 21. The system according to embodiment 20, wherein the interval synchronization component is configured to demarcate the stage of time intervals of a single duration.

Forma de realización 22 Un método para servir de interfaz entre las funciones de procesamiento estadístico y de reconocimiento de patrones proporcionadas por el componente de procesamiento neuronal y los dispositivos de procesamiento de datos digitales y decodificación de una señal de código función del tiempo, comprendiendo dicho método: recibir una señal de código función del tiempo desde un dispositivo de procesamiento neuronal en un decodificador, en donde: la señal de código función del tiempo se divide en intervalos de tiempo, cada uno de los intervalos de tiempo de la señal de código función del tiempo comprende un evento, y la sincronización de los eventos dentro de los intervalos de tiempo expresa el contenido de información de la señal de código función del tiempo; detectar la sincronización de los eventos dentro de los intervalos de tiempo; y proporcionar una señal que representa la información expresada en la señal de código función del tiempo utilizando un conjunto de dígitos discretos.Embodiment 22 A method to interface between the statistical processing and pattern recognition functions provided by the neural processing component and the devices for processing digital data and decoding a time-based code signal, said method comprising : receive a time-based code signal from a neural processing device in a decoder, where: the time-based code signal is divided into time slots, each of the time slots of the time-based code signal time comprises an event, and the timing of the events within the time intervals expresses the information content of the code signal as a function of time; detect timing of events within time intervals; and providing a signal representing the information expressed in the time-code signal using a set of discrete digits.

Forma de realización 23. El método según la forma de realización 22, que además comprende: convertir eventos que ocurren dentro de un primer margen de tiempo de los intervalos de la señal de código función del tiempo en un dígito discreto de un primer estado en la señal de salida; y convertir eventos que ocurren dentro de un segundo margen de tiempo de los intervalos de la señal de código función del tiempo en un dígito discreto de un segundo estado en la señal de salida.Embodiment 23. The method according to embodiment 22, further comprising: converting events occurring within a first time range of the time-based code signal intervals into a discrete digit of a first state in the exit sign; and converting events occurring within a second time frame of the time-code signal intervals into a discrete second-state digit in the output signal.

Forma de realización 24. El método según la forma de realización 23, en donde la señal de salida comprende una señal binaria.Embodiment 24. The method according to embodiment 23, wherein the output signal comprises a binary signal.

Forma de realización 25. El método según cualquiera de las formas de realización 22 a 24, que comprende, además, detectar un inicio del contenido de datos de la señal de código función del tiempo.Embodiment 25. The method according to any of embodiments 22 to 24, further comprising detecting an onset of the data content of the time-based code signal.

Forma de realización 26. El método según la forma de realización 25, en donde detectar el inicio del contenido de datos comprende detectar un evento de cabecera de la señal de código función del tiempo.Embodiment 26. The method according to embodiment 25, wherein detecting the start of the data content comprises detecting a header event of the time-based code signal.

Forma de realización 27. El método según la forma de realización 26, que comprende, además, determinar un tiempo entre el evento de cabecera y el primer evento después del evento de cabecera.Embodiment 27. The method according to embodiment 26, further comprising determining a time between the header event and the first event after the header event.

Forma de realización 28. El método según la forma de realización 25, que comprende, además, sincronizar la detección de los momentos en donde ocurren los eventos dentro de los intervalos de tiempo con el inicio del contenido de datos de la señal de código función del tiempo.Embodiment 28. The method according to embodiment 25, further comprising synchronizing the detection of the moments where the events occur within the time intervals with the start of the data content of the code signal as a function of the weather.

Forma de realización 29. El método según cualquiera de las formas de realización 22 a 28, en donde recibir la señal de código función del tiempo comprende recibir la señal de código función del tiempo desde un dispositivo de procesamiento neuronal puesto en práctica utilizando componentes neuronales húmedos.Embodiment 29. The method according to any one of embodiments 22 to 28, wherein receiving the time-based code signal comprises receiving the time-based code signal from a neural processing device implemented using wet neural components. .

Forma de realización 30. El método según cualquiera de las formas de realización 22 a 29, que comprende, además: recibir una segunda señal de código función del tiempo en un segundo decodificador, en donde: la segunda señal de código función del tiempo se divide en intervalos de tiempo, cada uno de los intervalos de tiempo de la segunda señal de código función del tiempo comprende un evento, y la sincronización de los eventos dentro de los intervalos de tiempo expresa el contenido de información de la segunda señal de código función del tiempo; detectar, en el segundo decodificador, la sincronización de los eventos dentro de los intervalos de tiempo; y proporcionar, desde el segundo decodificador, una señal que representa la información expresada en la segunda señal de código función del tiempo utilizando un segundo conjunto de dígitos discretos; y agregar el conjunto de dígitos discretos y el segundo conjunto de dígitos discretos en una segunda señal.Embodiment 30. The method according to any of embodiments 22 to 29, further comprising: receiving a second time-based code signal in a second decoder, wherein: the second time-based code signal is divided In time intervals, each of the time intervals of the second code signal as a function of time comprises an event, and the synchronization of the events within the time intervals expresses the information content of the second code signal as a function of the weather; detecting, in the second decoder, the timing of the events within the time slots; and providing, from the second decoder, a signal representing the information expressed in the second time code signal using a second set of discrete digits; and adding the set of discrete digits and the second set of discrete digits in a second token.

Forma de realización 31. El método según cualquiera de las formas de realización 22 a 30, en donde los eventos de la señal de código función del tiempo tienen formas indistinguibles.Embodiment 31. The method according to any one of embodiments 22 to 30, wherein the events of the time-function code signal have indistinguishable forms.

Forma de realización 32. Un sistema para servir de interfaz entre las funciones de procesamiento estadístico y de reconocimiento de patrones proporcionadas por el componente de procesamiento neuronal y los dispositivos de procesamiento de datos digitales y decodificar una señal de código función del tiempo, comprendiendo el sistema: un componente de procesamiento neuronal; una entrada a la que está conectado el componente de procesamiento neuronal y que recibe una señal de código función del tiempo, en donde: la señal de código función del tiempo se divide en intervalos de tiempo, cada uno de los intervalos de tiempo de la señal de código función del tiempo comprende un evento, y la sincronización de los eventos dentro de los intervalos de tiempo expresa el contenido de información de la señal de código función del tiempo; un detector de eventos configurado para detectar la sincronización de los eventos dentro de los intervalos de tiempo de la señal de código función del tiempo; un traductor configurado para traducir la sincronización de los eventos dentro de los intervalos de tiempo del código función del tiempo en estados de un conjunto de dígitos; y una salida configurada para proporcionar una señal que comprende los dígitos.Embodiment 32. A system to interface between the statistical processing and pattern recognition functions provided by the neural processing component and the digital data processing devices and to decode a time-based code signal, the system comprising : a neural processing component; an input to which the neural processing component is connected and which receives a time-code signal, where: the time-code signal is divided into time intervals, each of the time intervals of the signal The time-code code comprises an event, and the synchronization of the events within the time intervals expresses the information content of the time-code signal; an event listener configured to detect the timing of events within the time intervals of the time-based code signal; a translator configured to translate the synchronization of events within the time intervals of the code function of the time in states of a set of digits; and an output configured to provide a signal comprising the digits.

Forma de realización 33. El sistema según la forma de realización 32, en donde el traductor comprende un conjunto de comparadores que reciben las sincronizaciones detectadas de los eventos y comparar las sincronizaciones detectadas de los eventos con los márgenes de tiempo dentro de los intervalos.Embodiment 33. The system according to embodiment 32, wherein the translator comprises a set of comparators that receive the detected timings of the events and compare the detected timings of the events with the time margins within the intervals.

Forma de realización 34. El sistema según cualquiera de las formas de realización 32 a 33, en donde el componente de procesamiento neuronal se pone en práctica utilizando componentes neuronales húmedos.Embodiment 34. The system according to any one of embodiments 32 to 33, wherein the neural processing component is implemented using wet neural components.

Forma de realización 35. El sistema según cualquiera de las formas de realización 32 a 34, en donde el traductor está configurado para traducir los eventos dentro de los intervalos de tiempo del código función del tiempo en una señal binaria.Embodiment 35. The system according to any one of embodiments 32 to 34, wherein the translator is configured to translate the events within the time intervals of the time-function code into a binary signal.

Forma de realización 36. El sistema según cualquiera de las formas de realización 32 a 35, en donde el detector de eventos comprende un detector de pulsos.Embodiment 36. The system according to any of embodiments 32 to 35, wherein the event detector comprises a pulse detector.

Forma de realización 37. El sistema según cualquiera de las formas de realización 32 a 36, que comprende, además, un componente de sincronización de intervalo, demarcando el componente de sincronización de intervalo la etapa de los intervalos de tiempo del código función del tiempo.Embodiment 37. The system according to any one of embodiments 32 to 36, further comprising a slot synchronization component, the slot synchronization component demarcating the time slot stage of the time-based code.

Forma de realización 38. El sistema según la forma de realización 37, en donde el componente de sincronización de intervalo comprende un comparador configurado para comparar un recuento de tiempo con una referencia.Embodiment 38. The system according to embodiment 37, wherein the interval synchronization component comprises a comparator configured to compare a count of time with a reference.

Forma de realización 39. El sistema según la forma de realización 38, en donde la referencia es constante y los intervalos de tiempo son todos de la misma longitud única.Embodiment 39. The system according to embodiment 38, wherein the reference is constant and the time intervals are all of the same single length.

Forma de realización 40. El sistema según la forma de realización 37, que comprende, además, un detector de inicio configurado para detectar un inicio de la señal de código función del tiempo.Embodiment 40. The system according to embodiment 37, further comprising a start detector configured to detect a start of the code signal as a function of time.

Forma de realización 41. El sistema según cualquiera de las formas de realización 32 a 40, en donde el detector de inicio está acoplado al componente de sincronización de intervalo y proporciona una señal de reinicio al componente de sincronización de intervalo, restableciendo la señal de reinicio la demarcación de la etapa de los intervalos de tiempo.Embodiment 41. The system according to any of embodiments 32 to 40, wherein the start detector is coupled to the interval synchronization component and provides a reset signal to the interval synchronization component, resetting the restart signal the demarcation of the stage of time intervals.

Por tanto, se han descrito formas de realización particulares de la invención. Otras formas de realización están dentro del alcance de las siguientes reivindicaciones. En algunos casos, las acciones enumeradas en las reivindicaciones pueden realizarse en un orden diferente y aun así lograr resultados deseables. Además, los procesos representados en las figuras adjuntas no requieren necesariamente el orden particular mostrado, o el orden secuencial, para lograr resultados deseables. En determinadas puestas en práctica, la multitarea y el procesamiento en paralelo pueden resultar ventajosos. Therefore, particular embodiments of the invention have been described. Other embodiments are within the scope of the following claims. In some cases, the actions listed in the claims can be performed in a different order and still achieve desirable results. Furthermore, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or the sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing can be advantageous.

Claims (16)

REIVINDICACIONES 1. Un sistema codificador puesto en práctica en circuitos electrónicos digitales o en combinaciones de software y hardware informático, comprendiendo el sistema codificador:1. An encoding system implemented in digital electronic circuits or in combinations of computer software and hardware, the encoding system comprising: un codificador temporal (105) configurado para codificar información en un conjunto de señales de código función del tiempo (135), incluyendo cada una de las señales de código función del tiempo (135) intervalos de tiempo (320, 1420, 2905) y cada uno de los intervalos de tiempo (320, 1420, 2905) incluyendo un evento (325, 1425, 2910), ocurrencias de los eventos (325, 1425, 2910) dentro de los intervalos de tiempo (320, 1420, 2905) que están sincronizados para representar la información; ya time encoder (105) configured to encode information into a set of time-function code signals (135), each of the time-function code signals (135) including time intervals (320, 1420, 2905) and each one of the time intervals (320, 1420, 2905) including an event (325, 1425, 2910), occurrences of the events (325, 1425, 2910) within the time intervals (320, 1420, 2905) that are synchronized to represent information; Y un codificador compresor (2205) que comprende un conjunto de dispositivos convertidores (2305) cada uno conectado y configurado paraa compressor encoder (2205) comprising a set of converter devices (2305) each connected and configured to recibir y ponderar las amplitudes de los eventos (325, 1425, 2910) en una respectiva de las señales de código función del tiempo (135) como una función de la sincronización de otros eventos (325, 1425, 2910) en la respectiva señal de código función del tiempo, yreceive and weight the amplitudes of the events (325, 1425, 2910) in a respective one of the time-function code signals (135) as a function of the timing of other events (325, 1425, 2910) in the respective time signal time-function code, and proporcionar una señal (2345) que incluye los eventos ponderados en amplitud en momentos relativos que corresponden a la sincronización de los eventos no ponderados dentro de la respectiva señal de código función del tiempo.providing a signal (2345) that includes the amplitude-weighted events at relative times corresponding to the timing of the unweighted events within the respective time-code signal. 2. El sistema según la reivindicación 1, en donde el codificador comprende un mecanismo de reinicialización, estando dicho mecanismo de reinicialización configurado para reiniciar la ponderación de las amplitudes de los eventos (325, 1425, 2910) en los dispositivos convertidores a un estado conocido.The system according to claim 1, wherein the encoder comprises a reset mechanism, said reset mechanism being configured to reset the weighting of the amplitudes of the events (325, 1425, 2910) in the converter devices to a known state. . 3. El sistema según cualquiera de las reivindicaciones 1 a 2, en donde el codificador comprende un integrador (2310) conectado y configurado para integrar los códigos función del tiempo, ponderados en amplitud, en una señal.The system according to any one of claims 1 to 2, wherein the encoder comprises an integrator (2310) connected and configured to integrate amplitude-weighted time-function codes into a signal. 4. El sistema según cualquiera de las reivindicaciones 1 a 3, en donde el integrador (2310) está configurado para integrar los códigos función del tiempo, ponderados en amplitud, en una señal unidimensional.The system according to any one of claims 1 to 3, wherein the integrator (2310) is configured to integrate the amplitude-weighted time-function codes into a one-dimensional signal. 5. El sistema según cualquiera de las reivindicaciones 1 a 4, en donde la ponderación de los dispositivos convertidores (2305) no añade nueva información a la señal de código función del tiempo (135).The system according to any one of claims 1 to 4, wherein the weighting of the converter devices (2305) does not add new information to the time-code signal (135). 6. El sistema según cualquiera de las reivindicaciones 1 a 5, en donde la ponderación de cada evento (325, 1425, 2910) es una función no lineal de los tiempos de ocurrencia de los eventos predecesores (325, 1425, 2910) en la señal de código función del tiempo (135).The system according to any one of claims 1 to 5, wherein the weighting of each event (325, 1425, 2910) is a non-linear function of the occurrence times of the predecessor events (325, 1425, 2910) in the time-function code signal (135). 7. El sistema según cualquiera de las reivindicaciones 1 a 6, en donde el codificador compresor (2205) comprende: un integrador (2310) conectado y configurado para recibir las señales que incluyen secuencias de eventos ponderadas en amplitud (325, 1425, 2910), comprendiendo el integrador (2310) un comparador (260, 3635) conectado para recibir una señal que caracteriza la integración, en donde el comparador (260, 3635) está configurado paraThe system according to any of claims 1 to 6, wherein the compressor encoder (2205) comprises: an integrator (2310) connected and configured to receive the signals that include amplitude-weighted sequences of events (325, 1425, 2910) , the integrator (2310) comprising a comparator (260, 3635) connected to receive a signal characterizing the integration, wherein the comparator (260, 3635) is configured to comparar la señal que caracteriza la integración con un valor de umbral dinámico, ycompare the signal characterizing the integration with a dynamic threshold value, and en respuesta a la señal que caracteriza la integración que alcanza el valor umbral dinámico, proporcionar un evento de salida y restablecer la comparación entre la señal que caracteriza la integración y el valor umbral dinámico.in response to the integration characterizing signal reaching the dynamic threshold value, provide an output event and reestablishing the comparison between the integration characterizing signal and the dynamic threshold value. 8. El sistema según la reivindicación 7, en donde el integrador (2310) comprende, además, un contador de eventos configurado para contar el número de los eventos de entrada (325, 1425, 2910) en las secuencias temporales. The system according to claim 7, wherein the integrator (2310) further comprises an event counter configured to count the number of input events (325, 1425, 2910) in the time sequences. 9. El sistema según cualquiera de las reivindicaciones 7 a 8, en donde el integrador (2310) comprende, además, un ajustador de valor umbral conectado para recibir un recuento de los eventos de entrada (325, 1425, 2910) en las secuencias temporales, estando el ajustador del valor umbral conectado y configurado para ajustar el valor de umbral dinámico en respuesta al recuento del número de los eventos de entrada (325, 1425, 2910) en las secuencias temporales.The system according to any of claims 7 to 8, wherein the integrator (2310) further comprises a threshold value adjuster connected to receive a count of the input events (325, 1425, 2910) in the time sequences , the threshold value adjuster being connected and configured to adjust the dynamic threshold value in response to counting the number of input events (325, 1425, 2910) in the time sequences. 10. Un dispositivo decodificador (3205, 3700) puesto en práctica en circuitos electrónicos digitales o en combinaciones de software y hardware informático, comprendiendo el dispositivo decodificador:10. A decoding device (3205, 3700) implemented in digital electronic circuits or in combinations of computer software and hardware, the decoding device comprising: una entrada (3710) conectable para recibir una serie temporal de entrada de eventos (325, 1425, 2910), con los eventos (325, 1425, 2910) en la serie temporal de entrada que ocurren a intervalos no uniformes, estando la sincronización de los eventos de entrada (325, 1425, 2910) dentro de la información de codificación de la serie temporal de entrada; an input (3710) connectable to receive an input time series of events (325, 1425, 2910), with the events (325, 1425, 2910) in the input time series occurring at non-uniform intervals, the timing of the input events (325, 1425, 2910) within the input time series encoding information; un conjunto de dispositivos convertidores de ponderación (3310), cada uno configurado para convertir, de forma única, la serie temporal de entrada en un conjunto de amplitudes (3340), siendo cada amplitud una función de la sincronización de múltiples eventos de entrada (325, 1425, 2910) en la serie temporal de entrada; ya set of weighting converter devices (3310), each configured to uniquely convert the input time series into a set of amplitudes (3340), each amplitude being a function of the timing of multiple input events (325 , 1425, 2910) in the input time series; Y un conjunto de salidas (3335), cada una incluida en un respectivo dispositivo convertidor de ponderación y conectable para proporcionar a la salida una respectiva serie de amplitudes, en donde las amplitudes varían, pero el número de amplitudes es el mismo que el número de eventos (325, 1425, 2910) en la serie temporal de entrada,a set of outputs (3335), each included in a respective weighting converter device and connectable to provide the output with a respective series of amplitudes, where the amplitudes vary, but the number of amplitudes is the same as the number of events (325, 1425, 2910) in the input time series, en donde al menos algunas de las amplitudes generadas por diferentes dispositivos convertidores de ponderación difieren para cada serie temporal de entrada distinta de cero.wherein at least some of the amplitudes generated by different weight converting devices differ for each nonzero input time series. 11. El dispositivo decodificador según la reivindicación 10, que comprende, además, un mecanismo de reinicialización, estando el mecanismo de reinicialización configurado para reiniciar los dispositivos convertidores (2305) a un estado conocido.The decoder device according to claim 10, further comprising a reset mechanism, the reset mechanism being configured to reset the converter devices (2305) to a known state. 12. El dispositivo decodificador según cualquiera de las reivindicaciones 10 a 11, que comprende, además: un conjunto de dispositivos de almacenamiento de datos que almacenan un conjunto de pesos de ponderación; y un conjunto de multiplicadores, estando cada uno de los multiplicadores conectado y configurado para multiplicar una de los conjuntos de amplitudes en un peso de ponderación respectivo; yThe decoding device according to any of claims 10-11, further comprising: a set of data storage devices that store a set of weighting weights; and a set of multipliers, each of the multipliers being connected and configured to multiply one of the sets of amplitudes by a respective weighting weight; Y un sumador configurado para sumar los productos de los conjuntos de amplitudes y los respectivos segundos pesos de ponderación.an adder configured to add the products of the sets of amplitudes and the respective second weighting weights. 13. El dispositivo decodificador según cualquiera de las reivindicaciones 10 a 12, en donde cada uno de los dispositivos convertidores de ponderación comprende una red de procesadores de señales interconectados por una o más uniones de procesamiento que ajustan, de manera dinámica, la intensidad de respuesta según el patrón temporal de eventos (325, 1425, 2910) en la serie temporal de entrada para generar el conjunto de amplitudes.The decoding device according to any of claims 10 to 12, wherein each of the weighting converter devices comprises a network of signal processors interconnected by one or more processing junctions that dynamically adjust the response intensity according to the time pattern of events (325, 1425, 2910) in the input time series to generate the set of amplitudes. 14. El dispositivo decodificador según cualquiera de las reivindicaciones 10 a 13, en combinación con un dispositivo que comprende:The decoding device according to any one of claims 10 to 13, in combination with a device comprising: una entrada (3345) conectada para recibir una de las series de salida (3470) de amplitudes;an input (3345) connected to receive one of the output series (3470) of amplitudes; un comparador (3635) conectado para comparar la serie de salida (3470) de amplitudes con una segunda serie de amplitudes y generar una señal indicativa de una diferencia entre la serie de salida de amplitudes y la segunda serie de amplitudes;a comparator (3635) connected to compare the output series (3470) of amplitudes with a second series of amplitudes and generate a signal indicative of a difference between the output series of amplitudes and the second series of amplitudes; un segundo dispositivo convertidor configurado para convertir una serie temporal en la segunda serie de amplitudes, siendo cada amplitud de la segunda serie una función de la sincronización de múltiples eventos (325, 1425, 2910) en la entrada de la serie temporal en el dispositivo convertidor;a second converter device configured to convert a time series into the second series of amplitudes, each amplitude in the second series being a function of the synchronization of multiple events (325, 1425, 2910) at the time series input in the converter device ; un permutador (3670) configurado para permutar la entrada de la serie temporal en el dispositivo convertidor; y una salida conectable para proporcionar una entrada de serie temporal en el dispositivo convertidor en respuesta a la señal indicativa de la diferencia entre la serie de salida de amplitudes y la segunda serie de amplitudes que caen por debajo de un valor umbral.a permutator (3670) configured to permute the time series input at the converter device; and an output connectable to provide a time series input to the converter device in response to the signal indicative of the difference between the output series of amplitudes and the second series of amplitudes that fall below a threshold value. 15. El dispositivo decodificador según la reivindicación 14, en donde el segundo dispositivo convertidor (2305) comprende una red de procesadores de señales interconectados por una o más uniones de procesamiento que ajustan, de manera dinámica, la intensidad de respuesta según el patrón temporal de eventos en la serie temporal de entrada para generar la segunda serie de amplitudes.The decoding device according to claim 14, wherein the second converter device (2305) comprises a network of signal processors interconnected by one or more processing junctions that dynamically adjust the response intensity according to the time pattern of events in the input time series to generate the second series of amplitudes. 16. El dispositivo decodificador según cualquiera de las reivindicaciones 14 a 15, en donde el comparador comprende un conjunto de comparadores cada uno conectado para comparar una sola amplitud de la serie de salida con una sola amplitud de la segunda serie de amplitudes, en donde el dispositivo decodificador, de manera opcional, comprende una o ambas de:16. The decoding device according to any of claims 14 to 15, wherein the comparator comprises a set of comparators each connected to compare a single amplitude of the output series with a single amplitude of the second series of amplitudes, wherein the Decoding device, optionally, comprises one or both of: una memoria intermedia (3615, 3625) para almacenar la serie de amplitudes de salida; ya buffer (3615, 3625) for storing the series of output amplitudes; Y una segunda memoria intermedia (3615, 3625) para almacenar la segunda serie de amplitudes. a second buffer (3615, 3625) for storing the second set of amplitudes.
ES10737051T 2009-07-28 2010-07-27 Information encoding and decoding Active ES2823253T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/EP2009/059757 WO2011012158A1 (en) 2009-07-28 2009-07-28 Encoding and decoding of information
PCT/EP2010/060875 WO2011012614A2 (en) 2009-07-28 2010-07-27 Encoding and decoding information

Publications (1)

Publication Number Publication Date
ES2823253T3 true ES2823253T3 (en) 2021-05-06

Family

ID=42035743

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10737051T Active ES2823253T3 (en) 2009-07-28 2010-07-27 Information encoding and decoding

Country Status (5)

Country Link
JP (2) JP5587412B2 (en)
KR (1) KR101734596B1 (en)
CN (2) CN104901702B (en)
ES (1) ES2823253T3 (en)
WO (2) WO2011012158A1 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011106520A1 (en) 2010-02-24 2011-09-01 Ipplex Holdings Corporation Augmented reality panorama supporting visually impaired individuals
CN105075156B (en) * 2013-02-27 2018-01-16 Hrl实验室有限责任公司 MIMO ofdm systems and method for stabilization and effective neuromorphic communication between devices
WO2014133506A1 (en) * 2013-02-27 2014-09-04 Hrl Laboratories, Llc A mimo-ofdm system for robust and efficient neuromorphic inter-device communication
US9032273B2 (en) * 2013-09-05 2015-05-12 Infineon Technologies Ag Method, apparatus and device for data processing
US10489702B2 (en) * 2016-10-14 2019-11-26 Intel Corporation Hybrid compression scheme for efficient storage of synaptic weights in hardware neuromorphic cores
US10552738B2 (en) * 2016-12-15 2020-02-04 Google Llc Adaptive channel coding using machine-learned models
CN110326000B (en) * 2017-02-17 2023-11-24 可口可乐公司 Character recognition model based on end user input and recursive training system and method
CN109004937A (en) * 2018-07-13 2018-12-14 北京七维航测科技股份有限公司 A kind of high-precision B code generation method and module
EP3648012A1 (en) * 2018-10-29 2020-05-06 Mitsubishi Electric R&D Centre Europe B.V. Multilevel activation function for deep neural networks
CN113162628B (en) * 2021-04-26 2022-03-18 深圳希施玛数据科技有限公司 Data encoding method, data decoding method, terminal and storage medium
CN114124105B (en) * 2021-12-10 2022-08-19 枫树谷(成都)科技有限责任公司 Digital signal data compression, encryption and decoding method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3640003C2 (en) * 1986-11-22 1996-07-25 Schunk Produktionsgesellschaft Method and device for transmitting information, in particular for mobile information carrier systems
US5155802A (en) 1987-12-03 1992-10-13 Trustees Of The Univ. Of Penna. General purpose neural computer
US4962342A (en) 1989-05-04 1990-10-09 Synaptics, Inc. Dynamic synapse for neural network
JPH03121625A (en) * 1989-10-04 1991-05-23 Seiko Epson Corp Communication equipment
US5537512A (en) 1993-05-26 1996-07-16 Northrop Grumman Corporation Neural network elements
JPH08315141A (en) * 1995-05-15 1996-11-29 Mitsubishi Electric Corp Image recognition device
IL133384A0 (en) 1997-06-11 2001-04-30 Univ Southern California Dynamic synapse for signal processing in neural networks
US6212230B1 (en) * 1998-04-04 2001-04-03 Sigmatel, Inc. Method and apparatus for pulse position modulation
AU6363099A (en) * 1999-10-28 2001-05-08 National University Of Singapore, The Method and apparatus for generating pulses from analog waveforms
US6630897B2 (en) * 1999-10-28 2003-10-07 Cellonics Incorporated Pte Ltd Method and apparatus for signal detection in ultra wide-band communications
KR100370223B1 (en) * 2001-02-05 2003-02-05 삼성전자 주식회사 Data recording/reproducing apparatus and method thereof, and data encoding method
US7149256B2 (en) * 2001-03-29 2006-12-12 Quellan, Inc. Multilevel pulse position modulation for efficient fiber optic communication
AU2003302422A1 (en) 2002-05-03 2004-06-18 University Of Southern California Artificial neural systems with dynamic synapses
US7773703B2 (en) * 2005-07-08 2010-08-10 Qualcomm Incorporated Methods and apparatus for communicating using a DC tone
JP4757743B2 (en) * 2005-08-31 2011-08-24 パナソニック株式会社 Synchronization acquisition device and synchronization acquisition method
US7359819B2 (en) * 2006-07-21 2008-04-15 Microsoft Corporation Evaluation of device driver output
EP1956734B1 (en) * 2007-02-06 2009-12-30 Oerlikon Space AG Optical high-rate pulse position modulation scheme and optical communications system based thereon
US20080222047A1 (en) * 2007-03-06 2008-09-11 Securecard Technologies, Inc. Device and Method for Conducting Secure Economic Transactions with a Programmable Magnetic Stripe

Also Published As

Publication number Publication date
WO2011012158A1 (en) 2011-02-03
WO2011012614A3 (en) 2011-09-22
JP5848414B2 (en) 2016-01-27
JP2014209794A (en) 2014-11-06
JP2013500660A (en) 2013-01-07
KR101734596B1 (en) 2017-05-11
KR20120046760A (en) 2012-05-10
CN102648582A (en) 2012-08-22
CN102648582B (en) 2015-05-27
WO2011012614A2 (en) 2011-02-03
CN104901702B (en) 2018-11-30
JP5587412B2 (en) 2014-09-10
CN104901702A (en) 2015-09-09

Similar Documents

Publication Publication Date Title
ES2823253T3 (en) Information encoding and decoding
US8941512B2 (en) Encoding and decoding information
ES2309924T3 (en) STRATEGY AND PAIRING OF DIGITAL FOOTPRINTS CHARACTERISTICS OF AUDIO SIGNALS.
Porwal et al. Data compression methodologies for lossless data and comparison between algorithms
Dey et al. Advanced steganography algorithm using randomized intermediate QR host embedded with any encrypted secret message: ASA_QR algorithm
DE602006009495D1 (en) QUANTIZING PARAMETERS FOR LANGUAGE AND AUDIO CODING BY PARTICULAR INFORMATION ON ATPATIC SUB-SEQUENCES
KR20170041724A (en) Artificial neurons and spiking neurons with asynchronous pulse modulation
ES2954240T3 (en) Hiding Audio Frame Loss
KR20170021258A (en) Asynchronous pulse modulation for threshold-based signal coding
WO2007100503A3 (en) Cascaded modulator system and method for qkd
KR20200092511A (en) Deep neural network based non-autoregressive speech synthesizer method and system
Xiong et al. A dictionary learning algorithm for multi-channel neural recordings
EP2460276B1 (en) Encoding and decoding of information
Jetzek Galois Fields, Linear Feedback Shift Registers and Their Applications
Tatlas et al. On the effect of compression on the complexity characteristics of wireless acoustic sensor network signals
CN107872289A (en) Communication system and method
Donato et al. Algorithm for complementary-derived orthogonal sequences applied to measurements in noisy channels
RU78383U1 (en) DEVICE FOR MODELING A COMMUNICATION CHANNEL FOR COMPRESSION WITHOUT LOSS
Fabbri et al. Very low cost entropy source based on chaotic dynamics retrofittable on networked devices to prevent RNG attacks
Ghahramani et al. Entropy and mutual information
Todd Hardware Emulation of a secure passive RFID sensor system
JP6086541B2 (en) Signal processing system and signal processing method
FRISO Formal methods-based design of dynamically configurable traffic lights management systems
CN116364085A (en) Data enhancement method, device, electronic equipment and storage medium
Fontecha Analysis and study on text representation to improve the accuracy of the normalized compression distance