Abstract:
An iterative method of equalizing an input signal received over a digital communication channel can include (a) using a kernel density estimate where different values of a kernel size are indicative of either a blind or a decision-directed equalization mode, (b) processing a received signal using a blind equalization mode, and (c) evaluating, on a block or sample basis, an error measure based on a distance among a distribution of an equalizer output and a constellation. The method also can include (d) updating the kernel size based upon the error measure thereby facilitating automatic switching between the blind and decision-directed equalization modes, where the kernel size is initially set to a value indicative of the blind equalization mode. The method additionally can include (e) selectively applying blind equalization or decision-directed equalization to the input signal according to the updated kernel size for subsequent iterations of steps (c)-(e).

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]    This application claims the benefit of U.S. Provisional Application No. 60/459,287, filed in the United States Patent and Trademark Office on Mar. 31, 2003, the entirety of which is incorporated herein by reference. 
     
    
     STATEMENT AS TO FEDERALLY SPONSORED RESEARCH  
       [0002] This invention was made with United States Government support under grant number ECS-9900394 awarded by the National Science Foundation. The United States Government has certain rights in the invention. 
     
    
     
       BACKGROUND  
         [0003]    1. Field of the Invention  
           [0004]    The present invention relates to the field of communications and, more particularly, to equalization for digital communication channels.  
           [0005]    2. Description of the Related Art  
           [0006]    Channel equalization plays a key role in digital communication systems. Typically, the physical channel introduces a distortion to the transmitted signal that can make it difficult to recover the original data. An equalizer can reduce, or ideally completely eliminate, the introduced intersymbol interference (ISI). Conventional equalization techniques rely on the transmission of a reference, or training, sequence that is known at the equalizer. This sequence allows adaptation of the equalizer parameters to minimize some cost function that measures the distance between the actual equalizer output and the desired reference signal. For instance, when the equalizer is implemented by means of a linear filter, the filter coefficients can be adapted using least mean squares analysis to minimize the expectation of the squared error. This type of equalization is referred to as supervised equalization.  
           [0007]    When a training or reference sequence is not available at the receiver, blind equalization can be used. Without a reference sequence, the only knowledge about the transmitted sequence is limited to its probabilistic or statistical properties. Under this constraint, blind equalization typically minimizes a cost function that is able to indirectly extract the higher order statistics of the signal or the current level of ISI at the equalizer output. Typically, the cost function is minimized by means of a stochastic gradient algorithm. Examples of this kind of algorithm can include the Sato algorithm as disclosed in Y. Sato, “A method of self-recovering equalization for multilevel amplitude modulation,” IEEE Transactions on Communications, vol. COM-23, pp. 679-682 (1975); and the Godard algorithms as disclosed in D. N. Godard, “Self-recovering equalization and carrier tracking in two dimensional data communication systems,” IEEE Transactions on Communications, vol. 28, pp. 1867-1875, (November 1980).  
           [0008]    One significant disadvantage of blind equalization techniques such as those noted herein is their need for a high number of data symbols to achieve convergence to a good solution. The high number of data symbols is necessary because the criterion for optimization is unable to exploit the high order statistics present in the data. Following an initial approximate equalization stage, which could be either supervised or blind, typically decision-directed equalization is employed. Decision-directed equalization utilizes discretized versions of the equalizer outputs as desired reference signal values. The discretization is typically done by approximating the current value of the output with the nearest value from the symbol alphabet called the symbol constellation.  
           [0009]    Other techniques attempt to improve the convergence speed of conventional blind equalizers and utilize higher order statistics. For example, Renyi&#39;s entropy, as disclosed in I. Santamaria, et al., “A fast algorithm for adaptive blind equalization using Renyi&#39;s entropy,” in Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, vol. III, Orlando, Fla., USA, 2002, pp. 2657-2660, has been used as a cost function for blind equalization of constant modulus signals. This approach is an application of information theoretic criteria to equalization and uses the Parzen window method (a nonparametric method) to estimate the underlying probability density function. A discussion of information theoretic criteria can be found in J. Principe, et al., “Learning from examples with information theoretic criteria,” Journal of VLSI Signal Processing, vol. 26, pp. 61-77, 2000. Although this method can provide acceptable results for some communication channels, Renyi&#39;s entropy does not produce acceptable results for ill-conditioned channels, or those having zeros at or very close to the unit circle. Further, this technique is sensitive to noise.  
           [0010]    What is needed is an equalization technique that is applicable to any symbol constellation standard and which provides improved performance over existing equalization techniques.  
         SUMMARY OF THE INVENTION  
         [0011]    The inventive arrangements disclosed herein provide a method, system, and apparatus for a blind equalization technique for digital communication channels. The present invention can be applied to any symbol constellation used for digital communications, including, but not limited to, phase-shift-keying, quadrature amplitude modulation, or other types of discrete alphabets. In accordance with the inventive arrangements disclosed herein, the number of samples required to blindly identify the channel inverse for equalization can be reduced. As such, increased efficiency with respect to the use of transmission bandwidth in current digital communication systems where channel equalization is necessary can be achieved.  
           [0012]    The present invention uses a novel cost function, or optimization criterion, based on the distance between an estimate of the probability density function (PDF) of the received symbols and of the constellation. The estimate of the PDF is obtained directly from the received symbol data using pairwise interactions among kernels centered on the received data. It should be appreciated that while Gaussian kernels have been used herein, any of a variety of kernel types can be used. Accordingly, Gaussian kernels have been used for purposes of illustration only and, as such, should not be construed as a limitation of the present invention.  
           [0013]    The present invention also utilizes a kernel size parameter to facilitate a soft switching from a blind equalization mode to a decision-directed equalization mode. By automatically switching between the two modes, the present invention can attain improved equalization results without adding complexity over conventional equalization techniques.  
           [0014]    One embodiment of the present invention can include an iterative method of equalizing an input signal received over a digital communication channel. The method can include (a) using a kernel density estimate where different values of the kernel size are indicative of either a blind or a decision-directed equalization mode, (b) processing a received signal using a blind equalization mode, and (c) evaluating, on a block or sample basis, an error measure based on the distance among a distribution of the equalizer output and a constellation. The method also can include (d) updating the kernel size based upon the error measure thereby facilitating automatic switching between the blind and decision-directed equalization modes, where the kernel size is initially set to a value indicative of the blind equalization mode. The method additionally can include (e) selectively applying blind equalization or decision-directed equalization to the input signal according to the updated kernel size for subsequent iterations of steps (c)-(e).  
           [0015]    Other embodiments of the present invention can include a system having means for performing the various steps disclosed herein as well as a machine readable storage for causing a machine to perform the steps described herein. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]    There are shown in the drawings, embodiments which are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.  
         [0017]    [0017]FIG. 1 is a schematic diagram illustrating one embodiment of a system in accordance with the inventive arrangements disclosed herein.  
         [0018]    [0018]FIG. 2 is a graph illustrating the smoothing effect of kernels in the operation of a channel equalizer in accordance with the inventive arrangements disclosed herein.  
         [0019]    [0019]FIG. 3 is a graph illustrating the form of the correction factor function F(σ) for three different criteria in accordance with the inventive arrangements disclosed herein.  
         [0020]    [0020]FIG. 4 is a flow chart illustrating a method of selectively applying blind equalization or decision-directed equalization to an input signal in accordance with one embodiment of the present invention.  
         [0021]    [0021]FIG. 5 is a flow chart illustrating a method of selectively applying blind equalization or decision-directed equalization to an input signal in accordance with another embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0022]    [0022]FIG. 1 is a schematic diagram illustrating one embodiment of a system  100  in accordance with the inventive arrangements disclosed herein. As shown, the system  100  can include a communication channel  105  and a channel equalizer  110 .  
         [0023]    The communication channel  105  can be any network communication channel for digital communications including, but not limited to, wired Local Area Networks (LAN&#39;s), Digital Subscriber Line (DSL), cable networks, telephone lines for conventional modems, and the like. It should be appreciated that the inventive arrangements disclosed herein can be applied to both linear and non-linear communication channels. For purposes of illustration only, however, a linear channel has been assumed. Using a complex baseband representation, the communication channel  105  can be represented as:  
               x   k     =         ∑     n   =   0         L   h     -   1              h   n          s     k   -   n           +     e   k               (   1   )                               
 
         [0024]    where the transmitted symbol sequence s k , or input signal  115 , is assumed to take iid complex values from a discrete finite alphabet of symbols referred to as the constellation of the digital modulation. In equation (1), the sequence h n  represents the complex-valued impulse response of the communication channel  105  and e k  represents the additive channel noise for the input signal  115  that is sent through the communication channel  105 , resulting in signal x k , or signal  118 . The sequence h n , can be represented as infinite impulse response (IIR) as well.  
         [0025]    The channel equalizer  110  can be disposed within a receiving device such as a modem, whether a cable modem, a DSL modem, or a conventional telephony modem, or other communication device. As such, it should be appreciated that the channel equalizer  110  can be disposed within a larger information processing system. In any case, an input signal  115  can be transmitted via the communication channel  105 . The channel equalizer  110  operates on the received signal  118  to produce an output signal  120  which can be denoted as y k .  
         [0026]    The output signal y k  can be represented as follows:  
               y   k     =         ∑     n   =   0         L   w     -   1              w   n          x     k   -   n           =       w   T        x               (   2   )                               
 
         [0027]    where w represents a vector of equalizer coefficients to be adapted by the blind equalization technique to minimize inter-symbol interference (ISI). As a blind equalization technique assumes that no training sequence will be available for adaptation, the blind equalization technique exploits other properties of a received symbol sequence or signal  118 .  
         [0028]    The proposed approach for blind equalization exploits the fact that the constellation of the transmitted symbol sequence is known. Specifically, the constellation can be modeled as a probability distribution of a number of Dirac-delta functions located at possible symbol values in the constellation. To reduce computational complexity, the symmetry properties of the constellation can be exploited.  
         [0029]    In one embodiment, for phase-shift-keying (PSK) and quadrature amplitude modulation (QAM) constellations, the constellation distribution can be defined over the possible complex-magnitude or complex values that the symbols can take rather than the actual complex values. One example is the probability distribution function of the random variable S p  whose samples are given by |S i | p  where |.| denotes the complex-magnitude of the symbol s i  from the constellation and the superscript  p  denotes the p th  power. Another example is the probability distribution function of the random variable S p  whose samples are give by the original complex values s i  of a constellation. For purposes of illustration, the probability distribution function of the random variable S p  whose samples are given by |S i | p  has been used. Still, it should be appreciated that the present invention is not so limited.  
         [0030]    The channel equalizer  110  attempts to match the probability distribution of the channel equalizer&#39;s  110  output signal  120  to that of the constellation symbols S. This can be achieved by optimizing the divergence between the distributions of these variables. For instance, the quadratic (Euclidean) distance between f y     p   (.) and f S     p   (.), which is given by  
           J ( w )=∫ −28    ∞ ( f   Y     p   ( z )−f S     p   ( z )) 2   dz   (3)  
         [0031]    can be minimized. While the quadratic distance is illustrated herein, it should be appreciated that any of a variety of different algebraic and/or information theoretic distance measures can be used. As such, the use of the quadratic distance should not be construed as a limitation of the present invention.  
         [0032]    The probability distributions required for evaluating equation (3), which can be referred to as the Quadratic Distance, can be estimated using Parzen windowing on samples of the output, for example the most recent samples, using equation (4).  
                   f   ^       Y   p            (   z   )       =       1   L            ∑     i   =   0       L   -   1              G     σ   0            (     z   -            y     k   -   i            p       )                   (   4   )                               
 
         [0033]    In equation (4), G σ (.) represents the kernel function, which typically is a zero-mean probability distribution, with σ denoting the size of the kernel function. Notably, if the kernel function is a Gaussian distribution, the kernel size can be controlled by its standard deviation. Similarly, the distribution of S p  can be estimated using the symbols {s l , . . . ,s N     s   } in the constellation with equation (5).  
                   f   ^       S   p            (   z   )       =       1     N   S              ∑     i   =   0         N   s     -   1              G     σ   0            (     z   -            s   i          p       )                   (   5   )                               
 
         [0034]    Substituting equations (4) and (5) in equation (3), equation (6) below can be obtained.  
                     J        (   w   )       =                1     L   2              ∑     i   =   0       L   -   1              ∑     j   =   0       L   -   1              G   σ          (              y     k   -   j            p     -            y     k   -   i            p       )             +                              1     N   s   2              ∑     i   =   1       N   s              ∑     j   =   1       N   s              G   σ          (              s   j          p     -            s   i          p       )             -                            1     LN   s              ∑     i   =   1       N   s              ∑     j   =   0       L   -   1              G   σ          (              y     k   -   j            p     -            s   i          p       )                           (   6   )                               
 
         [0035]    The weight vector of the equalizer can be optimized using the following stochastic gradient expression, denoted as equation (7), for minimizing the criterion in equation (6), where p=2 and L=2 for illustration purposes.  
                 ∇   w          J        (   w   )         =         1   2            G   σ   ′          (              y   k          2     -            y     k   -   1            2       )            (         y   k          x   k   *       -       y     k   -   1            x     k   -   1     *         )       -       1     N   s              ∑     i   =   1       N   s            [           G   σ   ′          (              y   k          2     -            s   i          2       )            y   k          x   k   *       +         G   σ   ′          (              y     k   -   1            2     -            s   i          2       )            y     k   -   1            x     k   -   1     *         ]                   (   7   )                               
 
         [0036]    In equation (7), * denotes the element-wise complex-conjugate operation for the input vector x and G′ σ (.) denotes the derivative of the kernel function with respect to the argument of the kernel function.  
         [0037]    In another embodiment, an alternative algorithm can be obtained by approximating the divergence measure definition such as the one specified in equation (3) with a summation of selected critical points. For a digital communication symbol constellation, the critical points can be selected as the symbol values or the possible symbol-magnitude values. Denoting these critical points with r i  and the desired density value at these points with T i , equation (3) can be simplified to  
                 J        (   w   )            1     N   p              ∑     i   =   1       N   p                (         f     Y   p            (     r   i     )       -     T   i       )     2                   where                   T   i           =       1     N   s              ∑     j   =   0         N   s     -   1              G   σ          (       r   i     -            s   j          p       )                   (   8   )                               
 
         [0038]    and N p  are the number of target points considered, which can be referred to as the Sampled probability density function (PDF) criterion. If r i =|s i | p , then T i =G σ (0). In this latter special case, with p=2, a suitable stochastic gradient can be expressed as equation (9).  
                 ∇   w          J        (   w   )         =       1     N   p              ∑     i   =   1       N   p              [         G   σ          (              y   k          2     -     r   i       )       -       G   σ          (   0   )         ]            G   σ   ′          (              y   k          2     -     r   i       )            y   k          x   k   *                   (   9   )                               
 
         [0039]    In yet another embodiment, another simplification to equation (3) can be to drop the integral-squared-distribution terms from the expansion of the parenthesis-square in the integral, which are essentially normalization terms. In such an embodiment, a similarity criterion that is the correlation of the probability distributions of the output signal  120  and the original constellation is provided, rather than divergence. Accordingly, the correlation would require maximizing. Such a criterion, which can be referred to as the Matched PDF, can be represented by equation (10).  
                     J        (   w   )       =       ∫     -   ∞     ∞              f     Y   P            (   z   )              f     S   p            (   z   )               z                     =       1     LN   s              ∑     i   =   1       N   s              ∑     j   =   0       L   -   1              G   σ          (              y     k   -   j            p     -            s   i          p       )                           (   10   )                               
 
         [0040]    A stochastic gradient for this criterion where p=2 and L=1 can be expressed as equation (11).  
                 ∇   w          J        (   w   )         =       1     N   s              ∑     i   =   1       N   s                G   σ   ′          (              y   k          2     -            s   i          2       )            y   k          x   k   *                   (   11   )                               
 
         [0041]    The updates for the weight vector can be in the form of steepest descent/ascent depending on the specific criterion assumed. For example, the weight vector can be represented with equation (12).  
           w   k+1   =w   k ±μ σ ∇ w   J ( w   k )  (12)  
         [0042]    In the case of a Gaussian kernel, for example, the kernel size dependent step size, or learning rate, can be selected to be μ σ =μσ 3 , where 0&lt;μ&lt;&lt;1 is a small fixed constant.  
         [0043]    The kernel size influences the operation of the channel equalizer. In particular, large kernel values result in a blind-equalization type operation mode, whereas small values yield a decision-directed operation mode. Although the decision-directed mode is capable of achieving a better ISI at its global optimum, it is more susceptible to suboptimal solutions and can get trapped at one such weight vector. Larger kernel sizes have a smoothing effect on the performance surface making the search for the global optimum much easier.  
         [0044]    [0044]FIG. 2 is a graph illustrating the smoothing effect of the kernels in the operation of the channel equalizer in accordance with the inventive arrangements disclosed herein. As shown in FIG. 2, the criterion described in equation (6) has been evaluated for equalizer weight values in the interval of [0,2] in a single-tap equalization scheme for a 16-QAM constellation. The kernel function is a Gaussian distribution with standard deviation σ{square root}{square root over (2)}. In the example shown in FIG. 2, the optimal solution is when the coefficient w=1.  
         [0045]    [0045]FIG. 2 also demonstrates that the optimal solution obtained when operating in blind mode can be biased from the actual solution that is desired. In order to compensate for this, the constellation point locations can be redefined as scaled versions of the original values of the constellation point locations based on a scaling factor that is a function of the kernel size that is assumed. For example, if p=2 and the complex-magnitudes of the constellation points are used as descriptors of the target probability distribution, a correction factor F(σ) must be applied such that |s i   c |=F(σ)|s i | 2 .  
         [0046]    The modified constellation points then can be utilized in updating the channel equalizer instead of the original values. The function F(σ) depends on the criterion and the modulation scheme that is used and must be determined a priori through experimentation. Thus, FIG. 2 depicts the form of this function for the three criteria discussed above in the 16-QAM constellation case with Gaussian kernels.  
         [0047]    [0047]FIG. 3 is a graph illustrating the form of the correction factor function F(σ) for three different criteria in accordance with the inventive arrangements disclosed herein. More particularly, FIG. 3 illustrates F(σ) for sampled PDF, matched PDF, and Quadratic distance. As noted, if the kernel size is kept constant at a large value, the channel equalizer will operate in blind mode. Decreasing the kernel size slowly and smoothly, on the other hand, facilitates a smooth transition from blind mode to a decision-directed mode in which much more accurate solutions are attainable.  
         [0048]    In order to facilitate automatic switching between the blind mode and the decision-directed mode, the kernel size can be coupled to decision error statistics. For example, in one embodiment, a recursive forgetting estimate of the decision-directed mean-square-error as set forth in equation (13) can be utilized to guide the manipulation of kernel size through iterations.  
               E     k   +   1       =       α                   E   k       +       (     1   -   α     )            min       i   =   1     ,              …              ,     N   s              (       (     |     y   k          |   2          -     |     s   i          |   2           )     2                     (   13   )                               
 
         [0049]    In one embodiment, the kernel size can be set to σ k =aE k +b where a and b are also predetermined constants specific to the constellation. For example, in the 16-QAM case, suitable values for a and b can be 3.5 and −9.5 respectively. In another embodiment, a more general function σ k =f(E k ,θ) with parameter θ. Notably, in one embodiment, θcan be replace with parameters a and b. Though the linear relationship σ k =aE k +b is used in the various examples disclosed herein, it should be appreciated that the linear relationship has been provided as an illustration only. As such, it should not be construed as a limitation of the present invention.  
         [0050]    [0050]FIG. 4 is a flow chart illustrating a method  400  of applying blind equalization or decision-directed equalization to an input signal in accordance with one embodiment of the present invention. The method  400  can begin in a state where an input signal is received through a communication channel and equalization is to be applied to the received signal. The method  400  can begin in step  405  where an initial kernel size σ k  can be set that is indicative of blind equalization. As noted, larger kernel sizes indicate blind equalization while smaller kernel sizes indicate decision-directed equalization. Notably, step  405  also can include initializing a learning rate μ σ , the error statistic, a forgetting factor α, as well as parameters a and b. As noted, parameters a and b are constants that vary according to the type of communication scheme in which the present invention is to be used.  
         [0051]    In step  410 , blind equalization can be applied to the input signal. Blind or decision-directed equalization can be performed by multiplying the input signal with a vector w k  of equalization coefficients.  
         [0052]    In step  415 , an error statistic can be evaluated. The error statistic can be a recursive forgetting estimate of the mean-square error. For example, the recursive forgetting estimate of the mean-square error can be denoted as E k  and evaluated according to  
         E     k   +   1       =       α                   E   k       +       (     1   -   α     )            min       i   =   1     ,              …              ,     N   s              (         (     |     y   k          |   2          -     |     s   i          |   2           )     2     ,                                   
 
         [0053]    where α is the forgetting factor, y k  is the equalized signal, and s i  is derived from a constellation.  
         [0054]    In step  420 , an updated kernel size can be calculated. The updated kernel size can be a function of the error statistic. The kernel size, denoted as σ k , can be calculated according to σ k =aE k +b or other function as disclosed herein. Notably, the learning rate also can be adjusted.  
         [0055]    In step  425 , blind equalization or decision-directed equalization can be selectively applied to the input signal according to the updated kernel size. For example, the vector of equalization coefficients w k  can be updated and applied to the input signal. More particularly, w k  can be updated according to w k+1 =w k ±μ σ ∇ w J(w k ), where J(w k ) is the matched probability density function or the sampled probability density function criterion, ∇ w  is the stochastic gradient, and μ σ is the learning rate modified according to the current value of the kernel size.  
         [0056]    The method  400  can repeat as necessary. As the method continues to repeat, the method converges on decision-directed equalization as the error statistic and kernel size continue to decrease. That is, the method  400  begins to automatically apply decision-directed equalization as the error statistic, and also the kernel size, begins to decrease in size.  
         [0057]    [0057]FIG. 5 is a flow chart illustrating method  500  of selectively applying blind equalization or decision-directed equalization to an input signal in accordance with another embodiment of the present invention. The method  500  can begin in a state where an input signal is received through a communication channel and equalization is to be applied to the received signal. In step  505 , the channel equalizer can be initialized. More particularly, the channel equalizer coefficients w k , the learning rate μ σ , the error estimation rate E k  and the forgetting factor α can be set to initial values. In step  510 , the parameter θ, or in another embodiment parameters a and b, can be initialized.  
         [0058]    In step  515 , an input signal x k  can be received. In step  520 , channel equalization can be applied to the received input signal. That is, an output signal y k  can be calculated as y k =w k  x k .  
         [0059]    In step  525 , the kernel size and the learning rate can be determined. The kernel size can be set or updated using the formula σ k =f(E k ,θ) or σ k =aE k +b, where θ, a, and b are constants as noted and E k  is the error estimation from the previous (or initial) iteration. The error learning rate can be set to μ σ =μσ 3 , where 0&lt;μ&lt;&lt;1 is a small fixed constant. In another embodiment, however, μ can be allowed to vary in time.  
         [0060]    In step  530 , the correction factor F(σ) can be determined. As the function F(σ) is calculated a priori, the correction factor can be determined from a lookup table or other data structure storing such values in memory. In step  535 , the equalizer weight can be updated as follows: w k+1 =w k ±μ σ ∇ w J(w k ). The method  500  can repeat as necessary. As the method  500  continues to iterate, the equalization applied to the input signal moves from blind to decision-directed. As noted, method  500  begins to automatically apply decision-directed equalization as the error statistic, and also the kernel size, begins to decrease in size.  
         [0061]    The present invention provides an equalization solution that does not require training data and, in consequence, utilizes less bandwidth than supervised equalizers. The inventive arrangements disclosed herein converge upon a solution using fewer samples, i.e. approximately 2,000-3,000 samples, thereby attaining increased data efficiency. Further, the present invention provides automatic switching to decision directed equalization. The aforementioned attributes of the inventive arrangements disclosed herein are provided without adding computational cost.  
         [0062]    The present invention can be realized in hardware, software, or a combination of hardware and software. The present invention can be realized in a centralized fashion in one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software can be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.  
         [0063]    The present invention also can be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.  
         [0064]    This invention can be embodied in other forms without departing from the spirit or essential attributes thereof. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.