Current limiting apparatus for driving a loudspeaker
20250373208 ยท 2025-12-04
Inventors
Cpc classification
H03F2200/211
ELECTRICITY
H03F2200/426
ELECTRICITY
International classification
Abstract
A method for use with a sound system (called plant in control theory) including a loudspeaker set, the method comprising: obtaining input audio samples and a measured current drawn by the loudspeaker set; generating, for a current time step, using a state-space model of the loudspeaker set, a state vector and a model-based estimated current; generating, based on the state vector, a predicted current for a next time step; generating, for the current time step, a replacement audio sample based on the state vector; generating a feedback signal that contributes to the generation of the state vector for the next time step based on the measured current and a time-aligned model-based estimated current; generating an output audio sample for the current time step, wherein the output audio sample is either the input audio sample for the current time step or the replacement audio sample when the predicted current is higher in magnitude than a threshold.
Claims
1. A device for use with a plant including a loudspeaker set, wherein the device is configured to receive input audio samples and a measured current drawn by the loudspeaker set and to generate an output audio sample for a current time step, the device comprising: a modelling circuitry configured to generate, for the current time step, using a state-space model of the loudspeaker set and from the output audio sample, a state vector and a model-based estimated current of the current drawn by the loudspeaker set; a prediction circuitry configured to generate, based on the state vector, a predicted current for a next time step; a limiting circuitry configured to generate, for the current time step, a replacement audio sample based on the state vector, wherein the replacement audio sample is such that the magnitude of the current drawn by the loudspeaker set is limited to a maximum value; a state feedback controller configured to generate a feedback signal that is fed to the state-space model to contribute to the generation of the state vector for the next time step, wherein the feedback signal that is based on a comparison between the measured current and a time-aligned model-based estimated current; wherein the output audio sample is either the input audio sample for the current time step or the replacement audio sample when the predicted current is higher in magnitude than a threshold.
2. The device according to claim 1, wherein the prediction circuitry is configured to generate the predicted current based on one or more input audio samples.
3. The device according to claim 1 or 2, wherein the prediction circuitry is configured to generate the predicted current based on an estimated audio sample for the next time step or the input audio sample for the next time step.
4. The device according to claim 1, wherein the limiting circuitry is configured to generate the replacement audio sample based on a model derived from the state-space model.
5. The device according to claim 1, wherein the limiting circuitry is configured to generate the replacement audio sample based on the threshold representing a maximum current.
6. The device according to claim 1, wherein the replacement audio sample u.sub.L,n is generated such that the magnitude of the predicted current is equal to the threshold.
7. The device according to claim 1, wherein the replacement audio sample u.sub.L,n is generated based on the sign of the predicted current.
8. The device according to claim 1, wherein the replacement audio sample u.sub.L,n is generated based on an output sample u.sub.n1 for a previous time step.
9. A method for use with a plant including a loudspeaker set, the method comprising obtaining input audio samples and a measured current drawn by the loudspeaker set; generating an output audio sample for a current time step; generating, for the current time step, using a state-space model of the loudspeaker set and from the output audio sample, a state vector and a model-based estimated current of the current drawn by the loudspeaker set; generating, based on the state vector, a predicted current for a next time step; generating, for the current time step, a replacement audio sample based on the state vector, wherein the replacement audio sample is such that the magnitude of the current drawn by the loudspeaker set is limited to a maximum value; generating a feedback signal that is fed to the state-space model to contributes to the generation of the state vector for the next time step, wherein the feedback signal is based on a comparison between the measured current and a time-aligned model-based estimated current; wherein the output audio sample is either the input audio sample for the current time step or the replacement audio sample when the predicted current is higher in magnitude than a threshold.
10. A computer program comprising computer-executable instructions that, when executed by at least one processor of a device for use with a plant including a loudspeaker set, causes the device to perform: obtaining input audio samples and a measured current drawn by the loudspeaker set; generating an output audio sample for a current time step; generating, for the current time step, using a state-space model of the loudspeaker set and from the output audio sample, a state vector and a model-based estimated current of the current drawn by the loudspeaker set; generating, based on the state vector, a predicted current for a next time step; generating, for the current time step, a replacement audio sample based on the state vector, wherein the replacement audio sample is such that the magnitude of the current drawn by the loudspeaker set is limited to a maximum value; generating a feedback signal that is fed to the state-space model to contributes to the generation of the state vector for the next time step, wherein the feedback signal is based on a comparison between the measured current and a time-aligned model-based estimated current; wherein the output audio sample is either the input audio sample for the current time step or the replacement audio sample when the predicted current is higher
11.-14. (canceled)
15. A system including a device according to any of claims 1 to 8, the system comprising a database configured to store model coefficients of state-space models for several loudspeaker sets and means for loading the model coefficients corresponding to the loudspeaker set.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Example embodiments will become more fully understood from the detailed description given herein below and the accompanying drawings, which are given by way of illustration only and thus are not limiting of this disclosure.
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031] It should be noted that these drawings are intended to illustrate various aspects of devices, methods and structures used in example embodiments described herein. The use of similar or identical reference numbers in the various drawings is intended to indicate the presence of a similar or identical element or feature.
DETAILED DESCRIPTION
[0032] Various example embodiments will now be described more fully with reference to the accompanying drawings in which some example embodiments are shown. However, specific structural and/or functional details disclosed herein are merely representative for purposes of describing example embodiments. Accordingly, these embodiments are shown by way of illustrative examples in the drawings and will be described herein in detail so as to provide a thorough understanding of the various aspects. However, it will be understood by one of ordinary skill in the art that example embodiments are capable of various modifications and alternative forms and may be practiced without all the specific details. In addition, systems and processes may be shown in block diagrams so as not to obscure the example embodiments in unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the example embodiments.
[0033] An audio system including a current limiting device will be described in detail. The current limiting device implements a prediction algorithm that predicts the current drawn by a loudspeaker set (e.g. including one or more loudspeakers) based on a model of the loudspeaker set. A replacement output voltage (corresponding to a sample value produced by the limiting device, also referred to herein as the replacement audio sample) is generated such that the magnitude of the drawn current does not exceed a specified threshold. The replacement output voltage (i.e. the replacement audio sample) is output to the plant in replacement of the output voltage of the audio source when the magnitude of the predicted current is higher than the specified threshold. The current drawn by the loudspeaker is limited to a maximum value and the replacement output voltage is determined on the basis of the limited current.
[0034]
[0035] The sound system or plant 125 includes a signal chain that may itself include: a digital to analog converter (DAC) and an amplifier stage 119, followed by a loudspeaker set 120, a current measurement device 121 generating a measured current including an analog to digital converter (ADC) delivering the measured current to the current limiting device 100. The loudspeaker set 120 may comprise one or more loudspeakers, e.g. loudspeakers of the same type connected in parallel that can be modeled using a single model. The loudspeaker set 120 may alternately comprise at least one low frequency loudspeaker and at least one high frequency loudspeaker (e.g. a woofer and a tweeter) connected by a passive cross-over network to the output of the amplifier. For a good understanding of the time alignment aspects, the schematic of
[0036] In the example of
[0037] The audio source 110 generates an audio signal that may be an analog or digital audio signal. If the audio signal is an analog audio signal, this analog audio signal is converted (e.g. by an analog to digital converter, not represented) to digital samples referred herein to as the input audio samples r.sub.n, n=1 to N. If the audio signal is a digital audio signal, we assume here that it includes the input audio samples r.sub.n, n=1 to N.
[0038] The current limiting device 100 receives from the audio source 110 as input signal the input audio samples r.sub.n, n=1 to N and generates output audio samples u.sub.n, n=1 to N that are converted (e.g. by a digital to analog converter, included in the amplifier stage represented as 119) to an analog signal to be played by the loudspeaker set 120. The input audio samples r.sub.n represent the output voltage at the output of the audio source. The output audio samples represent an output voltage which is applied inside the plant 125 to drive the loudspeaker set 120 such that the loudspeaker set 120 draws a current, referred to herein as the drawn current.
[0039] The current limiting device 100 may be implemented by signal processing circuitry configured to perform one or more or all steps and/or functions disclosed herein for the current limiting device 100. The current limiting device 100 may include or be sub-divided into one or more devices and/or signal processing circuits.
[0040] The signal processing circuitry may include at least one DSP, Digital Signal Processing, circuitry. The signal processing circuitry may include at least one processor and at least one memory including computer program code, wherein the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus to perform one or more or all steps and/or functions disclosed herein for the current limiting device 100.
[0041] In the solution described herein, a prediction algorithm is used to predict and limit the current drawn by the loudspeaker set 120 using a replacement output voltage in replacement of the output signal at the output of the audio source 110, that is converted into a voltage and amplified by the amplification stage 119 and applied to the loudspeaker set 120.
[0042] The prediction algorithm is based on a loudspeaker set model implemented by the modelling device 130 connected to the output of the audio source 110 via a selector 160. The loudspeaker set model is a model of the driven loudspeaker set 120. A state-space model that corresponds to an electrical equivalent circuit of the loudspeaker set may for example be used as loudspeaker set model as will be described in detail.
[0043] The prediction device 150 is configured to implement the prediction algorithm to generate a predicted current y.sub.e,n+1. The prediction device 150 receives as input one or more input audio samples r.sub.n, n=1 to N, where the index n represents a time step index, e.g. with respect a clock signal. The prediction algorithm may use the available input audio samples (e.g. a current sample r.sub.n and a previous sample r.sub.n1). The prediction algorithm may use the next input audio sample if available or at least one predicted sample r.sub.n+1 for a next time step obtained from one or more input audio samples. The predicted r.sub.n+1 sample may for example be generated by using 2 or more input audio samples (e.g. r.sub.n1 and r.sub.n, n=1 to N). The prediction device 150 receives as input a state vector x.sub.n from the modelling device 130 to generate at a given time step a predicted current y.sub.e,n+1 for a next time step.
[0044] The state-space model is synchronized with the plant 125 by using a feedback error e.sub.n-d fed to a state feedback controller 135 of the state-space model 130. The feedback error e.sub.n-d is generated based on the measured current (m.sub.n-d) and a time-aligned model-based estimated current (y.sub.n-d). The feedback error e.sub.n-d may be generated as the difference between the measured current (m.sub.n-d) and the time-aligned model-based estimated current (y.sub.n-d). The state feedback controller 135 is configured to generate a feedback signal (f.sub.n) that contributes to the generation of the state vector for next time step. This feedback signal may be a feedback vector that is added to the state vector at a current time step to generate, based on the state space model the state vector for the next time step.
[0045] The limiting device 140 is configured to implement a limiter function. The limiting device 140 receives a state vector x.sub.n from the modelling device 130 and generates a replacement audio sample u.sub.L,n, n=1 to N based on a derived model, resulting from a mathematical conversion of the loudspeaker set model. The coefficients of the derived model are based on the coefficients of the loudspeaker set model. The replacement audio sample u.sub.L,n represents a replacement audio signal different from the input audio signal (i.e. the input audio sample r.sub.n) representing the audio content to be played and may be used in replacement of the corresponding input audio sample r.sub.n to avoid that the magnitude of the current drawn by the loudspeaker set 120 is above a threshold.
[0046] Also the magnitude of the current drawn by the loudspeaker set 120 applying the replacement output sample uun is less than the magnitude of the current drawn by the loudspeaker set 120 of the corresponding input audio sample r.sub.n, if it would be applied to the amplifier stage 119. The word magnitude used herein to designate the absolute value of the instantaneous amplitude of a time varying signal (e.g. current signal). By convention, the magnitude is always a positive or null value.
[0047] The replacement audio signal u.sub.L,n allows to maintain the magnitude of the drawn current y.sub.n to a maximum value I.sub.max until the input audio signal will lead to a lower drawn current again. Because the replacement audio signal is also provided to the amplifier stage 119 where it is converted to a voltage driving the loudspeaker set 120, the drawn current by the loudspeaker set is also limited to the maximum value I.sub.max inside the sound system or plant 125. Note that the sign of the drawn current y.sub.n may be positive or negative such that the drawn current y.sub.n may be maintained to +/I.sub.max.
[0048] The threshold decision device 155 receives the predicted current y.sub.e,n+1 and compares the magnitude (or the absolute value) of it with a threshold I.sub.max (i.e. maximum value) to generate a control signal for the selector 160. At each time step n, depending on the control signal generated based on the predicted current y.sub.e,n+1, the selector 160 delivers u.sub.n as output of the current limiting device 100, wherein u.sub.n is: [0049] either a replacement audio sample u.sub.L,n received from the limiting device 140 if the magnitude of the predicted current y.sub.e,n+1 is higher than the current threshold I.sub.max; [0050] or the input audio sample r.sub.n received from the audio source if the magnitude of the predicted current y.sub.e,n+1 is lower than the threshold I.sub.max;
When the magnitude of the predicted current y.sub.e,n+1 is equal to the threshold I.sub.max, either the replacement audio sample u.sub.L,n or the input audio sample r.sub.n may be used.
[0051] Based on the above features, the current limiting device 100 is able to predict an increase of the magnitude of the drawn current over a maximum value and to correct the output signal u.sub.n fed to the plant before this maximum value is reached.
[0052] The reason why a prediction is used (as opposed to simply using a measured current m.sub.n directly to feed a limiting algorithm) is that the sampling of the drawn current and its transfer to the current limiting device 100 would take time (one or more time steps), and such a delay would limit the ability to react in a timely fashion. Further, a state-space model allows to predict the next samples ahead of time (even when using block processing as described herein), that is at least one sample ahead of the current sample.
[0053] The state-space model is a fixed linear model. Even if this model slightly differs from the loudspeaker set in the plant, the feedback signal allows the model state to keep in sync with the actual state of the loudspeaker set.
[0054] Further, with this prediction algorithm, the simpler hardware protection circuit (e.g. a protection circuit that just switches off and restarts the audio power amplifier) may be used and is acceptable, because the current limiting device allows to prevent the trigger of this protection circuit during normal operation.
[0055]
[0056]
[0057] When setting the amplitude of this current source to +/I.sub.max corresponding to the target maximum value for the magnitude of the drawn current y.sub.n, the output voltage u.sub.n is obtained at the driving node of the current source. The relationship between the output voltage u.sub.n and the drawn current y.sub.n is given by the loudspeaker set model such that the output voltage u.sub.n allows to obtain the target maximum value for the magnitude of the drawn current can be determined from the loudspeaker set model and the state vector x.sub.n of the loudspeaker set model.
[0058]
[0059] In the example of
[0062] The audio input r.sub.n is copied to device's input u.sub.n unless current limiting occurs. The following computations are performed at each time step:
[0063] Note that the sign of i.sub.max is the same as the sign of y.sub.e,n+1. The index e indicates that the concerned parameter is an estimate for the next time step n+1.
[0064] To improve the accuracy of a loudspeaker set model, a closed-loop controlled model may be used such that a measurement m.sub.n-d of the current drawn by the loudspeaker set is available and compared with the current y.sub.n-d generated by the loudspeaker set model to generate a feedback error e.sub.n-d. The feedback error may be obtained after a delay d expressed in number of time steps. This delay may correspond to a number of time steps after which the measured current m.sub.n-d is obtained: a corresponding delay line of d time steps is then applied to the current y.sub.n to generate a time-aligned model-based estimated current y.sub.n-d and the feedback error e.sub.n-d. The vector state x.sub.n of the loudspeaker set model is updated based on the feedback error e.sub.n-d. This closed loop is illustrated in the block diagram of
[0065] The measured current m.sub.n can be obtained for example by a current probe and sampled by an analog-to-digital converter (ADC) (121) and provided to the current limiting device. The prediction algorithm allows to react in a timely fashion to a possible future current. The state-space model allows to predict a next sample ahead of time (one time step ahead of time) and, when this state-space model is used in a closed-loop, the measurement is used to keep the model state variables in sync with the actual loudspeaker set (see
[0066] Back to
[0073] In one or more examples, the loudspeaker set 120 connected to the amplifier (119) may be detected. This could be done automatically at runtime. For that purpose, the audio system 190 may include means for detecting the loudspeaker set connected to the amplifier 119 inside the sound system (125). The means for detecting the loudspeaker set may perform the detection of the loudspeaker set based on a measurement of the impedance of the connected loudspeaker set.
[0074] The current limiting device 100 may include means for loading the model coefficients corresponding to the detected loudspeaker set. The equivalent electrical circuit itself may also be selected for the detected loudspeaker set and used to calculate the coefficients of the loudspeaker set model to be implemented by the current limiting device 100. The loading of the model coefficients from the database may be performed when the audio system 190 is switched on or in response to a change of loudspeaker.
[0075]
[0076] In the example of
[0077] The description made by reference to
[0078] The current limiting device 500 works as follows.
[0079] The prediction device 550 receives at least one input audio sample r.sub.n and a state vector x.sub.n. The prediction device 550 generates based on the coefficients of the loudspeaker set model an estimated state vector x.sub.e,n+1 from the input audio sample r.sub.n and a state vector x.sub.n:
where . represents a matrix product.
[0080] The prediction device 550 generates an estimated audio sample r.sub.e,n+1 from one or more input audio samples:
[0081] The prediction device 550 generates a predicted current y.sub.e,n+1 from the estimated state vector x.sub.e,n+1 and the estimated audio sample r.sub.e,n+1:
[0082] The limiting device 540 receives the output audio sample u.sub.n and a state vector x.sub.n. The limiting device 540 is configured to generate a replacement audio sample u.sub.L,n from a current state vector x.sub.n of the loudspeaker set and the sign of the predicted current y.sub.e,n+1. The replacement audio sample u.sub.L,n is such that the magnitude of the predicted current is equal to a threshold I.sub.max:
The sign function can be defined as:
Depending on the hardware and/or software platform, the function sign {0} may return 0 or 1. The herein described method works with both options.
where the matrix M=(C.Math.B+(1+).Math.D).sup.1 and A is a scalar such that 01. The scalar A is used to control the control feedback strength and the voltage smoothing on the previous output sample u.sub.n1. If =0, the previous input sample u.sub.n1 is not taken into account. A good tradeoff between voltage smoothing and control feedback strength is achieved with =0.5.
[0083] The selector 560 is configured to select either the replacement audio sample u.sub.L,n or the input audio sample r.sub.n to generate an output sample u.sub.n.
[0084] The threshold decision device 555 is configured to compare the predicted current y.sub.e,n+1 with a threshold I.sub.max and to control the selector 560 such that the output sample u.sub.n is replaced by the replacement audio sample u.sub.L,n when the predicted current y.sub.e,n+1 is higher than the threshold I.sub.max (i.e. if |y.sub.e,n+1|>I.sub.max) If the predicted current y.sub.e,n+1 is lower than the threshold I.sub.max, the output sample u.sub.n is equal to the input audio sample r.sub.n. In case of equality, any of the replacement audio sample u.sub.L,n and the input audio sample r.sub.n may be used.
[0085] The modelling device 530 is configured to update the state vector x.sub.n+1 and to calculate the current y.sub.n drawn by the loudspeaker set. The drawn current is calculated as:
[0086] In the feedback loop, the feedback error may be calculated as:
where m.sub.n-d is the measured current at time step n-d, y.sub.n-d is the time-aligned version of the model-based estimated current y.sub.n at time step n-d and d is the measurement delay in time steps.
[0087] Finally the state vector is updated for a next time step by taking into account a feedback signal (here, a feedback vector L.Math.e.sub.n-d) generated by the state feedback controller: the next state vector x.sub.n+1 may be calculated as:
[0088] The coefficients of the vectors/matrices A, B, C, D, M, L may pre-calculated for each loudspeaker set model. The equivalent electrical circuit shown by
[0089] Note that in this implementation, the equivalent electrical circuit of
[0090] The method described above aims to limit the drawn current using a one-time-step look-ahead. Estimating the predicted current y.sub.e,n+1 and then calculating the output voltage u.sub.n reduces abrupt voltage changes and unwanted high frequency content.
[0091]
[0092]
[0093]
[0094] In embodiments, a device is configured to receive input audio samples and a measured current drawn by the loudspeaker set, the device comprising: a modelling device configured to generate, for a current time step, using a state-space model of the loudspeaker set, a state vector and a model-based estimated current; a prediction device configured to generate, based on the state vector, a predicted current for a next time step; a limiting device configured to generate, for the current time step, a limited audio sample based on the state vector; a state feedback controller configured to generate a feedback signal that contributes to the generation of the state vector for the next time step and is based on the measured current and a time-aligned model-based estimated current; wherein the device is configured to generate an output audio sample for the current time step, wherein the output audio sample is either the input audio sample for the current time step or the limited audio sample when the predicted current is higher in magnitude than a threshold.
[0095] It should be appreciated by those skilled in the art that any functions, engines, block diagrams, flow diagrams, state transition diagrams, flowchart and/or data structures described herein represent conceptual views of illustrative circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processing apparatus, whether or not such computer or processor is explicitly shown.
[0096] Although a flow chart may describe operations as a sequential process, many of the operations may be performed in parallel, concurrently, or simultaneously. Also, some operations may be omitted, combined, or performed in different order. A process may be terminated when its operations are completed but may also have additional steps not disclosed in the figure or description. A process may correspond to a method, function, procedure, subroutine, subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.
[0097] Each described function, engine, block, step described herein can be implemented in hardware, software, firmware, middleware, microcode, or any suitable combination thereof.
[0098] In the present description, the wording means for performing a function or means configured to perform a function may correspond to one or more functional blocks comprising circuitry that is adapted for performing or configured to perform this function. The block may perform itself this function or may cooperate and/or communicate with other one or more blocks to perform this function. The means may correspond to or be implemented as one or more modules, one or more devices, one or more units, etc. The means may include at least one processor, at least one memory storing instructions configured to cause a target device/system to perform the concerned function.
[0099] The current limiting device may be implemented by software and/or hardware.
[0100] When implemented in software, the current limiting device may be implemented by circuitry (e.g., one or more circuits). Several types of circuitries may be used: digital signal processor (DSP) hardware, processor or microprocessor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), etc. The circuitry may be or include, for example, hardware, programmable logic, a programmable processor that executes software or firmware, and/or any combination thereof (e.g., a processor, control unit/entity, controller) to execute instructions or software and control transmission and receptions of signals, and a memory to store data and/or instructions.
[0101] When implemented in software, firmware, middleware or microcode, instructions to perform the necessary tasks may be stored in a computer readable medium that may be or not included in a target device or system. The instructions may be transmitted over the computer-readable medium and be loaded onto the target device or system. The instructions are configured to cause the target device/system to perform one or more functions disclosed herein. For example, as mentioned above, according to one or more examples, at least one memory may include or store instructions, the at least one memory and the instructions may be configured to, with at least one processor, cause the target device/system to perform the one or more functions. Additionally, the processor, memory, and instructions, serve as means for providing or causing performance by the target device/system of one or more functions disclosed herein.
[0102] The instructions may correspond to computer program instructions, computer program code and may include one or more code segments. A code segment may represent a procedure, function, subprogram, program, routine, subroutine, module, software package, class, or any combination of instructions, data structures or program statements.
[0103] When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. The term processor should not be construed to refer exclusively to hardware capable of executing software and may implicitly include one or more processing circuits, whether programmable or not. A processing circuit may correspond to a digital signal processor (DSP), a network processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a System-on-Chips (SoC), a Central Processing Unit (CPU), a Processing Unit (CPU), an arithmetic logic unit (ALU), a programmable logic unit (PLU), a processing core, a programmable logic, a microprocessor, a controller, a microcontroller, a microcomputer, any device capable of responding to and/or executing instructions in a defined manner and/or according to a defined logic. Other hardware, conventional or custom, may also be included. A processor may be configured to execute instructions adapted for causing the performance by a target device or system of one or more functions disclosed herein for the concerned device or system.
[0104] A computer readable medium or computer readable storage medium may be any storage medium suitable for storing instructions readable by a computer or a processor. A computer readable medium may be more generally any storage medium capable of storing and/or containing and/or carrying instructions and/or data. A computer-readable medium may be a portable or fixed storage medium. A computer readable medium may include one or more storage device like a permanent mass storage device, magnetic storage medium, optical storage medium, digital storage disc (CD-ROM, DVD, Blue Ray, etc.), USB key or dongle or peripheral, memory card, random access memory (RAM), read only memory (ROM), core memory, flash memory, or any other non-volatile storage.
[0105] A memory suitable for storing instructions may be a random-access memory (RAM), read only memory (ROM), and/or a permanent mass storage device, such as a disk drive, memory card, random access memory (RAM), read only memory (ROM), core memory, flash memory, or any other non-volatile storage.
[0106] Although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of this disclosure. As used herein, the term and/or, includes any and all combinations of one or more of the associated listed items.
[0107] When an element is referred to as being connected or coupled to another element, it can be directly connected or coupled to the other element or intervening elements may be present. By contrast, when an element is referred to as being directly connected or directly coupled to another element, there are no intervening elements present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., between, versus directly between, adjacent, versus directly adjacent, etc.).
[0108] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms a, an, and the, are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms comprises, comprising, includes, and/or including, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
[0109] Specific details are provided in the following description to provide a thorough understanding of some examples. However, it will be understood by one of ordinary skill in the art that example embodiments may be practiced without these specific details disclosed for illustrative purposes. For example, systems may be shown in block diagrams so as not to obscure the examples in unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the examples.
[0110] Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments of the invention. However, the benefits, advantages, solutions to problems, and any element(s) that may cause or result in such benefits, advantages, or solutions, or cause such benefits, advantages, or solutions to become more pronounced are not to be construed as a critical, required, or essential feature or element of the invention.