This disclosure relates to differential microphone arrays and, in particular, to constructing higher order linear differential microphone arrays (LDMAs) with steerable differential beamformers.
A differential microphone array (DMA) uses signal processing techniques to obtain a directional response to a source sound signal based on differentials of pairs of the source signals received by microphones of the array. DMAs may contain an array of microphone sensors that are responsive to the spatial derivatives of the acoustic pressure field generated by the sound source. The microphones of the DMA may be arranged on a common planar platform according to the microphone array's geometry (e.g., linear, circular, or other array geometries).
The DMA may be communicatively coupled to a processing device (e.g., a digital signal processor (DSP) or a central processing unit (CPU)) that includes circuits programmed to implement a beamformer to calculate an estimate of the sound source. A beamformer is a spatial filter that uses the multiple versions of the sound signal captured by the microphones in the microphone array to identify the sound source according to certain optimization rules. A beampattern reflects the sensitivity of the beamformer to a plane wave impinging on the DMA from a particular angular direction. DMAs combined with proper beamforming algorithms have been widely used in speech based communication and human-machine interface systems to extract the speech signals of interest from unwanted signals, e.g., noise and interference.
The present disclosure is illustrated by way of example implementations, and not by way of limitation, in the figures of the accompanying drawings described below.
DMAs may measure the derivatives (at different orders) of the sound signals captured by each microphone, where the collection of the sound signals forms an acoustic field associated with the microphone arrays. For example, a first-order DMA beamformer, formed using the difference between a pair of microphones (either adjacent or non-adjacent), may measure the first-order derivative of the acoustic pressure field. A second-order DMA beamformer may be formed using the difference between a pair of two first-order differences of the first-order DMA. The second-order DMA may measure the second-order derivatives of the acoustic pressure field by using at least three microphones. Generally, an Nth order DMA beamformer may measure the Nth order derivatives of the acoustic pressure field by using at least N+1 microphones.
A beampattern of a DMA can be quantified in one aspect by the directivity factor (DF) which is the capacity of the beampattern to maximize the ratio of its sensitivity in the look direction to its averaged sensitivity over the whole space. The look direction is an impinging angle of the signal that comes from the desired sound source. The DF of a DMA beampattern may increase with the order of the DMA. However, a higher order DMA can be very sensitive to noise generated by the hardware elements of each microphone of the DMA itself, where the sensitivity is measured according to a white noise gain (WNG). The design of a beamformer for the DMA may focus on finding an optimal beamforming filter under some criteria (e.g., beampattern, DF, WNG, etc.) for a specified array geometry (e.g., linear, circular, square, etc.).
Linear differential microphone arrays (LDMAs) have been used in a wide range of applications for sound and speech signal acquisition. In some applications, such as hearing aids and Bluetooth headsets, the direction of the sound source may be assumed and beamformer steering is not really needed. However, in many other applications, such as smart televisions (TVs), smart phones, tablets, etc., a steerable beamformer may be desired as signals from the sound source position may not impinge along the endfire direction. For example, a LDMA may be mounted along the bottom side of a smart TV with voice recognition capabilities in order to form a beampattern along the broadside of the smart TV. Therefore, it would be useful to be able to steer the beamformer for such an LDMA in order to maximize signal acquisition (e.g., a user's voice commands) and noise reduction.
The present disclosure provides an approach to the design of LDMAs with steerable beamformers. The approach described herein includes defining a series of ideal polynomial functions to describe the ideal target beampatterns of applied LDMAs, e.g., in a smart TV. A fundamental condition for designing a steerable beamformer for an Nth order LDMA may be determined based on a relationship between the nulls of the ideal polynomial function for the LDMA and a steering angle of the LDMA. A null of a polynomial (P(x)) is a variable value (x0) that, when substituted in the polynomial (P(x0)), the value of the polynomial is zero (i.e., (P(x0)=0)). Values for the N−1 polynomial nulls of lowest order (e.g., order 1 to N−1) may be set according to the practical needs of the application (e.g., smart TV) and the value of the last null (e.g., Nth order) may be determined based on the fundamental condition for the LDMA. The beamforming filter may then be generated by solving a linear system of equations constructed with the null constraints. Finally, experimental/simulation results (described below) demonstrate the beam steering achieved with LDMAs of Nth order.
For simplicity of explanation, methods are depicted and described as a series of acts. However, acts in accordance with this disclosure can occur in various orders and/or concurrently, and with other acts not presented and described herein. Furthermore, not all presented acts may be required to implement the methods in accordance with the disclosed subject matter. In addition, the methods could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, it should be appreciated that the methods disclosed in this disclosure are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to computing devices. The term article of manufacture, as used herein, is intended to encompass a computer program accessible from any computer-readable device or storage media. In an implementation, the methods may be performed by a hardware processing associated with the LDMA 402 of
Referring to
In an implementation, a uniform LDMA composed of M omnidirectional microphones with a uniform inter-microphone spacing δ, may be used to capture a signal of interest, e.g., LDMA 402 of
d(ω, cos θ)[1, e−j
where j is the imaginary unit, with j2=−1,
Considering the general case where the signal of interest (i.e., the desired signal) comes from the direction θs, we can express the frequency-domain observation signal vector of length M as
where X(ω) is the zero-mean source signal of interest and v(ω) is the zero-mean additive noise signal vector defined similarly to y(ω). The objective of beamforming is to design a spatial filter, h(ω), that may be applied to the observation signal vector (e.g., as expressed by (2) above) in order to obtain a good estimate of X(ω). The output of the beamformer may be expressed as:
Z(ω)=hH(ω)y(ω) (3)
where the superscript H is the conjugate-transpose operator. In the design of LDMAs, a distortionless constraint in the desired direction (e.g., the look direction θs) is generally desired, so that:
h
H(ω)d(ω, cos θs)=1. (4)
As noted above, a beampattern describes the sensitivity of a beamformer to a plane wave impinging on the array from the direction θ. The beampattern may be defined as:
Bθ
B
θ
[h(ω), θ]=Bθ
With respect to “steerable” beamformers, the following three levels of steerability may be considered.
Fully steerable: at this level, for any given θs ∈[0, 180°], |Bθs[h(ω), θs]|2=1, |Bθs[h(ω), θ]|2≤1, and Bθs[h(ω), θ] is a rotation of B0[h(ω), θ] by θs.
Steerable: at this level, for any given θs ∈[0, 180°], |Bθs[h(ω), θs]|2=1, |Bθs[h(ω), θ]|2≤1, but Bθs[h(ω), θ] varies with θs and is not a rotation of B0[h(ω), θ] by θs. The present disclosure is concerned with this level of steerability for LDMAs.
Not steerable: at this level, for any given θs ∈[0, 180°], |Bθs[h(ω), θs]|2=1, but |Bθs[h(ω), θ]|2≥1 for some angles. Therefore, the corresponding beamformer may amplify noise and interference.
In this disclosure hereinafter, the subscript θs will be omitted from Bθs [h(ω), θ] in order to simplify the notation in some of the following equations.
As noted above, the WNG evaluates the sensitivity of a beamformer to some of the LDMA's own imperfections (e.g., noise from its own hardware elements). The WNG associated with an LDMA, as described above, may be written as:
The DF represents the ability of a beamformer in suppressing spatial noise from directions other than the look direction (e.g., other than 0°). The DF associated with the LDMA, as described above, may be written as:
Which may be rewritten as:
where Γd(ω) is a pseudo-coherence matrix (with M×M elements) of the noise signal in a diffuse (spherically isotropic) noise field. The (i, j)th element of Γd(ω) may be denoted as:
where ij=1, 2, . . . , M, and [Γd(ω)]ii=1.
At 104, the processing device may specify a target beampattern for the LDMA at a steering angle θ.
The ideal or target beampattern for an Nth order DMA may be expressed as:
B
N(θ)=Σn=0N aN,n cosn θ=aNT p (θ) (11)
where aN,n, n=0, 1, . . . N are real coefficients that determine the shape of the target beampattern for the DMA with:
a
N=[aN,0 aN,1 . . . aN,N]T, and (12)
p(θ)=[1 cos θ . . . cosN θ]T. (13)
It may be assumed that the Nth order DMA target beampattern has N distinct nulls at θ1, θ2, . . . , θN. Combining these null constraints with the distortionless constraint described above at (4), the following linear system of equations may be formed:
D(ω,XN)h(ω)=i1, (14)
where
x
N=[xs x1 ⋅ ⋅ ⋅ xN]T, (15)
with xs=cos θs and xn=cos θn, n=1, 2, . . . , N,
and i1=[1 0 ⋅ ⋅ ⋅ 0]T.
In order to design an Nth order DMA, at least N+1 microphones are used. Based on the number of microphones being equal to N+1, the solution of (14) above may be expressed as:
h
E(ω)=D−1(ω, xN)i1. (17)
h
MN(ω)=DH(ω, xN)[D(ω, xN)DH(ω, xN)]−1i1. (18)
This solution yields an Nth order DMA while improving the WNG, which increases with the number of microphones.
At 106, the processing device may generate an Nth order polynomial associated with the target beampattern.
Taking x=cos θ, the target beampattern in (11) may be rewritten as an algebraic polynomial of order N with respect to x as:
P
N(x)=Σn=0N aN,n xn. (19)
where ξN=Πn=1N(x−xn) is a normalization factor provided to satisfy the distortionless constraint in the desired look direction. Based on (19) and (20), it is evident that:
Therefore, (20) may be rewritten as:
P
N(x)=aN,N Πn=1N(x−xn), (22)
which may be referred to as the target polynomial, associated with the target beampattern in (11), throughout this disclosure.
At 108, the processing device may determine a relationship between nulls of the polynomial and the steering angle θ.
With respect to the association between the target polynomial and the target beampattern, it is clear that the steering vector (1) with respect to x is periodic:
where k is an integer number and the period is
Based on N=1, the first-order target polynomial may be expressed as:
P
1(x)=a1,1 x+a1,0, (25)
with a1,1 ≠ 0, which is a linear function of x. Furthermore, based on the main lobe direction for the LDMA is set to an endfire direction, e.g., θs=0°, then P1(1)=1. Therefore, P1(x) may be uniquely determined by the single null at x1 as illustrated via the following four scenarios.
First-order dipole: x1=0, and a1,1=1, a1,0=0.
First-order hypercardioid: x1=−1/2, and a1,1=2/3, a1,0=1/3.
First-order cardioid: x1=−1, and a1,1=1/2, a1,0=1/2
First-order subcardioid: x1=−3/2, and a1,1=2/5, a1,0=3/5.
As described below with respect to
For higher order LDMAs (e.g., N≥2), based on the beam steering being focused on the range −1≤x≤1 and based on:
the derivative of the target polynomial of PN(x) with respect to x may be considered.
The target polynomial for N=2 may be expressed as:
P
2(x)=a2,2 x2+a2,1x+a2,0, (27)
and its derivative with respect to x is:
Based on (22), the second order target polynomial may be expressed as:
P
2(x)=a2,2 x2−a2,2(x1+x2)x+a2,2 x1 x2. (30)
x
1
+x
2=2xs, (32)
which may be referred to as the fundamental condition for designing steerable beamformers for second order LDMAs.
The target polynomial for N=3 may be expressed as:
P
3(x)=a3,3 x3+a3,2 x2+a3,1x+a3,0, (33)
and its derivative with respect to x is:
3xs2−2Σn=13 xn xs+x1x2+x2x3−x1x3=0. (38)
Therefore, for a target polynomial of Nth order, the derivative with respect to x may be expressed as:
P
N(x)=aN,N Σn=1N(−1)N−n ζN,n xn. (40)
where:
where n=0, 1, . . . , N. Substituting (46) into (39), the fundamental condition for constructing an Nth order LDMA with a steerable beamformer (e.g., relationship between nulls of the target polynomial and the steering angle xs) may be expressed as:
Σn=1N n(−1)N−n ζn,n xsn−1=0. (47)
At 110, the processing device may determine a null value based on N−1 assigned null values and the determined relationship between the nulls of the polynomial and the steering angle θ.
In order to determine the nulls of the target polynomial for a given steering direction (xs) of a steerable Nth order LDMA, the first N−1 nulls may be assigned according to requirements of the practical application (e.g., smart TV), and then the last null may be determined based on the condition in (47) being satisfied. As described below with respect to
Based on xs=0, i.e., θs=90°, (clearly, xn ≠ 0, for n=1, 2, . . . , N), the fundamental condition of (47) may be rewritten as
ζN,1=0. (48)
Based on the definition of ζN,1, the unknown null to control steering for the Nth order LDMA may be expressed as:
Based on xs ≠ 0, the following vector may be defined:
a
N(x)=[1 x ⋅ ⋅ ⋅ xN]T, (50)
where x ∈{xs, x1, x2, . . . , xN}. The derivative of the target polynomial at xs may be set to 0 so that:
q
N
T(xs)ΣN=0, (51)
with diag (0, 1, . . . , N). The coefficients vector, aN, defined in (12) may be derived from a linear system of equations:
Q(x)aN=i1, (52)
where:
a
N
=Q
−1(x)i1. (55)
As a result, the vector xN may be obtained according to (15).
At 112, the processing device may generate the steerable beamformer based on the determined null value and the N−1 assigned null values.
Finally, by substituting the determined null vector, xN, into the linear system in (14) and solving for the optimal filter h(ω) by (17) or (18), the beamforming filters for steerable Nth order LDMAs may be generated.
At 114, the processing device may end the execution of operations to construct an Nth order LDMA with a steerable beamformer.
Referring to
As noted above, with respect to
At 204, values for the N−1 nulls of the target polynomial that are of less than Nth order may be assigned based on the requirements of a practical application of the LDMA (e.g., a voice operated device).
As noted above, the first N−1 nulls may be the nulls of lower order (e.g., order 1 to order N−1) and the last unknown null to control the steering of the LDMA may be the highest order null (e.g., Nth order) may be according to (56).
At 206, the processing device may end the execution of operations to to construct an Nth order LDMA with a steerable beamformer based on an application of the LDMA.
Method 200 may continue to 110 of method 100 of
Referring to
At 304, a system of linear equations may be formed based on the null values/constraints of the target polynomial.
As noted above, with respect to
At 306, the processing device may end the execution of operations to construct an Nth order LDMA with a steerable beamformer based on a linear system of equations.
Method 300 may continue to 112 of method 100 of
LDMA 402 may include M omnidirectional microphones, with a uniform inter-microphone spacing δ, that may be used to capture a signal of interest. A plane wave 404 may propagate in an anechoic acoustic environment at the speed of sound (i.e., c=340 m/s) and impinge on the LDMA 402 at an incidence azimuth angle parameterized by θ 406. It may be assumed that the maximum distance between any two adjacent microphones (e.g., δmax) will be smaller than the wavelength λ of impinging plane wave 404.
As noted above, with respect to
An LDMA (e.g., LDMA 402 of
A first order target polynomial function, P1(x), is shown in each of graphs 600A-600D. The dashed line is the boundary of the visible zone, and the part of the target polynomial function, P1(x), located outside of the visible zone is invisible in the corresponding target beampatterns shown in
A first order target beampattern, B1(θ), is shown in each of graphs 700A-700D. As noted above, the part of the target polynomial function, P1(x) of
A second order target polynomial function, P2(x), is shown in each of graphs 800A-800B. The polynomials, P2(x), are associated with target beampatterns for second order LDMAs, with three microphones each, where the inter element spacing, δ, is 1 cm. Two cases were considered: SLDMA-I and SLDMA-II, whose main lobes (e.g., steering angle) are at, respectively, 90° and 75°. As noted above, with respect to
Graphs 800A and 800B show that the target polynomial functions for the steerable second order LDMAs are parabolas and the nulls are symmetrically distributed on both sides of steering angle xs.
A second order target beampattern associated with polynomial function, P2(x), is shown in each of graphs 900A-900B. Graphs 900A and 900B show the target beampatterns at f=1 kHz.
A broadband beampattern associated with polynomial function, P2(x), is shown in each of graphs 1000A-1000B. Graphs 1000A and 1000B show that the target beampatterns are frequency invariant.
Graph 1100A shows that the DF varies with the steering angle θ. Based on graph 1100A it is clear that a second order LDMA has its maximum DF at the endfire directions (e.g., 0° and 180°)
Graph 1100B shows that the WNG varies with the steering angle θ.
A second order target polynomial function, P3(x), is shown in each of graphs 1200A-1200B. The polynomials, P3(x), are associated with target beampatterns for third order LDMAs, with four microphones each, where the inter element spacing, δ, is 1 cm. Two cases were considered: TLDMA-I and TLDMA-II, whose main lobes (e.g., steering angle) are at, respectively, 60° and 45°. As noted above, the lower order nulls x1 and x2 may be pre-specified (e.g., according to practical application of the LDMAs) and the other null x3 (e.g., highest order null) may be obtained from (38) above. The coefficients of the two beamformers for TLDMA-I and TLDMA-II, respectively, are shown in Table II below.
Graphs 1300A-1300B show that, compared to steerable second order LDMAs, steerable third order LDMAs have higher directivities and narrower main lobes.
A broadband beampattern associated with polynomial function, P3(x), is shown in each of graphs 1400A-1400B. Graphs 1400A and 1400B show that the target beampatterns are frequency invariant.
Graph 1500A shows that, compared to steerable second order LDMAs described above, steerable third order LDMAs have a higher DF. Generally, the DF increases with the order of the steerable LDMA.
Graph 1500B shows that, compared to steerable second order LDMAs described above, steerable third order LDMAs have a lower WNG.
A fourth order target polynomial function, P4(x), is shown in each of graphs 1600A-1600D. The polynomials, P4(x), are associated with target beampatterns for fourth order LDMAs, with five microphones each, where the inter element spacing, δ, is 1 cm. Four cases were considered: FLDMA-I, FLDMA-II, FLDMA-III and FLDMA-IV, whose main lobes (e.g., steering angle) are at, respectively, 30°, 45°, 60° and 90°. As noted above, the lower order nulls x1, x2 and x3 may be pre-specified (e.g., according to practical application of the LDMAs) and the coefficients vector, aN, and null, x4 (e.g., highest order null), may be computed according to (52) and (56), respectively. The coefficients of the four beamformers, respectively, are shown in Table III below.
Graphs 1700A-1700D show that, compared to steerable third order LDMAs, steerable fourth order LDMAs have higher directivities and much narrower main lobes.
A broadband beampattern associated with polynomial function, P4(x), is shown in each of graphs 1800A-1800D. Graphs 1800A-1800D show that the target beampatterns are frequency invariant.
A third order target polynomial, P3(x), and a fourth order target polynomial, P4(x), are respectively shown in each of graphs 1900A and 1900B. The polynomials, P3(x) and P4(x), are associated with target beampatterns for respective third and fourth order LDMAs, with five microphones each, where the inter element spacing, δ, is 1 cm. Two cases were considered: TLDMA-III and FLDMA-V, whose main lobes (e.g., steering angle) are both at 60° and cos(135°) is a null with multiplicity. As noted above, the lower order nulls may be pre-specified (e.g., according to practical application of the LDMAs) and the coefficients vector, aN, and null, x4 (e.g., highest order null), may be computed according to (54 and 55) and (56) respectively. The coefficients of the two beamformers, respectively, are shown in Table IV below.
Graphs 2000A-2000B show that, compared to TLDMA-III, the FLDMA-V's null is deeper and wider.
A broadband beampattern associated with polynomial function, P3(x), is shown in graphs 2100A. A broadband beampattern associated with polynomial function, P4(x), is shown in graphs 2100B. Graphs 2100A and 2100B show that the target beampatterns are frequency invariant.
The WNG of a steerable LDMA may also be improved by increasing the number of microphones in the LDMA. SLDMA-III was designed with xs=cos(90°), x1=cos(0°), and x2=cos(180°), using 3, 7, 11, and 15 microphones. Graphs 2200A and 2200B show clearly that a robust design for an LDMA (e.g., more microphones) may introduce extra nulls into the beampattern.
Graph 2300A shows that, compared to steerable LDMAs with less microphones, steerable LDMAs with more microphones may have a higher DF.
Graph 2300B shows that, compared to steerable LDMAs with less microphones, steerable LDMAs with more microphones may have a higher WNG.
In alternative implementations, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of either a server or a client machine in server-client network environments, or it may act as a peer machine in peer-to-peer (or distributed) network environments. The machine may be an onboard vehicle system, wearable device, personal computer (PC), a tablet PC, a hybrid tablet, a personal digital assistant (PDA), a mobile telephone, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. Similarly, the term “processor-based system” shall be taken to include any set of one or more machines that are controlled by or operated by a processor (e.g., a computer) to individually or jointly execute instructions to perform any one or more of the methodologies discussed herein.
Example computer system 2400 includes at least one processor 2402 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both, processor cores, compute nodes, etc.), a main memory 2404 and a static memory 2406, which communicate with each other via a link 2408 (e.g., bus). The computer system 2400 may further include a video display unit 2410, an alphanumeric input device 2412 (e.g., a keyboard), and a user interface (UI) navigation device 2414 (e.g., a mouse). In one implementation, the display device 2410, input device 2412 and UI navigation device 2414 are incorporated into a touch screen display. The computer system 2400 may additionally include a storage device 2416 (e.g., a drive unit), a signal generation device 2418 (e.g., a speaker), a network interface device 2420, and one or more sensors 2422, such as a global positioning system (GPS) sensor, compass, accelerometer, gyrometer, magnetometer, or other sensor.
The storage device 2416 includes a machine-readable medium 2424 on which is stored one or more sets of data structures and instructions 2426 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions 2426 may also reside, completely or at least partially, within the main memory 2404, static memory 2406, and/or within the processor 2402 during execution thereof by the computer system 2400, with the main memory 2404, static memory 2406, and the processor 2402 also constituting machine-readable media.
While the machine-readable medium 2424 is illustrated in an example implementation to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions 2426. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. Specific examples of machine-readable media include volatile or non-volatile memory, including but not limited to, by way of example, semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
The instructions 2426 may further be transmitted or received over a communications network 2428 using a transmission medium via the network interface device 2420 utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (LAN), a wide area network (WAN), the Internet, mobile telephone networks, plain old telephone (POTS) networks, and wireless data networks (e.g., Wi-Fi, 3G, and 4G LTE/LTE-A or WiMAX networks). Input/output controllers 2430 may receive input and output requests from the central processor 2402, and then send device-specific control signals to the devices they control (e.g., display device 2410). The input/output controllers 2430 may also manage the data flow to and from the computer system 2400. This may free the central processor 2402 from involvement with the details of controlling each input/output device.
In the foregoing description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.
Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “segmenting”, “analyzing”, “determining”, “enabling”, “identifying,” “modifying” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data represented as physical quantities within the computer system memories or other such information storage, transmission or display devices.
The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example’ or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an implementation” or “one implementation” or “an implementation” or “one implementation” throughout is not intended to mean the same implementation or implementation unless described as such.
Reference throughout this specification to “one implementation” or “an implementation” means that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrase “in one implementation” or “in an implementation” in various places throughout this specification are not necessarily all referring to the same implementation. In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.”
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other implementations will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure should, therefore, be determined with reference to the claims, along with the full scope of equivalents to which such claims are entitled.