1. Field
Certain aspects of the present disclosure generally relate to signal processing, and, more particularly, to asynchronous pulse modulation schemes for threshold-based signal coding.
2. Background
Signal encoding is employed in various systems, including telecommunications, sensors, signal processing chips and network designs. For example, signal encoding may be employed in audio and visual processors, between nodes in a distributed network, or between artificial neurons (i.e., neuron models) interconnected in a neural network. A neural network is a computational device or represents a method to be performed by a computational device. Artificial neural networks may have corresponding structure and/or function in biological neural networks. However, artificial neural networks may provide innovative and useful computational techniques for certain applications in which traditional computational techniques are cumbersome, impractical, or inadequate.
Many systems employ a clock or timing device to sample data. Such systems may be called “synchronous” systems because the data is “synchronized” to the clock pulses or clock speed. Other systems may run without a clock, and such systems may be referred to as “asynchronous” because the data does not move through such systems in a periodic manner. Some networks, such as artificial neural networks, can infer a function from observations, and may be more computationally efficient or use lower power systems if they can be designed in an asynchronous manner.
In an aspect of the present disclosure, a method of signal processing is presented. The method includes comparing an input signal with one or more positive threshold values and one or more negative threshold values. The method also includes generating an output signal based on the comparison of the input signal with the positive threshold value(s) and the negative threshold value(s). The method further includes feeding the output signal back into a decaying reconstruction filter to create a reconstructed signal. Furthermore, the method includes combining the reconstructed signal with the input signal.
In another aspect of the present disclosure, an apparatus for signal processing is presented. The apparatus includes a memory and one or more processors coupled to the memory. The processor(s) is(are) configured to compare an input signal with one or more positive threshold values and one or more negative threshold values. The processor(s) is(are) also configured to generate an output signal based on the comparison of the input signal with the positive threshold value(s) and the negative threshold value(s). The processor(s) is(are) further configured to feed the output signal back into a decaying reconstruction filter to create a reconstructed signal. Furthermore, the processor(s) is(are) configured to combine the reconstructed signal with the input signal.
In yet another aspect of the present disclosure, an apparatus for signal processing is presented. The apparatus includes means for comparing an input signal with one or more positive threshold values and one or more negative threshold values. The apparatus also includes means for generating an output signal based on the comparison of the input signal with the positive threshold value(s) and the negative threshold value(s). The apparatus further includes means for feeding the output signal back into a decaying reconstruction filter to create a reconstructed signal. Furthermore, the apparatus includes means for combining the reconstructed signal with the input signal.
In still another aspect of the present disclosure, a computer program product for signal processing is presented. The computer program product includes a non-transitory computer readable medium having encoded thereon program code. The program code includes program code to compare an input signal with one or more positive threshold values and one or more negative threshold values. The program code also includes program code to generate an output signal based on the comparison of the input signal with the positive threshold value(s) and the negative threshold value(s). The program code further includes program code to feed the output signal back into a decaying reconstruction filter to create a reconstructed signal. Furthermore, the program code includes program code to combine the reconstructed signal with the input signal.
In an aspect of the present disclosure, a method of signal processing is presented. The method includes comparing an input signal with one or more threshold values. The method also includes generating an output signal based on the comparison of the input signal with the threshold value(s). The method further includes feeding the output signal back into a decaying reconstruction filter to create a reconstructed signal. The decaying reconstruction filter is other than a single decaying exponential. Furthermore, the method includes combining the reconstructed signal with the input signal.
In another aspect of the present disclosure, an apparatus for signal processing is presented. The apparatus includes a memory and one or more processors coupled to the memory. The processor(s) is(are) configured to compare an input signal with one or more threshold values. The processor(s) is(are) also configured to generate an output signal based on the comparison of the input signal with the threshold value(s). The processor(s) is(are) further configured to feed the output signal back into a decaying reconstruction filter to create a reconstructed signal. The decaying reconstruction filter is other than a single decaying exponential. Furthermore, the processor(s) is(are) configured to combine the reconstructed signal with the input signal.
In yet another aspect of the present disclosure, an apparatus for signal processing is presented. The apparatus includes means for comparing an input signal with one or more threshold values. The apparatus also includes means for generating an output signal based on the comparison of the input signal with the threshold value(s). The apparatus further includes means for feeding the output signal back into a decaying reconstruction filter to create a reconstructed signal. The decaying reconstruction filter is other than a single decaying exponential. Furthermore, the apparatus includes means for combining the reconstructed signal with the input signal.
In still another aspect of the present disclosure, a computer program product for signal processing is presented. The computer program product includes a non-transitory computer readable medium having encoded thereon program code. The program code includes program code to compare an input signal with one or more threshold values. The program code also includes program code to generate an output signal based on the comparison of the input signal with the threshold value(s). The program code further includes program code to feed the output signal back into a decaying reconstruction filter to create a reconstructed signal. The decaying reconstruction filter is other than a single decaying exponential. Furthermore, the program code includes program code to combine the reconstructed signal with the input signal.
This has outlined, rather broadly, the features and technical advantages of the present disclosure in order that the detailed description that follows may be better understood. Additional features and advantages of the disclosure will be described below. It should be appreciated by those skilled in the art that this disclosure may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the teachings of the disclosure as set forth in the appended claims. The novel features, which are believed to be characteristic of the disclosure, both as to its organization and method of operation, together with further objects and advantages, will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present disclosure.
The features, nature, and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout.
The detailed description set forth below, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
Based on the teachings, one skilled in the art should appreciate that the scope of the disclosure is intended to cover any aspect of the disclosure, whether implemented independently of or combined with any other aspect of the disclosure. For example, the present disclosure may be implemented or a method may be practiced using any number of the aspects set forth. In addition, the scope of the disclosure is intended to cover such an apparatus or method practiced using other structure, functionality, or structure and functionality in addition to or other than the various aspects of the disclosure set forth. It should be understood that any aspect of the disclosure disclosed may be embodied by one or more elements of a claim.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Although particular aspects are described herein, many variations and permutations of these aspects fall within the scope of the disclosure. Although some benefits and advantages of the preferred aspects are mentioned, the scope of the disclosure is not intended to be limited to particular benefits, uses or objectives. Rather, aspects of the disclosure are intended to be broadly applicable to different technologies, system configurations, networks and protocols, some of which are illustrated by way of example in the figures and in the following description of the preferred aspects. The detailed description and drawings are merely illustrative of the disclosure rather than limiting, the scope of the disclosure being defined by the appended claims and equivalents thereof.
Input data streams to neural networks, as well as other networks, may be continuous in nature. Clock-based systems sample a continuous-time signal regularly (periodically), which may result in sampling of the signal even in the absence of a change in the signal. Such an approach may use additional power or limit the overall speed of such systems.
Aspects of the present disclosure are directed to signal processing with asynchronous pulse modulation. In some aspects, the signal processing may be conducted without the use of a clock signal.
In communications systems, including computers, cellular telephones, networks, etc., encoding is a process that places an input signal or sequence into a different format for transmission or storage. For example, a system 10 may process an input 12 (e.g., x(t)) through an encoder 14. The input 12 may be an analog signal, a digital signal, a phase or pulse modulated signal, or other type of signal. As an example, an analog audio signal may be encoded into a digital signal through an analog-to-digital converter. The output 16 from the encoder 14 is transmitted through a channel 18, which may be wireless or via wires, optical fibers, or other transmission media.
The output 20 of the channel 18 may then be provided to a decoder 22, which converts the output 20 back into the original input 12. The decoder 22 has an output 24 that is a reproduction of the input 12. Depending on the precision of the encoder 14, losses or noise in the channel 18, and the matching of the decoder 22 to the encoder 14, the output 24 may vary from the input 12. For example, if the channel 18 is noisy, the output 24 may not be an exact reproduction of the input 12.
Many different encoding/decoding schemes may be used. Quadrature pulse shift keying (QPSK) codes, differential signals, pseudorandom (PN) coding, time division, and other signal encoding schemes may be employed by the encoder 14 and the decoder 22. In data communications, Manchester encoding may be used, where binary digits (bits) represent the transitions between high and low logic states.
The present disclosure addresses the problem of implementing or realizing an asynchronous system employing pulse modulation to encode continuous-time signals into events and/or decode the events back into an estimate of the continuous-time signal. The present disclosure describes, in an aspect, an asynchronous pulse modulation (APM) design for clock-optional and efficient signal encoding. A clock-free design operates in continuous-time. A design where a clock is present or available may operate in discrete-time.
A design in accordance with aspects of the present disclosure enables the realization of new encoders in a generalized framework. For example, positive unipolar, negative unipolar, bipolar and multi-valued signaling, decaying reconstruction (delta) filters, pre (sigma) filters for signal shaping and a simplified design where only an anti-aliasing filter is used at the decoder are all possible within the present disclosure.
The present disclosure provides more efficient encoding of continuous-time signals over channels. For example, in an ideal channel with no noise or signal attenuation, the continuous-time signal could be transmitted directly (akin to the gap junction in neurons). However, in practice, the fidelity of this direct approach suffers given channels subject to non-idealities and the received signal can be distorted.
As illustrated in
In biological neurons, the output spike generated when a neuron fires is referred to as an action potential. This electrical signal is a relatively rapid, transient, nerve impulse, having an amplitude of roughly 100 mV and a duration of about 1 ms. In a particular embodiment of a neural system having a series of connected neurons (e.g., the transfer of spikes from one level of neurons to another in
The transfer of spikes from one level of neurons to another may be achieved through the network of synaptic connections (or simply “synapses”) 204, as illustrated in
Biological synapses can mediate either excitatory or inhibitory (hyperpolarizing) actions in postsynaptic neurons and can also serve to amplify neuronal signals. Excitatory signals depolarize the membrane potential (i.e., increase the membrane potential with respect to the resting potential). If enough excitatory signals are received within a certain time period to depolarize the membrane potential above a threshold, an action potential occurs in the postsynaptic neuron. In contrast, inhibitory signals generally hyperpolarize (i.e., lower) the membrane potential. Inhibitory signals, if strong enough, can counteract the sum of excitatory signals and prevent the membrane potential from reaching a threshold. In addition to counteracting synaptic excitation, synaptic inhibition can exert powerful control over spontaneously active neurons. A spontaneously active neuron refers to a neuron that spikes without further input, for example due to its dynamics or a feedback. By suppressing the spontaneous generation of action potentials in these neurons, synaptic inhibition can shape the pattern of firing in a neuron, which is generally referred to as sculpturing. The various synapses 104 may act as any combination of excitatory or inhibitory synapses, depending on the behavior desired.
The neural system 200 may be emulated by a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components, a software module executed by a processor, or any combination thereof. The neural system 200 may be utilized in a large range of applications, such as image and pattern recognition, machine learning, motor control, and alike. Each neuron in the neural system 200 may be implemented as a neuron circuit. The neuron membrane charged to the threshold value initiating the output spike may be implemented, for example, as a capacitor that integrates an electrical current flowing through it.
In an aspect, the capacitor may be eliminated as the electrical current integrating device of the neuron circuit, and a smaller memristor element may be used in its place. This approach may be applied in neuron circuits, as well as in various other applications where bulky capacitors are utilized as electrical current integrators. In addition, each of the synapses 204 may be implemented based on a memristor element, where synaptic weight changes may relate to changes of the memristor resistance. With nanometer feature-sized memristors, the area of a neuron circuit and synapses may be substantially reduced, which may make implementation of a large-scale neural system hardware implementation more practical.
Functionality of a neural processor that emulates the neural system 200 may depend on weights of synaptic connections, which may control strengths of connections between neurons. The synaptic weights may be stored in a non-volatile memory in order to preserve functionality of the processor after being powered down. In an aspect, the synaptic weight memory may be implemented on a separate external chip from the main neural processor chip. The synaptic weight memory may be packaged separately from the neural processor chip as a replaceable memory card. This may provide diverse functionalities to the neural processor, where a particular functionality may be based on synaptic weights stored in a memory card currently attached to the neural processor.
The neuron 302 may combine the scaled input signals and use the combined scaled inputs to generate an output signal 308 (i.e., a signal Y). The output signal 308 may be a current, a conductance, a voltage, a real-valued and/or a complex-valued. The output signal may be a numerical value with a fixed-point or a floating-point representation. The output signal 308 may be then transferred as an input signal to other neurons of the same neural system, or as an input signal to the same neuron 302, or as an output of the neural system.
The processing unit (neuron) 302 may be emulated by an electrical circuit, and its input and output connections may be emulated by electrical connections with synaptic circuits. The processing unit 302 and its input and output connections may also be emulated by a software code. The processing unit 302 may also be emulated by an electric circuit, whereas its input and output connections may be emulated by a software code. In an aspect, the processing unit 302 in the computational network may be an analog electrical circuit. In another aspect, the processing unit 302 may be a digital electrical circuit. In yet another aspect, the processing unit 302 may be a mixed-signal electrical circuit with both analog and digital components. The computational network may include processing units in any of the aforementioned forms. The computational network (neural system or neural network) using such processing units may be utilized in a large range of applications, such as image and pattern recognition, machine learning, motor control, and the like.
During the course of training a neural network, synaptic weights (e.g., the weights w1(i,i+1), . . . , wP(i,i+1) from
In hardware and software models of neural networks, the processing of synapse related functions can be based on synaptic type. Synapse types may be non-plastic synapses (no changes of weight and delay), plastic synapses (weight may change), structural delay plastic synapses (weight and delay may change), fully plastic synapses (weight, delay and connectivity may change), and variations thereupon (e.g., delay may change, but no change in weight or connectivity). The advantage of multiple types is that processing can be subdivided. For example, non-plastic synapses may not use plasticity functions to be executed (or waiting for such functions to complete). Similarly, delay and weight plasticity may be subdivided into operations that may operate together or separately, in sequence or in parallel. Different types of synapses may have different lookup tables or formulas and parameters for each of the different plasticity types that apply. Thus, the methods would access the relevant tables, formulas, or parameters for the synapse's type.
There are further implications of the fact that spike-timing dependent structural plasticity may be executed independently of synaptic plasticity. Structural plasticity may be executed even if there is no change to weight magnitude (e.g., if the weight has reached a minimum or maximum value, or it is not changed due to some other reason) s structural plasticity (i.e., an amount of delay change) may be a direct function of pre-post spike time difference. Alternatively, structural plasticity may be set as a function of the weight change amount or based on conditions relating to bounds of the weights or weight changes. For example, a synapse delay may change only when a weight change occurs or if weights reach zero but not if they are at a maximum value. However, it may be advantageous to have independent functions so that these processes can be parallelized reducing the number and overlap of memory accesses.
In some aspects, the encoder 402 may include a linear time-invariant (LTI) pre-filter 416 g(t) for pre-shaping the input signal 404 z(t) and generating a filtered signal 418:
y(t)=z(t)*g(t) (1)
The LTI pre-filter 416 may be referred to as a “sigma” or integrating filter. If the LTI pre-filter 416 is present, then the APM 400 may be referred to as an asynchronous pulse sigma-delta modulator (APSDM). If the LTI pre-filter 416 is absent, then y(t)=z(t) and the APM may be referred to as an asynchronous pulse delta modulator (APDM).
The encoder 402 also includes a quantizer 420, a signal generator 422 (which may be a pulse generator), and a reconstruction filter 424. The quantizer 420, the signal generator 422, and the reconstruction filter 424 in combination may be referred to as a generalized asynchronous pulse delta modulator (APDM) encoder that encodes changes or “deltas” in the filtered signal 418 y(t). The filtered signal 418 y(t) is supplied to an adder 428 and subtracted by a local reconstruction signal 426 ŷL(t) to generate a difference signal:
e(t)=y(t)−ŷL(t). (2)
The amplitude of the difference signal is quantized by the quantizer 420 yielding the signal 430:
{circumflex over (e)}(t)=Q[e(t)]. (3)
Though the signal e(t) may be continuous-valued, in some aspects, it may take on one or more discrete values. The quantizer 420 can also take a number of forms. For example, as described in more detail later, the quantizer can have one, two or multiple thresholds. The quantized difference signal 430 ê(t) is then passed through the signal generator 422 to produce the transmit signal 406:
s(t)=Σm=1Ma(m)p(t−Tm), (4)
where M represents the total number of output pulses generated by the encoder, p(t) represents the transmit pulse shape with unit energy, Tm is the time instant associated with the mth occurrence of a positive change (reaching or exceeding an upper threshold) and/or a negative change (reaching or exceeding a lower threshold) in ê(t) where mε[1,M] and T1<T2< . . . <TM, and a(m) is a scaling value or factor associated with the mth pulse. For example, a(m) may represent 1 or any positive or negative set of values (e.g., ±1, ±2).
In one aspect, the pulses may have large bandwidth that resembles an impulse function δ(t). These include pulses like sinc(Bt) where B>>1, the raised cosine pulse described later (with Bm>>1 and roll-factor of β) and a thin rectangular pulse
where T(p)<<1 and us(t) is the unit step function:
In some aspects, the transmit signal 406 may be viewed as a transformation of the time-instant sequence {T1, T2, . . . , TM} when thresholds are reached to a train of pulses. The transmit signal 406 may also be thought of as pulse time modulation, where each time instant determines the instant the pulse is generated.
The transmit signal 406 may then be fed back into the reconstruction filter 424 h(t) (also referred to as a Delta filter) to yield the reconstruction signal 426:
ŷ
L(t)=s(t)*h(t) (6)
ŷ
L(t)=Σm=1Ma(m)h(t−Tm). (7)
For continuous-time systems, a clock is not used and the signaling time instants {Tm|mε[1,M]} are continuous valued. On the other hand, for discrete-time systems which may use a clock, the signal time instants {Tm|mε[1,M]}, may be quantized (e.g., to the nearest 1 ms). This yields discrete-time versions of the APM 400.
In some aspects, the quantizer 420 and signal generator 422 may be combined if desired. Furthermore, a smoothing filter 432 (e.g., an anti-aliasing filter (AAF)) may be inserted prior to the pre-filter to remove out-of-band noise. The smoothing filter 432 may be a low-pass filter (LPF) or band-pass filter (BPF), for example. In some aspects, the bandwidth of the smoothing filter 432 may be set to approximate the bandwidth of z(t).
The quantizer 420 may be provided in a variety of configurations. For example, the quantizer 420 may be single-sided or double-sided. A single-sided quantizer may, for instance, include an upper-threshold quantizer (shown in
Upper-threshold quantizers may encode signals with a minimum value, which may, for instance, be zero. Upper-threshold quantizers may have a single threshold or multiple thresholds for quantization of input signals.
The difference signal is mapped to the quantized difference signal via:
such that ê(t)ε{0,a}, ê(t)=a if e(t)≧Δ/2 and ê(t)=0, otherwise where a>0 represents the quantized value. For ease of explanation, and without limitation, the scaling factor a may be set to 1. Accordingly, the quantizer 420 may produce transmit signals in the form of single positive-valued pulse trains scaled by a factor of a (e.g., similar to spikes in spiking neural networks) which may also be referred to as unipolar signaling or point processes. The transmit signals may be given by:
s(t)=aΣm=1Mδ(t−Tm). (9)
In some aspects, the design of the threshold value impacts the reconstruction filter design. In one example, a threshold value of Δ/2 and an h(t)ε[0,Δ] defined later may produce an e(t)
In another example, a threshold value of Δ and an h(t)ε[0,Δ] may produce e(t)ε[0,Δ]. The first approach results in smaller absolute values of the difference signal. This comment applies not only to the upper-threshold quantizers but to all quantizers described in this document.
The time instants {Tm|m=1, . . . , M} correspond to the instants that ê(t) is above or equal to the threshold.
Multiple positive thresholds can be introduced to handle input signals with fast positive-valued changes, where e(t)>>Δ/2, which can occur if e(t) changes quickly during a down-time or refractory period during which the encoder may not transmit (e.g., due to recharging of power resources). An example of a double-threshold single-sided quantizer is described below.
The difference signal is mapped to the quantized difference signal via:
such that ê(t)ε{0,a,2a}. This quantizer results in transmit signals in the form of two discrete-valued pulse trains. These result in transmit signals of the form:
s(t)=Σm=1Ma(m)δ(t−Tm), (11)
where a(m)ε{a,2a}. The time instants {Tm|m=1, . . . , M} correspond to the instants that ê(t) is above a threshold.
Lower-threshold quantizers are intended for encoding signals below a maximum value. For ease in explanation, we assume a maximum value of 0 such that the encoding is for non-positive signals. Lower-threshold quantizers may also have one or more thresholds for quantizing input signals.
The difference signal may be mapped to the quantized difference signal via:
such that ê(t)ε{0,−a} and ê(t)=−a if e(t)≦−Δ/2 and ê(t)=0, otherwise. The value a represents the quantized value (e.g., a=1). This quantizer results in transmit signals in the form of single negative-valued pulse trains that may be given by:
s(t)=−aΣm=1Mδ(t−Tm), (13)
where the time instants {Tm|m=1, . . . , M} correspond to the instants that ê(t) is below or equal to the threshold.
As with the upper-threshold threshold quantizers, multiple lower-threshold thresholds can be introduced to handle input signals with fast negative-valued changes, where e(t)<<−Δ/2.
The difference signal is mapped to the quantized difference signal via.
This results in transmit signals of the form:
s(t)=Σm=1Ma(m)δ(t−Tm), (15)
where a(m)ε{−a,−2a}. The time instants {Tm|m=1, . . . , M} correspond to the instants that ê(t) is below or equal to a thresholds.
A double-sided quantizer (e.g., shown in
The difference signal is mapped to the quantized difference signal via:
such that ê(t)ε{−a,0,a}. This quantizer results in transmit signals in the form of bipolar pulse trains:
s(t)=Σm=1Ma(m)δ(t−Tm), (17)
where a(m)ε{−a,a}. The time instants {Tm|m=1, . . . , M} correspond to the instants that ê(t) is either above or equal to the positive-valued threshold or below or equal to the negative-valued threshold.
Multiple threshold pairs can be introduced to handle fast changing input signals with |e(t)|>>Δ/2. An example of a double-sided double-threshold-pair quantizer is described below.
The difference signal is mapped to the quantized difference signal via:
such that ê(t)ε{0,a,2a}. This quantizer results in transmit signals in the form of bipolar pulse trains:
s(t)=Σm=1Ma(m)δ(t−Tm), (19)
where a(m)ε{−2a,−a,a,2a}. The time instants {Tm|m=1, . . . , M} correspond to the instants that ê(t) is either above or equal to a positive-valued threshold or below or equal to a negative-valued threshold.
If the quantizer 420 is single-sided, then the reconstruction filter 424 may be a decaying filter. A non-decaying reconstruction filter may result in reconstruction signals 426 that are either monotonically increasing for upper-threshold quantizers or monotonically decreasing for lower-threshold quantizers. If the quantizer 420 is double-sided, then either decaying or non-decaying reconstruction filters 424 may be used. A decaying reconstruction filter 424 may have continuous-values or discrete-values.
A non-decaying reconstruction filter may take on the impulse response:
where a scaling factor 1/a may be applied to remove the factor a in the transmit (or receive) signal and scaling factor Δ may be used to track the input signal by an amount matching that defined by the quantizer. In some aspects, Δ=a=1 such that h(t)=us(t).
In some configurations, an arbitrary decaying filter with continuous-valued impulse response may be used. For example, an arbitrary decaying filter may be used when the signal (e.g., input signal) tapers down to zero. In some aspects, the reconstruction filter may be selected based on the decay behavior of the input signal type. For example, for fast decaying input signals, reconstruction filters with fast decays to zero may be used. Otherwise, reconstruction filters with slow decays may be used. For signals with fast rises, reconstruction filters with fast rises may be employed. Otherwise, reconstruction filters with slow rises could be used.
A simple decaying reconstruction filter is the decaying exponential:
where τd represents the decay time constant and where us(t) represents the unit-step function such that us(t)=1 if t≧0 and us(t)=0, otherwise.
In some aspects, a reconstruction filter with a double exponential may be used. For example, for a smooth rise, rather than an abrupt jump, the double exponential filter may be given by:
where τr represents the rise time constant and the scaling coefficient A2exp is:
A
2exp
A
2exp,peak/(e−T
where A2exp,peak represents the peak magnitude of the double exponential (e.g., A2exp,peak=1) and:
In some aspects, decaying filters with discrete-values may be employed. In one example, the reconstruction filter has the form of a linear decaying staircase function with uniformly spaced discrete values.
The reconstruction filter may also have non-uniformly spaced discrete values and non-uniform durations for each discrete value. In one example, a reconstruction filter with decreasing step sizes adjusted in a telescoping fashion (factor of ½) which can be likened to a discrete-valued version of the decaying exponential may be used.
In still another aspect, the reconstruction filter may have an initial rise and a subsequent decay. For instance the reconstruction filter may initially rise and then have a decaying staircase function that can be likened to a discrete-valued version of the double exponential.
If the channel 410 is ideal (i.e., has no losses or noise), then the decoder 412 sees a received signal 414 equivalent to the transmit signal 406 such that r(t)=s(t).
With APDM and single-sided quantizers for encoding bounded signals, the reconstruction signal (or filter impulse response) may generally tend towards zero. Otherwise, signal encoding may not be possible. For example, APDM with an upper-threshold quantizer and reconstruction filter set to the unit-step function may only encode signals that increase with time and may not encode signals that also decrease with time. On the other hand, a reconstruction filter with a response that tends towards zero sufficiently fast may encode signals that also decay.
The decoder 412 may include a reconstruction filter (similar to the reconstruction filter 424), an inverse filter, and a smoothing filter 432 (e.g., an anti-aliasing filter (AAF)), which, in some aspects, may be configured in a different order and/or combined.
In the APM 400 of the present disclosure, there is an explicit solution for the decoder 412, rather than an estimated numerical solution for the impulse response.
The encoder 602 receives an input signal z(t). The input signal may be filtered via the pre-filter 608 and supplied to the ADM 610. The filtered input signal y(t) is supplied to the summer 428. The summer produces a difference signal e(t) that is provided to the upper-threshold quantizer 612. In the example of
When the difference signal (e(t)) crosses the single threshold level, the quantizer supplies a quantized signal to the pulse generator, which in turn generates pulses (s(t)) (e.g., spikes). The generated pulses (s(t)) may be transmitted to the decoder 604 via a channel 606. In some aspects, the transmitted pulses may be positive-valued changes. Notably, the pulses are transmitted on an event basis, (e.g., when the difference signal reaches a threshold level), and thus, the APM may be operated without the use of a clock. Accordingly, the APM may beneficially provide a reduction in computational complexity and power consumption.
The generated pulses are also provided to a reconstruction filter 616 (h(t)) which generates a reconstructed input signal ŷL(t). The reconstructed input signal is in turn supplied as feedback to the ADM 610 and used to compute the difference signal e(t).
The decoder 604 includes a reconstruction filter 616, an inverse filter 618 and a smoothing filter 620. The smoothing filter 620 may, for example, be an anti-aliasing filter. The smoothing filter 620 may reduce harmonics introduced by the quantizer 612 during quantization of the input signal.
The reconstruction signal ŷL(t) 704 may be produced via a double exponential reconstruction filter, such as that provided in equation (22), for example.
The middle graph 710 shows the difference signal e(t) 712 computed based on the input signal 702 and the reconstruction signal 704. In this example, the upper-threshold quantizer includes a single threshold
which is shown by way of the line 714. When the difference signal 712 reaches the threshold 714, a quantized difference signal is produced and provided to the pulse generator (e.g., 622). In the bottom graph 720, pulses generated by the pulse generator are shown. As such, when the difference signal 712 reaches the threshold, the pulse generator generates a corresponding transmit signal in the form of a pulse 722.
In this exemplary APM 800, the quantizer 820 encodes negative changes in the difference signal e(t) to generate transmit pulses that are negative valued. In some aspects, positive valued transmit pulses may be generated by setting the threshold value to a negative value and the reconstruction filter h(t) may be set to a negative value impulse function which tapers to zero from below.
The reconstruction signal ŷL(t) 904 may be produced via a double exponential reconstruction filter, such as that provided in equation (22), for example.
The middle graph 910 shows the difference signal e(t) 912 computed based on the input signal 902 and the reconstruction signal 904. In this example, the lower-threshold quantizer includes a single threshold
which is shown by way of line 914. When the difference signal 912 reaches the threshold line 914, a quantized difference signal is produced and provided to the pulse generator (e.g., 622). In the bottom graph 920, the output train of impulses generated by the pulse generator is shown. As such, when the difference signal 912 reaches the threshold, the pulse generator generates a corresponding transmit signal in the form of a pulse 922. In this example, the reconstructed signal ŷL(t) (904) and the output train of impulse functions (e.g., 922) are negative valued, which enables tracking of a negative valued input signal y(t) (902).
An additional benefit of using a decaying-type reconstruction filter (in place of the unit-step function) is provided with respect to false detection or missed transmissions. In these cases, the effect of the detection error at the decoder persists only for the time duration of the reconstruction filter response. In the case of the unit-step function, the error persists indefinitely (or until a reset of the system occurs) whereas, for finite duration filter responses or those with infinite durations, but where the majority of the energy (e.g. 99%) has a finite duration (such as the decaying exponential function), the error effectively persists for a finite time.
For example, if the input signal is in the positive region, a combination of the decaying filter and the negative-valued transmit pulses decreases the reconstructed signal value toward zero. In contrast, with a non-decaying reconstruction filter, only the negative transmit pulses would be able to lower the reconstruction signal. Only the positive valued transmit pulse pushes the reconstructed signal upwards. Likewise, if the input signal is in the negative region, a combination of the decaying filter and the positive-valued transmit pulses increases the reconstructed signal value toward zero. Only the negative-valued transmit pulse pushes the reconstructed signal downwards away from zero.
The reconstruction signal ŷL(t) 1104 may be produced via a double exponential reconstruction filter, such as that provided in equation (22), for example. Notably, the reconstructed signal decays toward zero.
The middle graph 1110 shows the difference signal e(t) 1112 computed based on the input signal 1102 and the reconstruction signal 1104. In this example, the double-sided quantizer includes a first threshold
and a second threshold
which is shown by way of lines 1114 and 1116, respectively. Although shown as having the same absolute value, the thresholds are not limited to −Δ/2 and Δ/2. For example, the thresholds may be differentially set (e.g., −Δ/2,Δ) or may be set to a different value (e.g., −Δ,Δ). Furthermore, one or both sides may also be configured with multiple thresholds if desired. When the difference signal 1112 reaches the threshold 1114, a quantized difference signal is produced and provided to the pulse generator (e.g., 622). Similarly, when the difference signal 1112 reaches the second threshold 1116, a quantized difference signal is produced and provided to the pulse generator (e.g., 622).
In the bottom graph 1120, the output train of bipolar impulses generated by the pulse generator is shown. As such, when the difference signal 1112 reaches the threshold (e.g., 1114 and 1116), the pulse generator generates a corresponding transmit signal in the form of a pulse 1122. In this example, the reconstructed signal ŷL(t) (1104) and the output train of impulse functions (e.g., 1122) are bipolar. That is, in contrast to either the lower-threshold (
) leaving only the smoothing filter. As such, the time for comparing of the input signal z(t) and the output signal s(t) may be reduced because the APM is operated without reconstructing the input signal.
In block 1404, an output signal is generated based on the comparing. In block 1406, the output signal is fed back into a reconstruction filter to create a reconstruction signal. In some aspects, the reconstruction filter may be a decaying reconstruction filter. In block 1408, the reconstruction signal is combined with the input signal.
In block 1504, an output signal is generated based on the comparing. In block 1506, the output signal is fed back into a decaying reconstruction filter to create a reconstruction signal. The reconstruction filter is other than a single decaying exponential. In block 1508, the reconstruction signal is combined with the input signal.
The various operations of methods described above may be performed by any suitable means capable of performing the corresponding functions. A device in accordance with an aspect of the present disclosure includes means for comparing an input signal with one or more positive threshold values and one or more negative threshold values. The comparing means may be, for example, the encoder 14, the quantizer 420, the quantizer 1020, and the quantizer 1320. Such a device also includes means for generating an output signal based on the comparing. The generating means may be, for example, the signal generator 422 as shown in
In another configuration, a device in accordance with an aspect of the present disclosure includes means for comparing an input signal with one or more threshold values. The comparing means may be, for example, the encoder 14, the quantizer 420, the quantizer 612, the quantizer 820, the quantizer 1020, and the quantizer 1320. Such a device also includes means for generating an output signal based on the comparing. The generating means may be, for example, the signal generator 422 as shown in
Optionally, the decoder 412, when it receives the received signal 414, can echo or otherwise return a signal to the encoder 402, for example, an “Acknowledgment” on a reverse channel. The acknowledgement may be configured to operate only on the first received signal 414 after a period of not receiving a signal (i.e., silence) for a pre-determined or periodic amount of time (e.g. >2 secs). The acknowledgement signal may also be requested by the encoder 402.
The thresholds Δ can be varied by the encoder 402 and the decoder 412 to adjust for the desired level of accuracy (also referred to as “reconstruction error”). If the thresholds are set to larger values, there will be a smaller correlation between the input signal 404 and the output signal 408. The threshold values may also be exchanged between the encoder 402 and the decoder 412 via an overhead signaling message.
The output signal can also be in the form of an address event representation (AER) packet that may include time-stamp information of the event (threshold crossing) and/or which threshold was crossed by the input signal. For example, in a bipolar quantizer, it can be indicated whether the positive or negative threshold was crossed.
As used herein, the term “determining” encompasses a wide variety of actions. For example, “determining” may include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Additionally, “determining” may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Furthermore, “determining” may include resolving, selecting, choosing, establishing and the like.
As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover: a, b, c, a-b, a-c, b-c, and a-b-c.
The various illustrative logical blocks, modules and circuits described in connection with the present disclosure may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array signal (FPGA) or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any commercially available processor, controller, microcontroller or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).
The steps of a method or algorithm described in connection with the present disclosure may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in any form of storage medium that is known in the art. Some examples of storage media that may be used include random access memory (RAM), read only memory (ROM), flash memory, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, a hard disk, a removable disk, a CD-ROM and so forth. A software module may comprise a single instruction, or many instructions, and may be distributed over several different code segments, among different programs, and across multiple storage media. A storage medium may be coupled to a processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is specified, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
The functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in hardware, an example hardware configuration may comprise a processing system in a device. The processing system may be implemented with a bus architecture. The bus may include any number of interconnecting buses and bridges depending on the specific application of the processing system and the overall design constraints. The bus may link together various circuits including a processor, machine-readable media, and a bus interface. The bus interface may be used to connect a network adapter, among other things, to the processing system via the bus. The network adapter may be used to implement signal processing functions. For certain aspects, a user interface (e.g., keypad, display, mouse, joystick, etc.) may also be connected to the bus. The bus may also link various other circuits such as timing sources, peripherals, voltage regulators, power management circuits, and the like, which are well known in the art, and therefore, will not be described any further.
The processor may be responsible for managing the bus and general processing, including the execution of software stored on the machine-readable media. The processor may be implemented with one or more general-purpose and/or special-purpose processors. Examples include microprocessors, microcontrollers, DSP processors, and other circuitry that can execute software. Software shall be construed broadly to mean instructions, data, or any combination thereof, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Machine-readable media may include, by way of example, random access memory (RAM), flash memory, read only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable Read-only memory (EEPROM), registers, magnetic disks, optical disks, hard drives, or any other suitable storage medium, or any combination thereof. The machine-readable media may be embodied in a computer-program product. The computer-program product may comprise packaging materials.
In a hardware implementation, the machine-readable media may be part of the processing system separate from the processor. However, as those skilled in the art will readily appreciate, the machine-readable media, or any portion thereof, may be external to the processing system. By way of example, the machine-readable media may include a transmission line, a carrier wave modulated by data, and/or a computer product separate from the device, all which may be accessed by the processor through the bus interface. Alternatively, or in addition, the machine-readable media, or any portion thereof, may be integrated into the processor, such as the case may be with cache and/or general register files. Although the various components discussed may be described as having a specific location, such as a local component, they may also be configured in various ways, such as certain components being configured as part of a distributed computing system.
The processing system may be configured as a general-purpose processing system with one or more microprocessors providing the processor functionality and external memory providing at least a portion of the machine-readable media, all linked together with other supporting circuitry through an external bus architecture. Alternatively, the processing system may comprise one or more neuromorphic processors for implementing the neuron models and models of neural systems described herein. As another alternative, the processing system may be implemented with an application specific integrated circuit (ASIC) with the processor, the bus interface, the user interface, supporting circuitry, and at least a portion of the machine-readable media integrated into a single chip, or with one or more field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gated logic, discrete hardware components, or any other suitable circuitry, or any combination of circuits that can perform the various functionality described throughout this disclosure. Those skilled in the art will recognize how best to implement the described functionality for the processing system depending on the particular application and the overall design constraints imposed on the overall system.
The machine-readable media may comprise a number of software modules. The software modules include instructions that, when executed by the processor, cause the processing system to perform various functions. The software modules may include a transmission module and a receiving module. Each software module may reside in a single storage device or be distributed across multiple storage devices. By way of example, a software module may be loaded into RAM from a hard drive when a triggering event occurs. During execution of the software module, the processor may load some of the instructions into cache to increase access speed. One or more cache lines may then be loaded into a general register file for execution by the processor. When referring to the functionality of a software module below, it will be understood that such functionality is implemented by the processor when executing instructions from that software module.
If implemented in software, the functions may be stored or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media include both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. In addition, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared (IR), radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray® disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Thus, in some aspects computer-readable media may comprise non-transitory computer-readable media (e.g., tangible media). In addition, for other aspects computer-readable media may comprise transitory computer-readable media (e.g., a signal). Combinations of the above should also be included within the scope of computer-readable media.
Thus, certain aspects may comprise a computer program product for performing the operations presented herein. For example, such a computer program product may comprise a computer-readable medium having instructions stored (and/or encoded) thereon, the instructions being executable by one or more processors to perform the operations described herein. For certain aspects, the computer program product may include packaging material.
Further, it should be appreciated that modules and/or other appropriate means for performing the methods and techniques described herein can be downloaded and/or otherwise obtained by a user terminal and/or base station as applicable. For example, such a device can be coupled to a server to facilitate the transfer of means for performing the methods described herein. Alternatively, various methods described herein can be provided via storage means (e.g., RAM, ROM, a physical storage medium such as a compact disc (CD) or floppy disk, etc.), such that a user terminal and/or base station can obtain the various methods upon coupling or providing the storage means to the device. Moreover, any other suitable technique for providing the methods and techniques described herein to a device can be utilized.
It is to be understood that the claims are not limited to the precise configuration and components illustrated above. Various modifications, changes and variations may be made in the arrangement, operation and details of the methods and apparatus described above without departing from the scope of the claims.
The present application claims the benefit of U.S. Provisional Patent Application No. 62/015,739, filed on Jun. 23, 2014, and titled “ASYNCHRONOUS PULSE MODULATION FOR THRESHOLD-BASED SIGNAL CODING,” the disclosure of which is expressly incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62015739 | Jun 2014 | US |