METHOD FOR DETERMINING FILTER COEFFICIENTS AND EQUALIZER CIRCUIT

20220368289 · 2022-11-17

Assignee

Inventors

Cpc classification

International classification

Abstract

A method of determining filter coefficients of an equalizer circuit for equalizing a non-linear electronic system is described. The equalizer circuit includes a Volterra filter circuit. Further, an equalizer circuit for equalizing a non-linear electronic system and an electronic device are described.

Claims

1. A method of determining filter coefficients of an equalizer circuit for equalizing a non-linear electronic system, wherein the equalizer circuit comprises a Volterra filter circuit, and wherein the method comprises the following steps: providing an input signal; processing the input signal by the non-linear electronic system, thereby obtaining an output signal; providing a first mathematical model, wherein the first mathematical model describes the non-linear electronic system in terms of a first Volterra series; providing a second mathematical model, wherein the second mathematical model describes the Volterra filter circuit in terms of a second Volterra series; determining reference transfer functions of the Volterra filter circuit by a Pth order inverse technique based on the first Volterra series; and determining filter coefficients of the Volterra filter circuit based on the determined reference transfer functions and based on the second Volterra series.

2. The method of claim 1, wherein an order of the first Volterra series and/or an order of the second Volterra series is smaller than or equal to three.

3. The method of claim 1, wherein transfer functions or impulse responses of the non-linear electronic system are determined based on the input signal, the output signal, and the first Volterra series, wherein the reference transfer functions of the Volterra filter circuit are determined based on the determined transfer functions or impulse responses of the non-linear electronic system.

4. The method according to claim 1, wherein the filter coefficients of the Volterra filter circuit are determined based on the determined reference transfer functions via a least squares method.

5. The method of claim 4, wherein a cost functional is provided, wherein the cost functional describes a spectral error signal power in dependence of the reference transfer functions, and wherein the cost functional is minimized in order to determine the filter coefficients of the Volterra filter circuit.

6. The method of claim 5, wherein the cost functional comprises a spectral weighting function.

7. The method according to claim 3, wherein the reference transfer functions of the Volterra filter circuit are obtained by a Pth order inverse technique in frequency domain or in time domain.

8. The method according to claim 1, wherein the filter coefficients of the Volterra filter circuit are pruned.

9. The method according to claim 8, wherein the filter coefficients are pruned such that frequency superpositions are reduced.

10. The method according to claim 1, wherein the input signal is a multi-frequency signal, wherein the multi-frequency signal comprises several different signal components having a different predefined frequency, respectively.

11. The method of claim 10, wherein the multi-frequency signal comprises at least three different signal components.

12. The method of claim 10, wherein the predefined frequencies are chosen such that frequency superpositions are reduced.

13. The method according to claim 1, wherein the first Volterra series is determined based on the input signal and the output signal.

14. An equalizer circuit for equalizing a non-linear electronic system, wherein the equalizer circuit comprises a Volterra filter circuit, and wherein filter coefficients of the Volterra filter circuit are determined by a method according to claim 1.

15. An electronic device, comprising an equalizer circuit according to claim 14.

16. The electronic device of claim 15, wherein the electronic device is established as at least one of a measurement instrument, a broad-band amplifier, an analog-to-digital converter, a digital-to-analog converter, and a signal generator.

17. The electronic device of claim 15, wherein the electronic device is established as an oscilloscope.

Description

DESCRIPTION OF THE DRAWINGS

[0049] The foregoing aspects and many of the attendant advantages of the claimed subject matter will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:

[0050] FIG. 1 schematically shows an electronic device according to a first embodiment of the present disclosure;

[0051] FIG. 2 schematically shows an electronic device according to a second embodiment of the present disclosure;

[0052] FIG. 3 shows an example of flowchart of a representative method of determining filter coefficients according to an embodiment of the present disclosure; and

[0053] FIG. 4 schematically shows an implementation of an equalizer circuit according to an embodiment of the present disclosure.

DETAILED DESCRIPTION

[0054] The detailed description set forth below in connection with the appended drawings, where like numerals reference like elements, is intended as a description of various embodiments of the disclosed subject matter and is not intended to represent the only embodiments. Each embodiment described in this disclosure is provided merely as an example or illustration and should not be construed as preferred or advantageous over other embodiments. The illustrative examples provided herein are not intended to be exhaustive or to limit the claimed subject matter to the precise forms disclosed. Similarly, any steps described herein may be interchangeable with other steps, or combinations of steps, in order to achieve the same or substantially similar result. Moreover, some of the method steps can be carried serially or in parallel, or in any order unless specifically expressed or understood in the context of other method steps.

[0055] FIG. 1 schematically shows an electronic device 10. The electronic device 10 comprises a non-linear electronic component 12 and an equalizer circuit 14. In general, the electronic device 10 may be any kind of signal-processing electronic device or signal-generating electronic device. For example, the electronic device 10 may be established as a measurement instrument, as a broad-band amplifier, as an analog-to-digital converter, as a digital-to-analog converter, or as a signal generator. In some embodiments, the electronic device 10 may be established as an oscilloscope.

[0056] The non-linear electronic component 12 may be any electronic component that is configured to process an input signal x, thereby generating an output signal y. For example, the non-linear electronic component 12 may be an amplifier, an analog-to-digital converter, or a digital-to-analog converter.

[0057] Therein, the dependence of the output signal y on the input signal x is not linear, but comprises higher order terms. Accordingly, the output signal y is a function of the input signal x and can be written as follows


y=A.Math.x+O(x.sup.2),

i.e. as a linear term plus higher order terms. Therein, y=(y(n=0), y(n=1), . . . ).sup.T is a vector comprising the output signal samples y(n), and x=(x(n=0), x(n=1), . . . ).sup.T is a vector comprising the input signal samples x(n).

[0058] The non-linear terms may cause unwanted distortions of the output signal y.

[0059] In order to counteract these distortions, the equalizer circuit 14 is configured to equalize the output signal y, e.g. pre-distort a signal processed, such that the unwanted distortions are removed from the output signal y. For this purpose, the equalizer circuit 14 comprises, for example, a Volterra filter circuit 16 with filter coefficients that are adapted to remove the unwanted perturbations from the output signal y. The functionality of the Volterra filter circuit 16 will be described in more detail hereinafter.

[0060] FIG. 2 schematically shows a second embodiment of the electronic device 10, wherein the electronic device 10 is established as a signal generator. For example, the electronic device 10 may be established as an arbitrary signal generator. Accordingly, the non-linear electronic component 12 may be established as any component being configured to generate a predetermined output signal y or to convert a digital input signal x to an analog output signal y.

[0061] The electronic device 10 comprises a control circuit 18 that is configured to generate the input signal x, wherein the input signal x comprises instructions for the electronic component 12 to generate the output signal y. The equalizer circuit 14 may be interconnected between the control circuit 18 and the non-linear electronic component 12.

[0062] Accordingly, the equalizer circuit 14 or the Volterra filter circuit 16 is configured to adapt the input signal x such that the output signal y does not comprise any non-linear distortions. In other words, the Volterra filter circuit 16 is configured to pre-compensate, also called pre-distort, the non-linear distortions that would be caused by the non-linear electronic component 12.

[0063] Alternatively, the electronic device 10 of FIG. 2 may be established as a digital-to-analog converter.

[0064] Accordingly, the equalizer circuit 14 or the Volterra filter circuit 16 is configured to adapt the digital input signal x such that the analog output signal y does not comprise any non-linear distortions. In other words, the Volterra filter circuit 16 is configured to pre-compensate the non-linear distortions that would be caused by the non-linear electronic component 12.

[0065] The equalizer circuit 14 needs to be properly calibrated, i.e. the filter coefficients of the Volterra filter circuit 16 need to be properly set, such that the Volterra filter circuit 16 correctly equalizes the output signal y.

[0066] The correct filter coefficients for the Volterra filter circuit can be obtained by a method of determining filter coefficients of the equalizer circuit 14. One example of the method is described in the following with reference to FIG. 3.

[0067] Without restriction of generality, the representative method is described in the following in the context of the electronic device 10 of FIG. 1. However, it is to be understood that the method can readily be adjusted for the electronic device 10 of FIG. 2.

[0068] An input signal x is provided (step S1). In general, the input signal x is a calibration signal that is used in order to calibrate the equalizer circuit 14. Accordingly, the input signal x may have known properties, i.e. a known spectrum, known amplitudes and/or known phases.

[0069] The input signal x may be received from an external electronic device, for example from a signal generator or from a device under test. Alternatively, the input signal x may be generated by another internal electronic component of the electronic device 10.

[0070] The input signal x is processed by the non-linear electronic component 12, thereby generating the output signal y (step S2).

[0071] A first mathematical model is provided, wherein the first mathematical model describes the non-linear electronic component 12 in terms of a first Volterra series. In general, Volterra series can be used in order to describe non-linear systems that are frequency-dependent and independent of a signal level. The output signal y can then be written in terms of the input signal x as follows:

[00001] ? ( E . 1 ) ? indicates text missing or illegible when filed

[0072] Therein, M is the maximum order of the Volterra series, h.sub.m(μ.sub.0, . . . ) are multi-dimensional impulse responses, and L.sub.m,μ is the length of the impulse response for the dimension μ and for the order m.

[0073] In other words, the non-linear electronic component 12 can be described as a Volterra filter, and may also be called Volterra system, wherein L.sub.m,μ is the length of the Volterra filter of order m for the dimension μ. This interpretation will be used in the following.

[0074] The filter coefficients h.sub.m(t.sub.0/T.sub.a, . . . , t.sub.m−1/T.sub.a) of the Volterra system are ambiguous, as multiple filter coefficients lead to the same product signal

[00002] x ( t 0 / T a , .Math. , t m - 1 / T a ) = .Math. α = 0 m - 1 x ( t a / T a ) ( E .2 )

[0075] in equation (E.1). Therein, T.sub.a is the sampling time associated with the input signal x, i.e. f.sub.a=1/T.sub.a is the sampling frequency of the input signal x.

[0076] For example, the filter coefficients


{h.sub.2(t.sub.0/T.sub.a,t.sub.1/T.sub.a),h.sub.2(t.sub.1/T.sub.a,t.sub.0/T.sub.a)}   (E.3)

[0077] of a Volterra system of order m=2 yield the same product signal x(t.sub.0/T.sub.a,t.sub.1/T.sub.a). Likewise, the following filter coefficients of a Volterra system of order m=3 yield the same product signal x(t.sub.0/T.sub.a,t.sub.1/T.sub.a,t.sub.2/T.sub.a):


{h.sub.3(t.sub.0/T.sub.a,t.sub.1/T.sub.a,t.sub.2/T.sub.a),h.sub.3(t.sub.2/T.sub.a,t.sub.0/T.sub.a,t.sub.1/T.sub.a),h.sub.3(t.sub.1/T.sub.a,t.sub.2/T.sub.a,t.sub.0/T.sub.a),h.sub.3(t.sub.2/T.sub.a,t.sub.1/T.sub.a,t.sub.0/T.sub.a),h.sub.3(t.sub.1/T.sub.a,T.sub.0/T.sub.a,t.sub.2/T.sub.a),h.sub.3(t.sub.0/T.sub.a,t.sub.2/T.sub.a,t.sub.1/T.sub.a),}   (E.4)

Accordingly, there is a certain freedom of choice when describing the non-linear electronic component 12 in terms of the Volterra series of equation (E.1).

[0078] In some embodiments, the ambiguous filter coefficients h.sub.m may be chosen such that only one coefficient of a set of ambiguous coefficients is non-zero. Alternatively, the ambiguous filter coefficients may be chosen to be all equal to each other, such that a transfer function of the Volterra system has an additional symmetry.

[0079] The Fourier transform of equation (E.1) yields the spectrum Y of the output signal y:

[00003] Y ( f / f a ) = .Math. m = 1 M Y m ( f / f a ) = .Math. m = 1 M .Math. f 0 / f a = 0 N - 1 - .Math. f m - 1 / f a = 0 a - 1 H m ( f 0 / f a , .Math. , f m - 1 / f n ) .Math. .Math. a = 0 m - 1 X ( f a / f a ) .Math. δ 1 ( f / f a - f 0 / f a - .Math. - f m - 1 / f a ) ( E .5 )

[0080] Therein,

[00004] X ( f / f a ) = .Math. t / T a = 0 N - 1 x ( t / T a ) .Math. e - j .Math. 2 n .Math. t / T a .Math. f / f a ( E .6 )

[0081] is the spectrum of the input signal x, and

[00005] H m ( f 0 / f a , .Math. , f m - 1 / f a ) = .Math. t 0 / T a = 0 N - 1 - .Math. t m - 1 / T n = 0 N - 1 h m ( t 0 / T a , .Math. , t m - 1 / T a ) .Math. e - j .Math. 2 n .Math. ( t 0 / T a .Math. f 0 / f a + .Math. + t m - 1 / T a .Math. f m - 1 / f a ) ( E .7 )

[0082] is the transfer function of the Volterra system, i.e. the transfer function of the non-linear electronic component 12.

[0083] Moreover, N is the length of the Fourier transform, and δ.sub.1(f/f.sub.a) is a Kronecker-delta-operator, which operates with respect to its argument modulo 1:


δ.sub.1(f/f.sub.a)=δ(mod{f/f.sub.a,1}).   (E.8)

[0084] Transfer functions of real-valued Volterra systems have a complex conjugate symmetry:


H.sub.m(−f.sub.0/f.sub.a, . . . ,−f.sub.m−1/f.sub.a)=H.sub.m*(f.sub.0/f.sub.a, . . . ,f.sub.m−1/f.sub.a).   (E.9)

[0085] If the impulse responses h.sub.m(t.sub.0/T.sub.a, . . . , t.sub.m−1/T.sub.a) are symmetric, then transfer functions of Volterra systems of order m=2 have the additional symmetry


H.sub.2(f.sub.0/f.sub.a,f.sub.1/f.sub.a)=H.sub.2(f.sub.1/f.sub.a,f.sub.0/f.sub.a)   (E.10)

while the transfer functions of Volterra systems of order m=3 have the additional symmetry


H.sub.3(f.sub.0/f.sub.a,f.sub.1/f.sub.a,f.sub.2/f.sub.a)=H.sub.3(f.sub.2/f.sub.a,f.sub.0/f.sub.a,f.sub.1/f.sub.a)=H.sub.3(f.sub.1/f.sub.a,f.sub.2/f.sub.a,f.sub.0/f.sub.a)=H.sub.3(f.sub.2/f.sub.a,f.sub.1/f.sub.a,f.sub.0/f.sub.a)=H.sub.3(f.sub.1/f.sub.a,f.sub.0/f.sub.a,f.sub.2/f.sub.a)=H.sub.3(f.sub.0/f.sub.a,f.sub.2/f.sub.a,f.sub.1/f.sub.a)   (E.11)

[0086] In other words, the transfer functions are equal to each other at points where the individual frequencies f.sub.μ/f.sub.a are interchanged arbitrarily.

[0087] From equation (E.5) it can be seen that the sampling rate f.sub.a associated with the input signal x is sufficient to characterize the non-linear electronic component 12 as a Volterra system. Accordingly, the sampling rate does not need to be enhanced, e.g. via an interpolation.

[0088] If the input signal x is established as a multi-frequency signal comprising a number N.sub.T of different signal components having different predefined frequencies f.sub.μ/f.sub.a, amplitudes A.sub.μ and phases ϕ.sub.μ, the input signal can be written as

[00006] X ( f / f a ) = .Math. μ = 0 N τ - 1 A μ .Math. e j ϕ μ .Math. [ δ 1 ( f / f a - f μ f a ) + δ 1 ( f / f a + f μ / f a ) ] ( E .12 )

[0089] In this case, the output signal spectrum Y is given by

[00007] Y m ( f / f a ) = .Math. μ 0 = 0 N γ - 1 - .Math. μ m - 1 = 0 N γ - 1 H m ( f a 0 f a , .Math. , f μ m - 1 f a ) .Math. a = 0 m - 1 A μ a .Math. e j .Math. .Math. ? ? ? ? ϕ μ α .Math. [ δ 1 ( f f a - .Math. a = 0 m - 1 f μ a f a ) + δ 1 ( f f a + .Math. α = 0 m - 1 f ? ? f a ) ] ( E .13 ) ? indicates text missing or illegible when filed

[0090] It is noted that the multi-dimensional impulse responses of some Volterra systems, for example of low-noise amplifiers, are weakly occupied, i.e. most of the components of the multi-dimensional impulse responses are equal to zero.

[0091] If only filter coefficients of the main diagonal of the impulse responses are non-zero, the Volterra series may also be called a “memory polynomial”. If only few diagonals of the impulse responses are non-zero, the Volterra series may also be called an “extended memory polynomial”:

[00008] y ( t / T a ) = .Math. m = 1 M y m ( t / T a ) = .Math. m = 1 M .Math. μ 0 = 0 L - 1 .Math. μ 1 = μ 0 - D m , 1 μ 0 + D m , 1 - .Math. μ m - 1 = μ 0 - D m - 1 , m - 1 μ 0 + D m - 1 , m - 1 h m ( μ 0 , .Math. , μ m - 1 ) .Math. .Math. a = 0 m - 1 x ( t / T a - μ a ) . ( E .14 )

[0092] Therein, the term 2D.sub.m,μ+1 describes the number of diagonals of the impulse response of the Volterra system of order m with respect to dimension pt.

[0093] Based on the input signal x, the output signal y, and the first Volterra series, impulse responses and/or transfer functions of the non-linear electronic component 12 are determined (step S3).

[0094] In the following, two different embodiments are described with respect to the input signal that both allow for determining the impulse responses and/or transfer functions of the non-linear electronic component 12.

[0095] It has turned out that restricting the analysis to the order M=3 is sufficient in both variants.

[0096] According to a first embodiment, the input signal x may be established as a broad-band noise signal.

[0097] Equation (E.1) can be rewritten in a matrix-vector-notation as follows:


y(t/T.sub.a=X(t/T.sub.a).Math.h.   (E.15)

[0098] The vector


h=[h.sub.1(0), . . . ,h.sub.1(L.sub.1−1),h.sub.2(0,0), . . . ,h.sub.2(L.sub.2,0−1,L.sub.2,1−1),h.sub.3(0,0,0), . . . ,h.sub.3(L.sub.3,0−1,L.sub.3,1−1,L.sub.3,2−1)].sup.T   (E.16)

[0099] comprises all filter coefficients of the impulse responses of order m=1, 2, 3, wherein only one filter coefficient of each set of ambiguous filter coefficients is taken into account.

[0100] The matrix

[00009] X _ _ ( t / T a ) = [ x _ T ( t / T a ) .Math. x _ T ( t / T a .Math. N + 1 ) ] ( E .17 )

[0101] comprises vectors


x(t/T.sub.a)=[x(t/T.sub.a), . . . ,x(t/T.sub.a−L.sub.1−1),x(t/T.sub.a).Math.x(t/T.sub.a), . . . ,x(t/T.sub.a−L.sub.2,0+1).Math.x(t/T.sub.a−L.sub.2,1+1).Math.x(t/T.sub.a).Math.x(t/T.sub.a).Math.x(t/T.sub.a), . . . ,x(t/T.sub.a−L.sub.3,0+1).Math.x(t/T.sub.a−L.sub.3,1+1).Math.x(t/T.sub.a−L.sub.3,0+1)].sup.T.   (E.18)

[0102] that comprise the corresponding product signals of the filter coefficients. The vector


y(t/T.sub.a)=[y(t/T.sub.a), . . . ,y(t/T.sub.a−N+1)].sup.T   (E.19)

[0103] comprises the sample points of the output signal y of the non-linear electronic component 12.

[0104] In order to determine the impulse responses and/or transfer functions of the non-linear electronic component 12, a cost functional K is provided, wherein the cost functional K describes a mean error signal power:


K=e.sup.−2(t/T.sub.a)=[X(t/T.sub.a).Math.hy(t/T.sub.a)].sup.T.Math.[X(t/T.sub.a).Math.hy(t/T.sub.a)].   (E.20)

The cost functional is minimized by the following choice of filter coefficients:


h=[X.sup.T(t/T.sub.a).Math.X(t/T.sub.a)].sup.−1.Math.[X.sup.T(t/T.sub.a).Math.y(t/T.sub.a)]   (E.21)

[0105] It is noted that the correlation matrix


C(t/T.sub.a)=[X.sup.T(t/T.sub.a).Math.X(t/T.sub.a)]   (E.22)

[0106] needs to be inverted in order to determine the filter coefficients according to equation (E.21).

[0107] A broad-band noise signal comprises a lot of different frequencies. As can be seen in equation (E.13), several different signal components having different frequencies contribute to the same output signal frequency. In other words, there is a superposition of contributions from different input signal frequencies contributing to the same output signal frequency.

[0108] Such superpositions can occur within the same order m of the Volterra system and/or across different orders m of the Volterra system.

[0109] For example, within the order m=2, all frequencies {−f.sub.in/f.sub.a,+f.sub.in/f.sub.a} always superpose to give an output frequency of zero. Within the order m=3, the input frequencies {−f.sub.in,0/f.sub.a,+f.sub.in,0/f.sub.a,+f.sub.in,1/f.sub.a} always yield an output frequency f.sub.out/f.sub.a=f.sub.in,1/f.sub.a.

[0110] An example for such superpositions between different orders are input frequencies {0.15,0.15} for m=2 and {0.1,0.1,0.1} for m=3, which both yield an output frequency of f.sub.out/f.sub.a=0.3.

[0111] Thus, using a broad-band noise signal as input signal x leads to a systematically overdetermined computation problem.

[0112] It has turned out that that the correlation matrix defined in equation (E.22) has a rather high condition, i.e. a high amplification factor of errors, which further complicates the matrix inversion.

[0113] Moreover, the correlation matrix comprises expectation values of higher order, namely

[00010] r x o ( T 0 / T a , T 1 / T a , .Math. , T o - 1 / T a ) = E { .Math. μ = 0 o - 1 ϰ ( t / T a - T μ / T a ) } . ( E .23 )

[0114] More precisely, depending on the maximum order M of the Volterra system, the correlation matrix comprises expectation values of the orders


o={2,3, . . . ,2M}   (E.24)

[0115] These problems can be counteracted by enhancing the numeric precision for the matrix inversion and/or by enhancing the observation length N for determining the correlation matrix. However, this may considerably increase the necessary computation time.

[0116] According to a second embodiment, the input signal x may be established as a multi-frequency signal comprising a pre-defined number N.sub.T of signal components having different frequencies.

[0117] The output signal of the Volterra system then comprises spectral components having output frequencies

[00011] f out , a / f a = mod { .Math. μ = 0 m - 1 f in , μ , a / f a , 1 } , ( E .25 )

[0118] which are generated by groups of m input frequencies {f.sub.in,0,α/f.sub.a, . . . , f.sub.in,m−1,α/f.sub.a}, wherein frequencies within a group a may be partially or completely the same.

[0119] If the amplitudes and phases of the input signal x are known and the amplitudes and phases of the output signal y are determined, the transfer functions H.sub.m({f.sub.in,0,α/f.sub.a, . . . , f.sub.in,m−1,α/f.sub.a}) can be determined at the spectral positions {f.sub.in,0,α/f.sub.a, . . . , f.sub.in,m−1,α/f.sub.a} of the frequency group α.

[0120] As described above in the context of the input signal being established as a broad-band noise signal, different groups of input frequencies can contribute to the same output frequency.

[0121] Accordingly, several contributions associated with different transfer functions superpose, and the transfer functions may not be determinable at these spectral positions.

[0122] It has turned out that there are different classes of such ambiguities, namely [0123] the ambiguities originate within a single order m of the Volterra system; [0124] the ambiguities originate across different orders m of the Volterra system; [0125] the ambiguities are systematic, i.e. they cannot be avoided by choosing another set of input frequencies; and [0126] the ambiguities are non-systematic, i.e. they can be avoided by choosing another set of input frequencies.

[0127] Accordingly, the input frequencies of the input signal x are chosen such that only the systematic ambiguities remain and there are no non-systematic ambiguities. The correct input frequencies can, for example, be found by solving a corresponding optimization problem with an intelligent search technique.

[0128] It is noted that in order to fully characterize a Volterra system of maximum order M=3, a minimum number N.sub.T=3 of different signal components having different frequencies is required.

[0129] The transfer functions H.sub.m of the Volterra system (i.e. of the non-linear electronic component 12)

[00012] H m ( f 0 f a , .Math. , f m - 1 f a ) = c ( m ) N comb ( m , f 0 / f a , .Math. , f m - 1 / f a ) .Math. A out ( f out / f a ) .Math. μ = 0 m - 1 A in ( f μ / f a ) .Math. e j .Math. ϕ out ( f out / f a ) .Math. j .Math. .Math. μ = 0 m - 1 ϕ in ( f μ / f a ) ( E .26 )

[0130] at the spectral positions {f.sub.0/f.sub.a, . . . , f.sub.m−1/f.sub.a} depend on the amplitude A (f.sub.out/f.sub.a) and the phase ϕ.sub.out(f.sub.out,f.sub.a) of the output signal that are associated with the input frequencies {f.sub.0/f.sub.a, . . . , f.sub.m−1/f.sub.a}.

[0131] Moreover, the transfer functions H.sub.m depend on the amplitudes A.sub.in (f.sub.μ/f.sub.a) and the phases ϕ.sub.in(f.sub.μ/f.sub.a) of the components of the input signal x.

[0132] In equation (E.26), the factor c(m) is a scaling factor that depends on the order m, wherein c(1)=1, c(2)=2, and c(3)=4.

[0133] The factor N.sub.comb is a combinatorial factor, wherein: [0134] N.sub.comb(m=1)=1; [0135] N.sub.comb(m=2,f.sub.0/f.sub.a,f.sub.1/f.sub.a) is equal to 1 if f.sub.0=f.sub.1 and is equal to 2 otherwise; and [0136] N.sub.comb (m=3,f.sub.0/f.sub.a,f.sub.1/f.sub.a,f.sub.2/f.sub.a) is equal to 1 if all frequencies are identical, equal to 3 if two frequencies are identical, and equal to 6 if all frequencies are different from each other.

[0137] It has turned out that the transfer functions H.sub.m determined according to equation (E.26) are symmetric, and the associated impulse responses h.sub.m are axisymmetric.

[0138] Put differently, the transfer functions H.sub.m are sampled with the multi-frequency input signal x.

[0139] In some embodiments, the individual signal components of the input signal x are non-equidistant in frequency domain, i.e. the value of f.sub.i−f.sub.j is different for each pair of frequencies f.sub.i, f.sub.j of the input signal.

[0140] In order to determine the transfer functions H.sub.m according to equation (E.26), the amplitudes A.sub.μ and phases ϕ.sub.μ of the output signal y have to be determined.

[0141] The output signal y can be written as

[00013] y ( t / t a ) = .Math. μ = 0 N r - 1 A μ .Math. sin ( 2 π .Math. f μ / f a .Math. t / T a + ϕ μ ) = .Math. μ = 0 N r - 1 C μ .Math. sin ( 2 π .Math. f μ / f a .Math. t / T a ) + D μ .Math. cos ( 2 π .Math. f μ / f a .Math. t / T a ) ( E .27 )

[0142] Equation (E.27) can be re-written in matrix-vector-notation as follows:


y(t/T.sub.a)=X(t/T.sub.a).Math.h.   (E.28)

[0143] The vector


h=[C.sub.0,D.sub.0,C.sub.1,D.sub.1, . . . ,C.sub.N.sub.T.sub.−1,D.sub.N.sub.T.sub.−1].sup.T   (E.29)

[0144] comprises all amplitudes of the sine terms and of the cosine terms in equation (E.27). The matrix

[00014] X _ _ ( t / T a ) = [ x _ T ( t / T a ) .Math. x _ T ( t / T a - N + 1 ) ] ( E .30 )

comprises the vectors


x(t/T.sub.a)=[sin(2π.Math.f.sub.0/f.sub.a.Math.t/T.sub.a),cos(2π.Math.f.sub.0/f.sub.a.Math.t/T.sub.a), . . . ,sin(2π.Math.f.sub.N.sub.T.sub.−1/f.sub.a.Math.t/T.sub.a),cos(2π.Math.f.sub.N.sub.T.sub.−1/f.sub.a.Math.t/T.sub.a)].sup.T,   (E.31)

[0145] which comprise the sample points associated with the sine terms and the cosine terms. N is the number of samples that is used for determining the amplitudes and phases.

[0146] The vector)


y(t/T.sub.a)=[y(t/T.sub.a), . . . ,y(t/T.sub.a−n+1)].sup.T   (E.32)

[0147] comprises the samples of the output signal y.

[0148] In order to determine the amplitudes C.sub.μ and D.sub.μ, a cost functional K is provided, wherein the cost functional K describes a mean error signal power:


K=e.sup.−2(t/T.sub.a)=[X(t/T.sub.a).Math.hy(t/T.sub.a)].sup.T.Math.[X(t/T.sub.a).Math.hy(t/T.sub.a)].   (E.33)

[0149] The cost functional is minimized by the following amplitude vector:


h=[X.sup.T(t/T.sub.a).Math.X(t/T.sub.a)].sup.−1.Math.[X.sup.T(t/T.sub.a).Math.y(t/T.sub.a)]   (E.34)

[0150] The inverse of the correlation matrix


X.sup.T(t/T.sub.a).Math.X(t/T.sub.a)   (E.35)

[0151] can be determined a priori, and may be saved in a memory for later usage.

[0152] The phases ϕ.sub.μ can then be determined from the equation


ϕ.sub.μ=atan(D.sub.μ/C.sub.μ)   (E.36)

[0153] The amplitudes A.sub.μ can then be determined according to the equation


A.sub.μ=C.sub.μ/sin(ϕ.sub.μ)   (E.37)

[0154] There are two special cases at f/f.sub.a=0 and f/f.sub.a=−½. In these cases, only the amplitude A.sub.μ has to be determined. Thus, in these cases the parameter D.sub.μ has to be set to zero in equations (E.27) and (E.29).

[0155] Optionally, the impulse responses h.sub.m of the non-linear electronic component 12 may be determined based on the determined transfer functions H.sub.m (step S4).

[0156] Equation (E.7) can be reformulated in matrix-vector notation as follows:


y=X.Math.h.   (E.38)

[0157] The vector


h=[h.sub.m(0, . . . ,0), . . . ,h.sub.m(L.sub.m−1, . . . ,L.sub.m−1)].sup.T   (E.39)

[0158] comprises all impulse responses of the non-linear electronic component 12 (the impulse responses may also be called filter coefficients of the Volterra system representing the non-linear electronic component 12). The reference vector


y=[H.sub.m(f.sub.0/f.sub.a, . . . ,f.sub.0/f.sub.a), . . . ,H.sub.m(f.sub.N−1/f.sub.a, . . . ,f.sub.N−1/f.sub.a)].sup.T   (E.40)

comprises the transfer functions H.sub.m of the non-linear electronic component 12, i.e. of the Volterra system. The matrix

[00015] X = [ x _ T ( f 0 / f a , .Math. , f 0 / f a ) .Math. x _ T ( f N - 1 / f a , .Math. , f N - 1 / f a ) ] ( E .41 )

[0159] comprises vectors


x(f.sub.0/f.sub.a), . . . ,f.sub.m−1/f.sub.a)=[e.sup.−j.Math.2π.Math.[f.sup.0.sup./f.sup.a.sup..Math.0+ . . . +f.sup.m−1.sup./f.sup.a.sup..Math.0], . . . ,e.sup.−j.Math.2π.Math.[f.sup.0.sup./f.sup.a.sup..Math.(L.sup.m.sup.−1)+ . . . +f.sup.m−1.sup./f.sup.a.sup..Math.(L.sup.m.sup.−1)]].sup.T,   (E.42)

[0160] that comprise the exponential functions of the respective Fourier transforms.

[0161] The following cost functional K is provided, wherein the cost functional K describes a mean spectral error signal power:


K=Ē.sup.2=[X.Math.hy].sup.T.Math.diag{W}.Math.[X.Math.hy].   (E.43)

[0162] Therein, the vector


W=[W(f.sub.0/f.sub.a, . . . ,f.sub.0/f.sub.a), . . . ,W(f.sub.N−1/f.sub.a, . . . ,f.sub.N−1/f.sub.a)].sup.T   (E.44)

[0163] is a spectral weighting function. Via the spectral weighting function, the spectral quality of the Volterra system can be controlled.

[0164] The cost functional K is minimized by the following filter coefficients (i.e. impulse responses) of the Volterra system:


h=[diag{W}.Math.X.sup.T.Math.X].sup.−1.Math.[diag{W}.Math.X.sup.T.Math.y]   (E.45)

[0165] It has turned out that the minimization problem defined by equations (E.38) to (E.45) is not ambiguous, and that the correlation matrix


diag{W}.Math.X.sup.T.Math.X   (E.46)

[0166] only has a small or moderate condition.

[0167] The inverse of the correlation matrix can be determined a priori, and may be saved in a memory for later usage.

[0168] The transfer functions H.sub.m do not have to be sampled in an equidistant manner. However, the maximum frequency distance puts an upper boundary on the length L.sub.m of the impulse response h.sub.m(t.sub.0/T.sub.a, . . . , t.sub.m−1/T.sub.a):

[00016] L m 1 max μ , v { .Math. "\[LeftBracketingBar]" f μ / f a - f v / f a .Math. "\[RightBracketingBar]" } ( E .47 )

[0169] It is noted that the minimization technique described in equations (E.38) to (E.47) can also be used for memory polynomials or otherwise pruned Volterra series. In that case, the impulse responses that are equal to zero have to be deleted from equation (E.39).

[0170] Filter coefficients of the Volterra filter circuit 16 are determined based on the determined transfer functions H.sub.m of the non-linear electronic component 12 (step S5).

[0171] In some embodiments, the filter coefficients of the Volterra filter circuit 16 are determined by a Pth order inverse technique, as will be described in more detail below.

[0172] In general, the Volterra filter circuit 16 is described by a second mathematical model, more precisely by a second Volterra series, analogously to equation (E.1).

[0173] First, the Pth order inverse technique will be described in time domain.

[0174] The filter coefficients h.sub.eq,1 of order m=1 of the Volterra filter circuit 16 are defined by the following equation:

[00017] y ( k ) = .Math. μ 0 h eq , 1 ( μ 0 ) .Math. .Math. α 0 h 1 ( α o ) .Math. x ( k - μ 0 - α 0 ) = x ( k ) . ( E . 48 )

[0175] Therein, h.sub.m(k.sub.0, k.sub.1, . . . , k.sub.m−1) are the impulse responses of the Volterra system (i.e. of the non-linear electronic system 12) that have already been determined, while h.sub.eq,m are the desired impulse responses, i.e. the filter coefficients of the Volterra filter circuit 16.

[0176] In order for the output signal y(k) of the equalizer circuit 14 to be equal to the input signal x(k) of the non-linear electronic component 12, the condition

[00018] .Math. μ 0 h eq , 1 ( μ 0 ) .Math. h 1 ( - μ 0 ) = 1 ( E . 49 )

[0177] has to be fulfilled for μ.sub.0+α.sub.0=0, while the condition

[00019] .Math. μ 0 h eq , 1 ( μ 0 ) .Math. h 1 ( D - μ 0 ) = 0 ( E . 50 )

[0178] has to be fulfilled for μ.sub.0+α.sub.0=D≠0. Equations (E.49) and (E.50) define a system of equations that can be solved by a minimum square error technique.

[0179] For the second order, i.e. m=2, the following condition has to be fulfilled:

[00020] ? ( E . 51 ) ? indicates text missing or illegible when filed

[0180] This leads to the following expression for the second order filter coefficients of the Volterra filter circuit 16:

[00021] ? ( E . 52 ) ? indicates text missing or illegible when filed

[0181] For the third order, i.e. m=3, the condition is that there should be no distortions of order m=3 at the output of the Volterra filter circuit 16. In a shortened notation, this condition can be expressed as


Q.sub.3=K.sub.3H.sub.3+K.sub.2[H.sub.1+H.sub.2]−K.sub.2H.sub.1−K.sub.2H.sub.2+K.sub.3H.sub.1=0   (E.53)

[0182] wherein K.sub.m represents the Volterra filter circuit 16 at order m, and wherein H.sub.m represents the Volterra system (i.e. the non-linear electronic component 12) at order m.

[0183] K.sub.1 and K.sub.2 have already been determined above, cf. equations (E.50) and (E.52).

[0184] The third order contribution of the Volterra filter circuit 16 is then given by


K.sub.3=−K.sub.1H.sub.3K.sub.1−K.sub.2[H.sub.1+H.sub.2]K.sub.1+K.sub.2H.sub.1K.sub.1+K.sub.2H.sub.2K.sub.1=−K.sub.1H.sub.3K.sub.1−K.sub.2[H.sub.1+H.sub.2]K.sub.1+K.sub.2+K.sub.2H.sub.2K.sub.2=.sub.(1)+T.sub.(2)+T.sub.(3)+T.sub.(4).   (E.54)

[0185] In the following, the explicit expressions for the terms T.sub.(μ) are given:

[00022] ? ( E . 55 ) ? indicates text missing or illegible when filed

[0186] For the calculation of the impulse response h.sub.eq,3 of the third order of the Volterra filter circuit 16, only product signals x(k.sub.0).Math.x(k.sub.1).Math.x(k.sub.2) with three sample values may contribute. It has turned out that terms that do not meet this condition completely cancel each other.

[0187] Accordingly, it holds

[00023] ? ( E . 56 ) ? indicates text missing or illegible when filed

[0188] The result for the third order filter coefficients of the Volterra filter circuit 16 has two contributions, namely h.sub.eq,3.sup.(1) and h.sub.eq,3.sup.(2), which are given by

[00024] ? ( E . 57 ) ? indicates text missing or illegible when filed

[0189] The third order filter coefficients of the Volterra filter circuit 16 are then given by


h.sub.eq,3(μ.sub.0,μ.sub.1,μ.sub.2)=h.sub.eq,3.sup.(1)(μ.sub.0,μ.sub.1,μ.sub.2)+h.sub.eq,3.sup.(2)(μ.sub.0,μ.sub.1,μ.sub.2)   (E.58)

[0190] With the same technique, filter coefficients h.sub.eq,m(k.sub.0,k.sub.1,k.sub.2) of extended memory polynomials or pruned impulse responses can be determined. In this case, only sample times lying on the diagonals of the impulse responses h.sub.eq,m(k.sub.0,k.sub.1,k.sub.2) are considered.

[0191] The determined impulse responses h.sub.eq,m(k.sub.0, k.sub.1, k.sub.2) may not be the final filter coefficients for the Volterra filter circuit 16. Instead, the determined impulse responses h.sub.eq,m(k.sub.0, k.sub.1, k.sub.2) may serve as reference impulse responses h.sub.eq,ref,m(k.sub.0,k.sub.1,k.sub.2) for determining the final filter coefficients of the Volterra filter circuit 16, as will be described in more detail below.

[0192] Alternatively to the time-domain technique described above, the filter coefficients of the Volterra filter circuit 16 can also be determined by a Pth order inverse technique in frequency domain.

[0193] First, equation (E.5) is formulated for the maximum order M=3, and the innermost summation is performed, resulting in

[00025] ? ( E . 59 ) ? indicates text missing or illegible when filed

[0194] The condition for the first order of the Volterra filter circuit 16 is


Y(f/f.sub.a)=H.sub.eq,1(f/f.sub.a).Math.H.sub.1(f/f.sub.a).Math.X(f/f.sub.a)=X(f/f.sub.a).   (E.60)

[0195] This immediately yields the following result for an arbitrary input signal spectrum X(f/f.sub.a):

[00026] ? ( E . 61 ) ? indicates text missing or illegible when filed

[0196] The condition for the second order of the Volterra filter circuit 16 is

[00027] ? ( E . 62 ) ? indicates text missing or illegible when filed

[0197] This yields the following result:


H.sub.eq,2(f.sub.0/f.sub.a,f.sub.1/f.sub.a)=−H.sub.eq,1(f.sub.0/f.sub.a+f.sub.1/f.sub.a mod 1).Math.H.sub.2*f.sub.0/f.sub.a,f.sub.1/f.sub.a).Math.H.sub.eq,1(f.sub.0/f.sub.a).Math.H.sub.eq,1(f.sub.1/f.sub.a).   (E.63)

[0198] For the third order of the Volterra filter circuit 16, the frequency-domain analogues of the terms given in equation (E.55) are determined. The result is

[00028] ? ( E . 64 ) ? indicates text missing or illegible when filed

[0199] For the calculation of the transfer function H.sub.eq,3 of the third order of the Volterra filter circuit 16, only product spectra X (f.sub.0/f.sub.a).Math.X(f.sub.1/f.sub.a).Math.X(f.sub.2/f.sub.a) with three frequencies may contribute. It has turned out that terms that do not meet this condition completely cancel each other.

[0200] Accordingly, it holds

[00029] ? ( E . 65 ) ? indicates text missing or illegible when filed

[0201] The result for the third order transfer function of the Volterra filter circuit 16 has two contributions, namely H.sub.eq,3.sup.(1) and H.sub.eq,3.sup.(2), which are given by

[00030] ? ( E . 66 ) ? indicates text missing or illegible when filed

[0202] The third order transfer function of the Volterra filter circuit 16 is then given by


H.sub.eq,3(f.sub.0/f.sub.a,f.sub.1/f.sub.a,f.sub.2/f.sub.a)=H.sub.eq,3.sup.(1)(f.sub.0/f.sub.a,f.sub.1/f.sub.a,f.sub.2/f.sub.a)+H.sub.eq,3.sup.(2)(f.sub.0/f.sub.a,f.sub.1/f.sub.a,f.sub.2/f.sub.a)   (E.67)

With the technique described in equations (E.59) to (E.67), reference transfer functions H.sub.eq,ref,m(f.sub.0f.sub.a, . . . , f.sub.m−1/f.sub.a) are determined in the frequency domain.

[0203] Alternatively, the reference transfer functions may be determined based on the reference impulse responses h.sub.eq,ref,m(k.sub.0,k.sub.1,k.sub.2) by a Fourier transform.

[0204] The (final) filter coefficients h.sub.eq,m of the Volterra filter circuit 16 can then be determined by a minimum square technique as described in equations (E.38) to (E.47) applied to the reference transfer functions H.sub.eq,ref,m(f.sub.0/f.sub.a, . . . , f.sub.m−1/f.sub.a).

[0205] Therein, a desired structure can be imposed on the filter coefficients e.g. a memory polynomial structure, an extended memory polynomial structure, or otherwise pruned impulse responses.

[0206] With the spectral weighting function W, the spectral quality of the Volterra filter circuit 16 can be controlled. It has turned out that a particular high equalization accuracy for equalizing unwanted non-linear disturbances is achievable this way.

[0207] It is to be understood that while the representative method(s) above is described in the context of the single non-linear electronic component 12 causing the non-linear distortions, the method(s) can readily be applied to several non-linear electronic components and/or to a whole non-linear electronic system comprising several non-linear electronic components that are interconnected.

[0208] Accordingly, filter coefficients of the Volterra filter circuit 16 may be adapted such that the equalizer circuit 14 is configured to equalize the non-linear electronic system.

[0209] In other words, the Volterra filter circuit 16 processes the output signal y of the non-linear electronic component 12, thereby generating an equalized output signal y.sub.eq that corresponds to the output signal y of the non-linear electronic component 12, but with the non-linear distortions removed.

[0210] FIG. 4 shows one possible implementation of the equalizer circuit 14 with the Volterra filter circuit 16. The equalizer circuit 14 is established, for example, as a digital filter circuit. The Volterra filter circuit 16 comprises several short-length finite impulse response (FIR) filters 20 that are arranged in parallel. The FIR filters 20 each are established in hardware. For example, the FIR filters 20 each may comprise FPGAs and/or ASICs.

[0211] Each of the short-length FIR filters 20 is configured to receive signal samples that are associated with the output signal y of the non-linear electronic component 12 (the output signal of the y of the non-linear electronic component 12 is the input signal of the equalizer circuit 14).

[0212] In the following, the output signal y of the non-linear electronic component is denoted as “filter input signal”, and the equalized output signal y.sub.eq is denoted as “filter output signal”.

[0213] Each short-length FIR filter 20 receives a product of at least two filter input signal samples, i.e. the filter input signal associated with each short-length FIR filter 20 comprises a product of at least two filter input signal samples, i.e. a product

[00031] x ( t 0 / T a - 0 , .Math. , t 0 / T a - μ m - 1 ) = .Math. a = 0 m - 1 x ( t 0 / T a - μ α ) . ( E . 68 )

[0214] The short-length FIR filters 20 are each configured to determine one term of the second Volterra series as defined in equation (E.1) or (E.14), but with the impulse responses h being replaced by the determined filter coefficients h.sub.eq.

[0215] Therein, different FIR filters 20 are associated with different diagonals of the second Volterra series.

[0216] In general, the number of necessary FIR filters 20 depends on the maximum order M of the second Volterra series and on the number of non-zero diagonals of the second Volterra series.

[0217] As already explained above, the maximum order of the second Volterra series is M=3.

[0218] For example, the second Volterra series may comprise D.sub.2=D.sub.3=2 non-zero diagonals. In this case, one FIR filter 20 is necessary for determining the first order (m=1) term of the second Volterra series. Two FIR filters 20 are necessary for determining the second order (m=2) term of the second Volterra series. Four FIR filters 20 are necessary for determining the third order (m=3) term of the third order Volterra series.

[0219] Thus, in the representative example shown in FIG. 4, the Volterra filter circuit 16 comprises seven FIR filters 20.

[0220] Each FIR filters 20 determines one term of the second Volterra series based on the filter input signal y and based on the filter coefficients h.sub.eq. Thus, the output signal of each FIR filter 20 is associated with one term of the second Volterra series, i.e. with a certain diagonal of the second Volterra series.

[0221] The output signals of all FIR filters 20 are summed by a summation circuit 22, thereby generating the equalized output signal y.sub.eq.

[0222] It has turned out that product signals as defined in equation (E.68) can be processed in a particularly resource-efficient manner by short-length FIR filters. Thus, the present disclosure provides a particularly resource-efficient equalizer circuit for equalizing non-linear systems.

[0223] In some embodiments, it has turned out that the equalizer circuit 14 described above is capable of equalizing the filter input signal y in real time, even at high sample rates up to several 10 GHz.

[0224] Certain embodiments disclosed herein utilize circuitry (e.g., one or more circuits) in order to implement protocols, methodologies or technologies disclosed herein, operably couple two or more components, generate information, process information, analyze information, generate signals, encode/decode signals, convert signals, transmit and/or receive signals, control other devices, etc. Circuitry of any type can be used. It will be appreciated that the term “information” can be use synonymously with the term “signals” in this paragraph. It will be further appreciated that the terms “circuitry,” “circuit,” “one or more circuits,” etc., can be used synonymously herein.

[0225] In an embodiment, circuitry includes, among other things, one or more computing devices such as a processor (e.g., a microprocessor), a central processing unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a system on a chip (SoC), or the like, or any combinations thereof, and can include discrete digital or analog circuit elements or electronics, or combinations thereof.

[0226] In an embodiment, circuitry includes hardware circuit implementations (e.g., implementations in analog circuitry, implementations in digital circuitry, and the like, and combinations thereof). In an embodiment, circuitry includes combinations of circuits and computer program products having software or firmware instructions stored on one or more computer readable memories that work together to cause a device to perform one or more protocols, methodologies or technologies described herein. In an embodiment, circuitry includes circuits, such as, for example, microprocessors or portions of microprocessor, that require software, firmware, and the like for operation. In an embodiment, circuitry includes an implementation comprising one or more processors or portions thereof and accompanying software, firmware, hardware, and the like.

[0227] In some embodiments, an equalizer circuit for equalizing a non-linear electronic system is provided. The equalizer circuit may comprise a Volterra filter circuit. In some embodiments, an electronic device comprises the equalizer circuit. In some embodiments, the equalization circuit is configured (e.g., programmed) to provide an input signal; process the input signal by the non-linear electronic system, thereby obtaining an output signal; providing a first mathematical model, wherein the first mathematical model describes the non-linear electronic system in terms of a first Volterra series; providing a second mathematical model, wherein the second mathematical model describes the Volterra filter circuit in terms of a second Volterra series; determining reference transfer functions of the Volterra filter circuit by a Pth order inverse technique based on the first Volterra series; and determining filter coefficients of the Volterra filter circuit based on the determined reference transfer functions and based on the second Volterra series. In other embodiments, the equalization circuit is configured (e.g., programmed) to carry out any one of the appended method claims.

[0228] Various embodiments of the present disclosure or the functionality thereof may be implemented in various ways, including as non-transitory computer program products. A computer program product may include a non-transitory computer-readable storage medium storing applications, programs, program modules, scripts, source code, program code, object code, byte code, compiled code, interpreted code, machine code, executable instructions, and/or the like (also referred to herein as executable instructions, instructions for execution, program code, computer program instructions, and/or similar terms used herein interchangeably). Such non-transitory computer-readable storage media include all computer-readable media (including volatile and non-volatile media).

[0229] Embodiments of the present disclosure may also take the form of an apparatus, system, computing device, computing entity, and/or the like executing instructions stored on computer-readable storage media to perform certain steps or operations. The computer-readable media include cooperating or interconnected computer-readable media, which exist exclusively on a processing or processor system or distributed among multiple interconnected processing or processor systems that may be local to, or remote from, the processing or processor system. However, embodiments of the present disclosure may also take the form of an entirely hardware embodiment performing certain steps or operations.

[0230] Various embodiments are described above with reference to block diagrams and/or flowchart illustrations of apparatuses, methods, systems, and/or computer program instructions or program products. It should be understood that each block of any of the block diagrams and/or flowchart illustrations, respectively, or portions thereof, may be implemented in part by computer program instructions, e.g., as logical steps or operations executing on one or more computing devices. These computer program instructions may be loaded onto one or more computer or computing devices, such as special purpose computer(s) or computing device(s) or other programmable data processing apparatus(es) to produce a specifically-configured machine, such that the instructions which execute on one or more computer or computing devices or other programmable data processing apparatus implement the functions specified in the flowchart block or blocks and/or carry out the methods described herein.

[0231] These computer program instructions may also be stored in one or more computer-readable memory or portions thereof, such as the computer-readable storage media described above, that can direct one or more computers or computing devices or other programmable data processing apparatus(es) to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including computer-readable instructions for implementing the functionality specified in the flowchart block or blocks.

[0232] The computer program instructions may also be loaded onto one or more computers or computing devices or other programmable data processing apparatus(es) to cause a series of operational steps to be performed on the one or more computers or computing devices or other programmable data processing apparatus(es) to produce a computer-implemented process such that the instructions that execute on the one or more computers or computing devices or other programmable data processing apparatus(es) provide operations for implementing the functions specified in the flowchart block or blocks and/or carry out the methods described herein.

[0233] It will be appreciated that the term computer or computing device can include, for example, any computing device or processing structure, including but not limited to a processor (e.g., a microprocessor), a central processing unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a system on a chip (SoC), or the like, or any combinations thereof.

[0234] Accordingly, blocks of the block diagrams and/or flowchart illustrations support various combinations for performing the specified functions, combinations of operations for performing the specified functions and program instructions for performing the specified functions. Again, it should also be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, or portions thereof, could be implemented by special purpose hardware-based computer systems or circuits, etc., that perform the specified functions or operations, or combinations of special purpose hardware and computer instructions.

[0235] In the foregoing description, specific details are set forth to provide a thorough understanding of representative embodiments of the present disclosure. It will be apparent to one skilled in the art, however, that the embodiments disclosed herein may be practiced without embodying all of the specific details. In some instances, well-known process steps have not been described in detail in order not to unnecessarily obscure various aspects of the present disclosure. Further, it will be appreciated that embodiments of the present disclosure may employ any combination of features described herein.

[0236] Although the method and various embodiments thereof have been described as performing sequential steps, the claimed subject matter is not intended to be so limited. As nonlimiting examples, the described steps need not be performed in the described sequence and/or not all steps are required to perform the method. Moreover, embodiments are contemplated in which various steps are performed in parallel, in series, and/or a combination thereof. As such, one of ordinary skill will appreciate that such examples are within the scope of the claimed embodiments.

[0237] The present application may reference quantities and numbers. Unless specifically stated, such quantities and numbers are not to be considered restrictive, but exemplary of the possible quantities or numbers associated with the present application. Also in this regard, the present application may use the term “plurality” to reference a quantity or number. In this regard, the term “plurality” is meant to be any number that is more than one, for example, two, three, four, five, etc. The terms “about,” “approximately,” “near,” etc., mean plus or minus 5% of the stated value. For the purposes of the present disclosure, the phrase “at least one of A and B” is equivalent to “A and/or B” or vice versa, namely “A” alone, “B” alone or “A and B.”. Similarly, the phrase “at least one of A, B, and C,” for example, means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B, and C), including all further possible permutations when greater than three elements are listed.

[0238] Throughout this specification, terms of art may be used. These terms are to take on their ordinary meaning in the art from which they come, unless specifically defined herein or the context of their use would clearly suggest otherwise.

[0239] The principles, representative embodiments, and modes of operation of the present disclosure have been described in the foregoing description. However, aspects of the present disclosure which are intended to be protected are not to be construed as limited to the particular embodiments disclosed. Further, the embodiments described herein are to be regarded as illustrative rather than restrictive. It will be appreciated that variations and changes may be made by others, and equivalents employed, without departing from the spirit of the present disclosure. Accordingly, it is expressly intended that all such variations, changes, and equivalents fall within the spirit and scope of the present disclosure, as claimed.