1. Field
The present invention relates generally to transmit signal leakage. More specifically, the present invention relates to systems, devices, and methods for mitigating the effects of transmit signal leakage in a wireless full-duplex communication system.
2. Background
A wireless device in a wireless full-duplex communication system can simultaneously transmit and receive data for two-way communication. One such full-duplex system is a Code Division Multiple Access (CDMA) system. On a transmit path, a transmitter within the wireless device may modulate data onto a radio-frequency (RF) carrier signal to generate an RF modulated signal and amplify the RF modulated signal to obtain a transmit signal having the proper signal level. The transmit signal may be routed via a duplexer and transmitted from an antenna to one or more base stations. On a receive path, a receiver within the wireless device may obtain a received signal via the antenna and duplexer and amplify, filter, and frequency down-convert the received signal to obtain baseband signals, which are further processed to recover data transmitted by the base station(s).
For a full-duplex wireless device, the RF circuitry in the receiver is often subjected to interference from the transmitter. For example, a portion of the transmit signal typically leaks from the duplexer to the receiver, and the leaked signal (which is commonly referred to as a “transmit leakage” signal or a “transmit signal leakage”) may cause interference to a desired signal within the received signal. Since the transmit signal and the desired signal typically reside in two different frequency bands, the TX leakage signal can normally be filtered out. However, at large transmit signal power levels and using practical small size RF filters, a residual transmit leakage signal may be present at the receiver. Additionally, any transmit leakage signal may interact with a “jammer” (which is a large amplitude undesired signal close in frequency to the desired signal) to generate “cross modulation” distortion components. Distortion components that fall within the signal band of the desired signal and which are not filtered out act as additional noise that may degrade performance.
A need exists for mitigating the effects of transmit signal leakage. More specifically, a need exists for systems, devices, and methods for mitigating the effects of transmit signal leakage in a wireless full-duplex communication system.
a) is a plot illustrating a measured transmit leakage signal and a reconstructed transmit leakage signal of a transceiver including single-tap adaptive filter.
b) is a plot illustrated a residual signal after transmit signal leakage cancellation within a single-tap adaptive filter.
a)-7(c) are plots illustrating various signals related to an operation of a coupler, according to an exemplary embodiment of the present invention.
The detailed description set forth below in connection with the appended drawings is intended as a description of exemplary embodiments of the present invention and is not intended to represent the only embodiments in which the present invention can be practiced. The term “exemplary” used throughout this description means “serving as an example, instance, or illustration,” and should not necessarily be construed as preferred or advantageous over other exemplary embodiments. The detailed description includes specific details for the purpose of providing a thorough understanding of the exemplary embodiments of the invention. It will be apparent to those skilled in the art that the exemplary embodiments of the invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the novelty of the exemplary embodiments presented herein.
Exemplary embodiments, as described herein, are directed to devices, systems, and methods for mitigating transmit signal leakage effects within a transceiver of a wireless full-duplex communication system. According to various exemplary embodiments, as described herein, a transceiver may include a transmitter, a receiver, and a multi-tap adaptive filter. The multi-tap adaptive filter may be coupled to each of the transmitter and the receiver and configured to generate an estimated transmit leakage signal based on at least a portion of a transmit signal from the transmitter and an error signal from the receiver. Other aspects, as well as features and advantages of various aspects, of the present invention will become apparent to those of skill in the art though consideration of the ensuing description, the accompanying drawings and the appended claims.
Within a receive path, a receive signal containing a desired signal and possibly a jammer is received via antenna 118, routed through duplexer 116, and provided to a low-noise amplifier (LNA) 122 within a receiver 120. LNA 122 also receives a transmit leakage signal from the transmit path, amplifies the receiver input signal at its input, and provides an amplified RF signal to filter 130. Filter 130 receives and filters the amplified RF signal to attempt to remove out of band signal components (e.g., the transmit leakage signal) and provides a filtered RF signal to a mixer 132. Mixer 132 receives and frequency down-converts the filtered RF signal with a local oscillator (LO) signal and provides a down-converted signal.
On a receive path, a received signal, is received via antenna 315, routed through duplexer 312, and provided to coupler 360 within a receive path 303. It is noted that the signal provided to coupler 360 from duplexer 312 may also possibly include transmit signal leakage TxL from the transmit path and noise. Accordingly, the signal provided to coupler 360 and originating from duplexer 312 may be referred to herein as a “composite signal.” Coupler 360 may be configured to receive the composite signal and a signal generated by adaptive filter 340 and generate an error signal ε. An LNA 314 may be configured to receive error signal ε from coupler 360, amplify the signal at its input, and provide a radio-frequency (RF) error signal εRF. RF error signal εRF may be conveyed to a mixer 316, which may generate an output signal RxOUT. RF error signal εRF may also be conveyed to adaptive filter 340.
Furthermore, according to an exemplary embodiment of the present invention, upon receipt of RF error signal εRF and coupler transmit signal TxC, adaptive filter 340 is configured to generate a reconstructed transmit signal leakage −TxL′, which may be conveyed to coupler 360. Further, coupler 360 is configured to, for example, sum the reconstructed transmit signal leakage −TxL′ and the composite signal, which may include the transmit signal leakage TxL, to mitigate the effects of transmit signal leakage. In general, adaptive filter 340 may be positioned at any point on the receive path. For example, adaptive filter 340 may be positioned either before or after LNA 314. Improved noise performance can typically be achieved with adaptive filter 340 positioned after LNA 314. As described more fully below, adaptive filter 340 is configured to generate a plurality of coefficients (i.e., weights) for adaptively estimating magnitude and phase of a transmit signal leakage.
As noted above, coupler 317 may be configured as a broadband coupler (i.e., for passing all frequencies of a transmit signal) or a frequency selective filter for conveying one or more harmonics of the transmit signal. More specifically, as one example, coupler 317 may be configured as a frequency selective filter for conveying a third harmonic of transmit signal Tx to filter 340 as coupler transmit signal TxC.
Transceiver 300 further includes an adaptive analog least means square (ALMS) algorithm unit 302-1, an ALMS algorithm unit 302-2, and a multi-tap filter 310. ALMS algorithm unit 302-1 may utilize an LMS algorithm to estimate the cross-correlation between signal RF error signal εRF(t) and an input signal provided to multi-tap filter 310 (i.e., coupler transmit signal TxC(t)). Further, ALMS algorithm unit 302-2 may utilize an LMS algorithm to estimate the cross-correlation between RF error signal εRF(t) and a delayed input signal provided to multi-tap filter 310 (i.e., coupler transmit signal TxC(t−T)). As will be appreciated by a person having ordinary skill in the art, adaptive filter 340 is configured to minimize the mean square error between transmit signal leakage TxL(t) (i.e., the undesired transmit signal leakage within a receive path) and an estimated transmit signal leakage, −TxL(t)′, generated by adaptive filter 340.
ALMS algorithm unit 302-1 includes a quadrature splitter 324, a quadrature multiplier 326, and a filter 328, which may comprise a low-pass filter. Similarly, ALMS algorithm unit 302-2 includes a quadrature splitter 320, a quadrature multiplier 322, and a filter 318, which may comprise a low-pass filter. As will be appreciated by a person having ordinary skill in the art, quadrature splitters are configured to receive an input signal and provide an in-phase signal and a quadrature signal. The in-phase and quadrature signals respectively contain the in-phase and quadrature components of an input signal (i.e., the signal received by a quadrature splitter), with the in-phase signal leading the quadrature signal by 90°.
Multi-tap filter 310 includes quadrature splitters 346 and 348, quadrature multipliers 342 and 338, summers 350 and 352, and summer 354. Multi-tap filter 310 is configured to generate a transmit leakage signal estimate −TxL(t)′. Moreover, transceiver 300 includes coupler 360 for summing transmit leakage signal estimate −TxL(t)′ with the composite signal, which may include transmit signal leakage TxL(t). It is noted that splitter 348, multiplier 338, and summer 352 may be collectively referred to as a complex multiply and add (CMA) unit 349-1. Similarly, splitter 346, multiplier 342, and summer 350 may be collectively referred to as a complex multiply and add (CMA) unit 349-2.
A contemplated operation of transceiver 300 will now be described. An RF error signal εRF(t), which is output from LNA 314 and may include a desired receive signal, noise, and transmit signal leakage, may be received by each of ALMS algorithm unit 302-1 and ALMS algorithm unit 302-2. Further, a coupler transmit signal TxC(t), which may comprise at least a portion of transmit signal Tx(t), may be conveyed from coupler 317 to splitter 324 and splitter 348. Additionally, coupler transmit signal TxC(t) may be time-delayed by delay element T, and, thereafter, a time-delayed version of coupler transmit signal (i.e., TxC(t−T)) is conveyed to splitter 320 and splitter 346. Upon receipt of the time-delayed coupler transmit signal TxC(t−T), splitter 320 may provide an in-phase reference signal and a quadrature reference signal to multiplier 322. In addition, splitter 346 may provide an in-phase reference signal and a quadrature reference signal to multiplier 342. Further, upon receipt of coupler transmit signal TxC(t), splitter 324 may provide an in-phase reference signal and a quadrature reference signal to multiplier 326, and splitter 348 may provide an in-phase reference signal and a quadrature reference signal to multiplier 338.
Upon receipt of an in-phase and a quadrature signal, multiplier 326 multiplies the in-phase and quadrature signals with RF error signal εRF(t) and conveys resulting in-phase and a quadrature signals to filter 328. Filter 328, upon receipt of the in-phase and a quadrature signals from multiplier 322, conveys a coefficient W1(t), which may also be referred to herein as a “weight”, to multiplier 338. It is noted that filter 328 may pass a frequency component at baseband. Furthermore, filter 328 may perform an averaging operation, as will be appreciated by a person having ordinary skill in the art. Filter 328 is configured to perform a low-pass filtering function to remove the desired receive signal that results at the frequency offset with respect to DC as a result of multiplications with quadrature mixer 326. Further, it is noted that the low-pass filtering function is equivalent to averaging in the time domain. This time-time domain averaging is part of the cross-correlation function between RF error signal εRF(t) and coupler transmit signal TxC(t) needed for the weight estimations.
Upon receipt of an in-phase and a quadrature signal, multiplier 322 multiplies the in-phase and quadrature signals with RF error signal εRF(t) and conveys resulting in-phase and a quadrature signals to filter 318. Filter 318, upon receipt of the in-phase and a quadrature signals from multiplier 322, conveys a coefficient W2(t), which may also be referred to herein as a “weight”, to multiplier 342. It is noted that filter 318 may pass a frequency component at baseband. Furthermore, filter 318 may perform an averaging operation, as will be appreciated by a person having ordinary skill in the art. Filter 318 is configured to perform a low-pass filtering function to remove the desired receive signal that results at the frequency offset with respect to DC as a result of multiplications with quadrature mixer 322. Further, it is noted that the low-pass filtering function is equivalent to averaging in the time domain. This time average is part of the cross-correlation function between RF error signal εRF(t) and the time-delayed version of coupler transmit signal TxC(t−T) needed for the weight estimations.
Referring now to filter 310, upon receipt of in-phase and a quadrature signals via splitter 348 and coefficient W1(t), multiplier 338 multiplies the in-phase and quadrature signal with coefficient W1(t). Multiplier 338 then conveys the resulting in-phase and a quadrature signals to summer 352. Summer 352 combines the in-phase and quadrature signals and conveys a combined signal to summer 354. Moreover, upon receipt of in-phase and quadrature signal via splitter 346 and coefficient W2(t), multiplier 342 multiplies the in-phase and quadrature signal with coefficient W2(t) and conveys resulting in-phase and a quadrature signals to summer 350. Summer 350 combines the in-phase and quadrature signals and conveys a combined signal to summer 354. Summer 354 combines the output of summer 350 and the output of summer 352 to generate an estimated transmit signal leakage −TxL(t)′, which may be conveyed to coupler 360. Upon receipt of thereof, coupler 360 sums the estimated transmit signal leakage −TxL(t)′ and the composite signal, which may comprise transmit signal leakage TxL(t).
It is noted that, during operation of transceiver 300, the cross-correlation value between RF error signal εRF(t) and a signal conveyed to multi-tap filter 310 (i.e., coupler transmit signal TxC(t) or TxC(t−T)) may decrease as transmit signal leakage is removed from RF error signal εRF(t). Accordingly, coefficients W1(t) and W2(t) may eventually reach a steady-state value.
It is noted that although transceiver 300 is depicted as a two tap adaptive filter, the present invention is not so limited. Rather, transceiver 300 may include any number of taps more than one. For example, transceiver 300 may include one or more additional adaptive analog least means square (ALMS) algorithm units for generating one or more additional coefficients (i.e., weights), and additional circuitry within multi-tap filter 310 for generating estimated transmit signal leakage −TxL(t)′ based on coefficients W1(t) and W2(t), and any additional coefficients.
Further, each algorithm units 302-1-302-N is configured to generate a weight (W1(t)-WIN(t)) (i.e., as described above with reference to
Multi-tap filter 310′ is configured to sum the outputs of each complex multiply and add unit 349-1-349-N to generate a transmit leakage signal estimate −TxL(t)′ (i.e., −TxL(t)′=Σn=1N−TxLn(t)′. Moreover, transceiver 350 includes coupler 360 for summing n=1 transmit leakage signal estimate −TxL(t)′ and the composite signal, which may include transmit signal leakage TxL(t).
As will be appreciated by a person having ordinary skill in the art, a transceiver, which includes multiple transmitters (e.g., CDMA transmitters, LTE transmitters and/or WiFi transmitters), may experience transmit signal leakage in a receive path due to one or more of the multiple transmitters. As one contemplated example, transceiver 500 may include transmit signal leakage caused by transmitters 508-1 and 508-2 (i.e., the composite signal TxL(t)=Tx1L(t)+Tx2L(t)). In accordance with an exemplary embodiment of the present invention, filter 340 may be configured to receive, via selector 590, a coupler transmit signal Tx2C(t) for mitigating transmit signal leakage Tx2L(t) due to transmitter 508-2 in a manner similar to the description above with respect to
It is noted that transceiver 500 may be configured for mitigating transmit signal leakage TxL(t) due to more than one transmitter simultaneously. For example, in one exemplary embodiment, selector 590 may be configured for coupling a plurality of transmitters (e.g., transmitters 508-1 and 508-2) to filter 340 (i.e., via associated couplers 517), which may comprise an adequate number of taps for reconstructing a transmit leakage signal based on transmit signal leakage from the plurality of transmitters. According to another exemplary embodiment, transceiver 500 may include a plurality of adaptive filters 340 coupled in parallel, wherein one adaptive filter reconstructs a transmit leakage signal based on transmit signal leakage from a first transmitter and another adaptive filter reconstructs a transmit leakage signal based on transmit signal leakage from another transmitter.
Transceiver 600 further includes selector 690-1 for coupling one of a plurality of transmitters (e.g., transmitters 608-1-608-N) to an adaptive filter 640-1, which may comprise filter 340 described above with respect to
As will be understood by a person having ordinary skill in the art, a transceiver, which includes multiple transmitter/receiver pairs, may experience transmit signal leakage in one or more receive paths due to one or more of the transmitters. For example, transmitter 608-2 may cause transmit signal leakage in receiver 601-1, receiver 601-2, or both. Similarly, transmitter 608-1 may cause transmit signal leakage in receiver 601-1, receiver 601-2, or both.
As one contemplated example, a receive path including receiver 601-1 may include transmit signal leakage caused by transmitters 608-1 and 608-2 (i.e., the composite signal TxL1(t)=Tx1L(t)+Tx2L(t)). In accordance with an exemplary embodiment of the present invention, transceiver 600 may be configured, via selector 690-1, to couple transmitter 608-2 to filter 640-1 (i.e., via coupler 617-2) for mitigating transmit signal leakage Tx2L(t) in a first receive path (i.e., the receive path including receiver 601-1) due to transmitter 608-2 in a manner similar to the description above with respect to
In addition, transceiver 600 may be configured, via selector 690-2, to couple transmitter 608-2 to filter 640-2 (i.e., via coupler 617-2) for mitigating transmit signal leakage Tx2L(t) in a second receive path (i.e., the receive path including receiver 601-2) due to transmitter 608-2 in a manner similar to the description above with respect to
Transceiver 700 further includes selector 690-1 for coupling one of a plurality of transmitters (e.g., transmitters 708-1-708-N) to filter 640-1. Further, transceiver 700 includes selector 690-2 for coupling one of a plurality of transmitters (e.g., transmitters 708-1-708-N) to filter 640-2. Moreover, transceiver 700 includes coupler 617-1 configured for conveying at least a portion of a transmit signal Tx1(t) (i.e., coupler transmit signal TxINC(t)) from transmitter 708-1 to selector 690-1 and/or selector 690-2. In addition, transceiver 700 includes coupler 617-2 configured for conveying at least a portion of a transmit signal Tx2(t) (i.e., coupler transmit signal Tx2C(t)) from transmitter 708-2 to selector 690-1 and/or selector 690-2. Further, a coupler transmit signal TxINC(t) may be conveyed from another transmitter (not shown in
As will be understood by a person having ordinary skill in the art, a transceiver, which includes multiple transmitters and receivers, may experience transmit signal leakage in one or more receive paths due to one or more transmitters. For example, transmitter 708-2 may cause transmit signal leakage in receiver 701-1, receiver 701-2, or both. Similarly, transmitter 708-1 may cause transmit signal leakage in receiver 701-1, receiver 701-2, or both.
As one contemplated example, a receive path including receiver 701-1 may include transmit signal leakage caused by transmitters 708-1 and 708-2 (i.e., the composite signal TxL1(t)=Tx1L(t)+Tx2L(t)). In accordance with an exemplary embodiment of the present invention, transceiver 700 may be configured, via selector 690-1, to couple transmitter 708-2 to filter 640-1 (i.e., via coupler 617-2) for mitigating transmit signal leakage Tx2L(t) in a first receive path (i.e., the receive path including receiver 701-1) due to transmitter 708-2 in a manner similar to the description above with respect to
In addition, transceiver 700 may be configured, via selector 690-2, to couple transmitter 708-2 to filter 640-2 (i.e., via coupler 617-2) for mitigating transmit signal leakage Tx2L(t) in a second receive path (i.e., the receive path including receiver 701-2) due to transmitter 708-2 in a manner similar to the description above with respect to
It is noted that the transceivers illustrated in
Transceiver 800 includes a receive path having an antenna 815, a duplexer 812, a low-noise amplifier (LNA) 814, a mixer 816, and a baseband demodulator 870. As will be understood by a person having ordinary skill in the art, a signal received via antenna 815 may be amplified via LNA 814, down-converted via mixer 816, and demodulated via demodulator 870. Further, transceiver 800 includes a transmit path having a baseband modulator 836, a digital-to-analog converter (DAC) 834, a mixer 832, and a power amplifier (PA) 830. Mixer 832 is configured to receive a local oscillator signal from a local oscillator 873. As will be appreciated by a person having ordinary skill in the art, a signal for transmission may be modulated via baseband modulator 836, converted to an analog signal via DAC 834, up-converted via mixer 832, amplified via PA 830 and conveyed to duplexer 812 for transmission via antenna 815. As will be further appreciated, a portion of a transmit signal (i.e., transmit signal leakage TxL), sent via the transmit path, may leak through duplexer 812 to the receive path.
Transceiver 800 further includes a mixer 872, a baseband LMS filter 850, delay element T, multipliers 862 and 864, a summer 866, and a mixer 868. Mixer 868 is configured to receive a local oscillator signal from local oscillator 873. Baseband LMS 850 includes integrators 852 and 854 and multipliers 856 and 858. As illustrated in
A contemplated operation of transceiver 800 will now be described. A radio-frequency (RF) signal εRF is output from LNA 814 and may include a desired signal (i.e., the desired receive signal), noise, and transmit signal leakage TxL. RF signal εRF is conveyed to mixer 872 and down-converted to baseband. An output of mixer 872 (i.e., signal εBB) is conveyed to each of multipliers 856 and 858. Further, a transmit signal at baseband (i.e., TxBB), which is output from DAC 834, is conveyed to multiplier 858, multiplier 864, and delay element T. Delay element T delays the transmit signal and conveys a time-delayed version of the transmit signal (i.e., Tx(t−T)BB) to each of multiplier 856 and multiplier 862. Accordingly, a signal received by multipliers 856 and 862 is delayed with respect to a signal received by multipliers 858 and 864.
Upon receipt of signal εBB and the transmit signal, multiplier 858 multiplies the transmit signal at baseband (i.e., TxBB) with signal εBB and conveys an output to integrator 852. Integrator 852 integrates the received signal and outputs a coefficient W3 to multiplier 864. This operation is the cross-correlation operation needed to estimate the weights. Upon receipt of signal εBB and the time-delayed transmit signal, multiplier 856 multiplies the time-delayed transmit signal (i.e., Tx(t−T)BB) with signal εBB and conveys an output to integrator 854. Integrator 854 integrates the received signal and outputs a coefficient W4 to multiplier 862.
Moreover, upon receipt of coefficient W3 and the transmit signal, multiplier 864 multiplies the transmit signal (i.e., TxBB) with coefficient W3 and conveys an output to summer 866. Further, upon receipt of coefficient W4 and the time-delayed transmit signal, multiplier 862 multiplies the time-delayed transmit signal (i.e., Tx(t−T)BB) with coefficient W4 and conveys an output to summer 866. Summer 866, upon receiving the outputs of multiplier 862 and multiplier 864, combines the two signals and conveys a signal TxBB′ to mixer 834, which up-converts that signal to RF and conveys an estimated transmit leakage signal −TxRF′ to coupler 817. Upon receipt of thereof, coupler 817 may sum estimated transmit leakage signal −TxRF′ and the composite signal, which may comprise transmit signal leakage TxL.
It is noted that, during operation of transceiver 800, the cross-correlation value between signal εBB and a transmit signal conveyed to multi-tap filter 850 (i.e., transmit signal TxBB or Tx(t−T)BB) will decrease as transmit signal leakage is removed from signal εRF. Accordingly, coefficients W3 and W4 may eventually reach a steady-state value.
It is further noted that although the transceiver 800 is depicted as a two tap adaptive filter, the present invention is not so limited. Rather, transceiver 800 may include any number of taps more than one. For example, baseband LMS filter 850 may include additional circuitry for generating additional coefficients (i.e., in addition to W3 and W4). Further, transceiver 800 may include additional circuitry for generating transmit leakage signal estimate −TxRF′ based on coefficients W3 and W4, and any additional coefficients.
Exemplary embodiments, as described herein, may mitigate the effects of transmit signal leakage. More specifically, the multi-tap adaptive filters, as described herein, may compensate for group delay distortion introduced by a duplexer or any other front-end filters. By way of example only, exemplary embodiments of the present invention may provide 15-20 dB increase in cancellation (at more than one frequency). In contrast to conventional transceivers, which may utilize a single-tap filter, the exemplary embodiments, as described herein, utilize a plurality of taps for sampling at a plurality of points (i.e., frequencies) and LMS functionality for interpolating between the points. Further, because the algorithm units described herein are LMS units, power usage of the means square error (MSE) is minimized to ensure the highest possible degree of cancellation.
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the exemplary embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the exemplary embodiments of the invention.
The various illustrative logical blocks, modules, and circuits described in connection with the exemplary embodiments disclosed herein 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 (FPGA) or other programmable logic device, 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 conventional 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.
In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media 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. Also, 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, 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, includes 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. Combinations of the above should also be included within the scope of computer-readable media.
The previous description of the disclosed exemplary embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these exemplary embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the exemplary embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.