Abstract:
An adaptive equalizer of the present invention equalizes a data symbol sequence containing intersymbol interference and nonlinear distortions extending over several symbols, e.g., a digital signal from the read head of a high density magnetic recording and playback apparatus, thereby producing an equalized output free from such distortions. Presumed value storing means stores a plurality of presumed value signals read out of the combinations of an equalization address signal and a Viterbi transition symbol sequence signal. Error calculating means outputs a plurality of error signals representative of differences between the plurality of presumed value signals and an input data symbol. Viterbi algorithm equalizing means executes equalization according to a Viterbi algorithm and by using the plurality of error signals as branch metrics, thereby producing a presumed symbol associated with the input data symbol, the equalization address signal, and a correction address signal. Correcting means updates the presumed value signal of the presumed value signal storing means designated by the correction address signal with the input data symbol.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to an automatic equalizer for automatically equalizing digital signals containing nonlinear distortions and, more particularly, to an automatic equalizer for automatically equalizing a digital signal experiencing from nonlinear distortions, e.g., a digital signal from a read head of a high density magnetic recording apparatus, to thereby faithfully reproduce an original digital signal free from the nonlinear distortions. 
     2. Description of the Prior Art 
     It has been customary with a magnetic recording apparatus for digital signals to use a linear equalizer implemented by linear elements in removing distortions from the output of a read head. The linear equalizer is satisfactory in the case of signal reproduction with a low density digital signal storing apparatus. However, when it comes to signal reproduction with a high density storing apparatus, the conventional linear equalizer cannot remove distortions due to intersymbol interference since not only such distortions but also nonlinear distortions particular to the apparatus increase. Typical of nonlinear distortions is a peak shift, i.e., a shift of the peak of a data symbol read out on the time axis. 
     To equalize the read signal including the abovementioned distortions due to intersymbol interference and nonlinear distortions, use may be made of an equalizer using a Viterbi algorithm as proposed in G. David FORNEY, JR, &#34;Maximum-Likelihood Sequence Estimation of Digital Sequences in the Presence of Intersymbol Interference, &#34;IEEE Trans. Inform. Theory, vol. IT-18, No. 3, May, 1972. The approach applied to this equalizer consists of preparing presumed value signals containing distortions of various kinds of symbol sequences, and selecting as an equalized output symbol sequence a presumed symbol sequence having the smallest sum of errors between the sum of the presumed estimate signals and the symbol sequence of the input digital signal, i.e., signal read out on a trellis transition diagram. 
     While this approach is desirable for the equalization of digital signals containing nonlinear distortions, it is not feasible for the output of a digital VTR (Video Tape Recorder) or similar high density, high speed storing device since it involves agreat amount of calculations. 
     To reduce the amount of calculations, the above-stated equalizing method using the Viterbi algorithm (referred to as a Viterbi decoding method hereinafter) may be combined with the principle of a decision feedback equalizer to implement an intermediate characteristic (see Alexandra Duel--Hallen et al, &#34;Delayed Decision-Feedback Sequence Estimation&#34;, IEEE Tran. commu. pp. 428, vol. 37, May, 1989). This scheme equalizes the former half of the impulse response including a precursor component by a procedure similar to the Viterbi equalizing method and equalizes the latter half by a procedure similar to a decision feedback equalizing method, thereby reducing the amount of calculations by a noticeably degree. However, the problem is that such a composite scheme is slightly inferior to the Viterbi decoding method with respect to equalizing ability and cannot remove distortions other than linear distortions. 
     There has also been proposed a decision feedback type equalizer capable of removing both the linear distortions and the nonlinear distortions (see Kevin Fisher, John Cioffi, and C. M. Melas, &#34;An Adaptive DFE for Storage Channels Suffering from Nonlinear ISI,&#34; Globalcom 1989, 53.7.1). This type of equalizer can follow even the changes in distortions with respect to time by sequentially updating the contents of a RAM (Random Access Memory) with input digital signals. However, such an equalizer cannot remove nonlinear distortions from the precursor components of impulse responses due to the nature of the decision feedback equalizing method. 
     BRIEF SUMMARY OF THE INVENTION 
     Object of the Invention 
     It is therefore an object of the present invention to provide an equalizer capable of removing distortions due to intersymbol interference and nonlinear distortions from digital signals read out of a high density magnetic storing apparatus, particularly an adaptive automatic equalizer achieving an equalizing ability comparable with that of the conventional Viterbi decoding method with a smaller amount of calculations, and following even changes in distortions with respect to time. 
     SUMMARY OF THE INVENTION 
     An adaptive equalizer of the present invention equalizes a data symbol sequence containing intersymbol interference and nonlinear distortions extending over several symbols, e.g., a digital signal from the read head of a high density magnetic recording and playback apparatus, thereby producing an equalized output free from such distortions. Presumed value storing means stores a plurality of presumed value signals read out of the combinations of an equalization address signal and a Viterbi transition symbol sequence signal. Error calculating means outputs a plurality of error signals representative of differences between the plurality of presumed value signals and an input data symbol. Viterbi algorithm equalizing means executes equalization according to a Viterbi algorithm and by using the plurality of error signals as branch metrics, thereby producing a presumed symbol associated with the input data symbol, the equalization address signal, and a correction address signal. Correcting means updates the presumed value signal of the presumed value signal storing means designated by the correction address signal with the input data symbol. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above-mentioned and other objects, features and advantages of the present invention will become more apparent by reference to the following detailed description of the invention taken in conjunction with the accompanying drawings, wherein: 
     FIG. 1 is a block diagram schematically showing a linear distortion generation circuit for describing the principle equalization in accordance with the present invention; 
     FIG. 2 is a block diagram schematically showing a nonlinear distortion generation circuit for describing the principle of equalization in accordance with the present invention; 
     FIG. 3 shows an impulse response signal sequence including linear distortions with which the equalizer of the invention deals; 
     FIG. 4 is a block diagram schematically showing the basic construction of the equalizer of the invention; 
     FIG. 5 shows a symbol sequence of an input digital signal applied to the equalizer of the invention and free from distortions; 
     FIG. 6 shows a symbol sequence of an input digital signal suffered from distortions; 
     FIG. 7 shows an example of trellis transition diagrams for describing the equalization particular to the invention; 
     FIG. 8 shows another specific trellis transition diagram; 
     FIG. 9 shows a trellis transition diagram representative of the result of equalization effected by the invention according to a Viterbi algorithm; 
     FIG. 10 is a block diagram schematically showing a magnetic recording circuit including the equalizer of the invention; 
     FIG. 11 is a block diagram schematically showing a preferred embodiment of the equalizer in accordance with the invention; 
     FIG. 12 shows the waveforms of signals appearing in various sections of the embodiment; 
     FIGS. 13, 14 and 15 are schematic block diagrams each showing part of the embodiment; 
     FIG. 16 is a Viterbi transition diagram particular to the embodiment; 
     FIGS. 17, 18 and 19 are schematic block diagrams each showing part of the embodiment; 
     FIG. 20 is a block diagram schematically showing an alternative embodiment of the invention; and 
     FIGS. 21, 22 and 23 are schematic block diagrams each showing part of the alternative embodiment. 
    
    
     GENERAL DESCRIPTION 
     The equalization principle of the present invention will be described by use of an input signal model (equalization principle model). The equalization principle model assumes a precursor component and a postcursor component of impulse response each having a length of one symbol and the following input signals to an equalizer. 
     An input signal in the form of a data symbol sequence of binary codes is distorted linearly by a circuit shown in FIG. 1 and, further, distorted nonlinearly by a nonlinear element having a characteristic shown in FIG. 2. The impulse response signal sequence undergone linear distortion is depicted in FIG. 3. An input data symbol sequence a n  (see FIG. 1), an output b n  (see FIG. 1) suffering from linear distortion and derived from the input a n , and an output c n  (see FIG. 2) suffering from nonlinear distortion and derived from the output b n  are shown in TABLE 1 below. As TABLE 1 indicates, the output c n  is determined by the combination of three symbols a n-2 , a n-1  and a n  and, therefore, has one of 2 3  i.e., eight different values. 
     
                       TABLE 1______________________________________INPUT SIGNAL    OUTPUT    OUTPUTa.sub.n-2, a.sub.n-1, a.sub.n           b.sub.n   c.sub.n______________________________________000             0         0001             0.2       0.1010             1.0       1.0011             1.2       1.3100             0.3       0.2101             0.5       0.4110             1.3       1.5111             1.5       1.8______________________________________ 
    
     FIG. 4 shows the basic construction of an equalizer in accordance with the present invention. A RAM table 11 included in the equalizer stores the contents of TABLE 1 shown above. 
     FIG. 5 shows an input symbol sequence a -2  to a 7  &#34;0,0,0,1,1,0,1,0,0,0&#34;. This symbol sequence changes into a symbol sequence c 1  to c 7  shown in FIG. 6, i.e., &#34;0.1,1.3,1.5,0.4,1,0.2,0&#34; due to distortion. The symbol sequence of FIG. 6 is applied to the equalizer. Every time a data symbol a n  arrives at the equalizer, a branch metric generator 12 shown in FIG. 4 produces a square of a difference between the input symbol a n  and an output c n  of the RAM table 11 as a branch metric. Specifically, four of the eight values c n  stored in the RAM table 11 or TABLE 1 are fed to the branch metric generator 12 at a time. Selecting four values c n  at a time is advantageous in that a Viterbi algorithm equalizer is capable of executing equalization with the same trellis transition diagram as used with the combination of symbols an -1  and a n  by using a symbol a n-2  which is known from path history. 
     The four branch metrics produced by the branch metric generator 12 are equalized by the Viterbi algorithm equalizer using the Viterbi algorithm. It can be seen that the symbol a n-2  is &#34;0&#34; when, in trellis diagrams shown in FIGS. 7 and 8, the branch connected to a state S n ,0 (&#34;n&#34; and &#34;0&#34; of the suffix indicate time and path metric state, respectively) or a state S n ,1 is from a state S n-1 ,0, or it is &#34;1&#34; when the branch connected to the state S n ,0 is from a state Sn l ,l. 
     The result of Viterbi algorithm equalization derived from the symbol sequence of FIG. 6 is shown in branch metrics and path metrics in TABLE 2 below and in a trellis transition diagram in FIG. 9. 
     
                       TABLE 2______________________________________TIME        1      2      3    4    5    6    7______________________________________INPUT SIGNAL       0.1    1.3    1.5  0.4  1    0.2  0BRANCH      0.01   1.69   1.69 0.04 1    0    0METRIC 0BRANCH      0      1.44   1.21 0    0.81 0.04 0.01METRIC 1BRANCH      0.81   0.09   0    1.21 0    1.69 1METRIC 2BRANCH      1.44   0      0.09 1.96 0.09 1.96 1.69METRIC 3PATH METRIC 0       0.01   0.09   0    0.04 0    0    0PATH METRIC 1       0      0      0.09 0    0.09 0.04 0.01______________________________________ 
    
     Assume that the four branch metrics of interest are d n ,0 to d n ,3 respectively associated with the branch between S n ,0 and S n+1 ,0, the branch between S n ,1 and S n+1 ,1, the branch between S n ,1 and S n+1 ,0, and the branch between S n ,1 and S n+1 ,1. As shown in FIG. 9, when the output c 1  (value of 0.1) is inputted, the branch metric d 1 ,0 is (0.1-0) 2  i.e. 0.01 (time 1 and branch 0, TABLE 2) since c 1  of TABLE 1 associated with the symbol sequence (a -1 , a 0 , a 1 ) of (0,0,0) is &#34;0&#34;. The branch metric d 1 ,1 is (0.1-0.1) 2  i.e. 0 since the symbol sequence (a -1 , a 0 , a 1 ) is (0,0,1). Such a procedure is repeated with all the branch metrics to produce the branch metrics associated with times 1-7 shown in TABLE 2. 
     Path metrics S n ,0 and S n ,1 are determined by the following procedure. First, 0 is set in S 1 ,0 and S 1 ,1. For S 2 ,0, S 1 ,0 +d 1 ,0 and S 1 ,1 +d 1 ,2 are compared, and then smaller one of them is selected as a survived path while the other is discarded. Here, since S 1 ,0 +d 1 ,0 =0.1 and S 1 ,1 +d 1 ,2 =0.81, S 2 ,0 is 0.1 and, therefore, the path of d 1 ,0 survives. This procedure is repeated to produce a transition shown in FIG. 9. Finally, the input symbols are determined by trace-back. First, S 8 ,0 and S 8 ,1 are compared, and a smaller one of them, S 8 ,0, is selected. The trace-back is effected over the past six symbols. Since the resulting path (a -1 , a 0 , a 1 ) is (0,0,1), a 0  is determined to be 0. While, ideally, the trace-back should be executed over an infinite number of symbols, it is known that the trace-back over several symbols suffices in the illustrative embodiment. 
     The equalization over three symbols as stated above is practicable with only four branch metrics in constrast to 2 3  =8 branch metrics needed to execute the conventional Viterbi decoding method. This correspondingly reduces the amount of iterative calculations. Such an effect becomes more prominent with the decrease in the number of branch metrics. 
     The data from the RAM table 11 are updated so as to effect optimum equalization at all times with no regard to the time-varying distortion. Specifically, a presumed symbol sequence having a determined symbol sequence delayed by R symbols as a correction RAM address signal is outputted. By using input data symbols c n-R  and the value of the RAM table 11 indicated by the correction RAM address signal, a table corrector, FIG. 4, performs an operation on the basis of the following algorithm; 
     
         X←μc.sub.n-R +(1-μ) X 
    
     where X is the data of the RAM address, and μ is a correction factor greater than or equal to 0 and smaller than or equal to 1. Then, the table corrector updates the data stored in the RAM address of the RAM table 11 of interest. 
     DETAILED DESCRIPTION 
     Referring to FIG. 10, a magnetic recording circuit including an equalizer of the present invention is shown in a schematic block diagram. A write signal 13 is recorded in a magnetic tape 17 for high density digital VTR by a write head 14. The signal recorded in the magnetic tape 17 is read out by a read head 15 and then applied to an equalizer 18 of the invention as a current. The signal read out of the tape 17 involves distortions due to intersymbol interference and nonlinear characteristic which are, in turn, ascribable to the limited frequency band, as discussed earlier. 
     FIG. 11 shows a preferred embodiment of the equalizer 18 in accordance with the present invention. Assume that the digital signal to be applied to the equalizer 18 is a binary signal, that both the precursor component and the postcursor component of impulse response have a length of one symbol, and that a single storage implements presumed signal storing sections. 
     Referring also to FIG. 12, data symbols read out of the tape 17, i.e., the data symbols of the above-stated input digital signal undergone linear and nonlinear distortions are sequentially transformed to a binary signal c n  representative of the analog values of the amplitudes of the input signal, i.e., read symbols by an amplitude encoder 106. As shown in FIG. 13, an error calculator 104 sequentially receives four presumed value signals from a presumed value table 101 and causes a subtractor 121 thereof to produce an error between each of the four presumed value signals and the input signal from an encoder 106. A squarer 122 squares each of the resulting four error signals from the subtractor 121. The squares from the squarer 122 are temporarily stored in registers 122A-122C and applied to a Viterbi algorithm equalizer 105 as branch metrics (d n ,0, d n ,1, d n ,2 and d n ,3). 
     As shown in FIG. 14, the Viterbi algorithm equalizer 105 executes Viterbi decoding by using the outputs of the error calculator 104 and signals from registers 131 as branch metrics and path metrics, respectively, and according to a transition diagram shown in FIG. 16. In FIG. 16, d n ,0 (&#34;n&#34; and &#34;0&#34; of the suffix indicate time and branch metric state, respectively; for example, &#34;0&#34; indicates &#34;00&#34; while &#34;3&#34; indicates &#34;11&#34;) to d R ,3 are the branch metrics corresponding to states &#34;00&#34; to &#34;11&#34; each consisting of a precursor component and a present component of impulse response. S n ,0 (&#34;n&#34; and &#34;0&#34; of the suffix indicate time and path metric state, respectively) to S n ,1 are the path metrics. A postcursor component of impulse response (&#34;0&#34; or &#34;1&#34;) determined by a survived path corresponds to each of the path metrics and is used as an equalization address signal. 
     Referring again to FIG. 14, adders 132 add the path metrics from the associated registers 131 and the branch metrics. The outputs of the adders 132 are compared by associated comparators 133 while selectors 134 each selects smaller one of the associated sums and again stores it in the associated register 131. The comparators 133 each delivers a temporary determined value corresponding to the output of the selected adder 132 to each shift register 135 as an equalization address and, at the same time, replaces the content of the shift register 135 according to the Viterbi transition diagram shown in FIG. 16, whereby path history information is stored in the shift registers 135. As a result, equalization address signals (P n-1 ,0 and p n-1 ,1) are outputted while presumed data symbols of signals having been received and corresponding to two states are stored in the individual shift registers 135. 
     The trace-back procedure for Viterbi decoding will be described with reference to FIGS. 14 and 15. Assume that trace-back is effected over the past six consecutive symbols. To begin with, a comparator 136 compares the path metrics from the registers 131 to select one of them having the smallest value. Subsequently, a value stored in the shift register 135 corresponding to the register 131 having the smallest value and which appeared six symbols before (q n ,0 or q n ,1) is read out and outputted as the most probable presumed symbol a n-7 . The sequence of the past sixth to eighth symbols (a n-9 , a n-8  and a n-7 ) are used as a correction address signal. The contents of the presumed value table 101 are corrected by use of the correction address signal (a n-9 , a n-8  and a n-7 ) outputted by the Viterbi algorithm equalizer 105 and the correction value determined by a table corrector 102, as will be described later specifically. 
     Referring to FIG. 17, an address signal selector 103 selects the correction address signal (a n-9 , a n-8  and an-7) from the Viterbi algorithm equalizer 105 or the equalization address signal (P n-1 ,0 and P n-1 ,1) and a 2-bit output of a counter 151 and sends them to the presumed signal table 101 as address signals. This selection is switched over by the timings of a signal S 1  shown in FIG. 12. It is to be noted that P n-1 ,0 and P n-1 ,1 and counter output have four different combinations in total i.e., (P n-1 ,0 0, 0), (P n-10 , 0, 1), (P n-1 ,1 1, 0) and (P n-1 , 1, 1). 
     Assume the transition diagram shown in FIG. 9 as a model. Let &#34;0&#34; and &#34;0&#34; correspond to the path metrics S 1 ,0 and S 1 ,1 as postcursor states. The postcursor state &#34;0&#34; of S 1 ,0 is outputted from P n-1 ,0 of the Viterbi algorithm equalizer 105 as an equalization address signal. The address signal selector 103 delivers an address signal &#34;000&#34; to the presumed value table 101 on the basis of the equalization signal and the output &#34;00&#34; of the counter 151 of the address signal selector 103, so that the presumed value table 101 may output a presumed value to be used by the error calculator 104 for calculating d 1 ,0. Likewise, to determine d 1 ,1, the address signal selector 103 outputs &#34;001&#34; in response to the equalization address signal &#34;0&#34; and the output &#34;01&#34; of the counter 151. Thereafter, the address signal selector 103 sequentially outputs &#34;010&#34; and &#34;011&#34; meant for d 1 ,2 and d 1 ,3, respectively. 
     Implemented by a RAM, for example, the presumed value table 101 outputs a presumed value signal matching the address signal from the address signal selector 103. For example, assuming that the output of the address signal selector 103 is &#34;011&#34; then the presumed value table 101 produces a presumed value signal corresponding to a state wherein the precursor component, present symbol component and postcursor component of a received signal are &#34;1&#34;, &#34;1&#34; and &#34;0&#34;, respectively. Likewise, when the output of the address signal selector 103 is &#34;010&#34;, the table 101 outputs a presumed value signal corresponding to a state wherein the precursor component, present symbol component and postcursor component are &#34;0&#34;, &#34;1&#34; and &#34;0&#34; respectively. A specific construction of the presumed value table 101 is shown in FIG. 18. 
     To determine a path metric S 2 ,0, the Viterbi algorithm equalizer 105 compares S 1 ,0 +d 1 ,0 and S 1 ,1 +d 1 ,2 and selects a smaller one of them. Assume that the equalizer 105 has selected S 1 ,0 +d 1 ,0. Then, the state of the postcursor component is &#34;0&#34; since the received signal of d 1 ,0 is assumed to be &#34;0&#34;. Likewise, the state of the postcursor component of S 2 ,1 is &#34;0&#34; on the assumption that d 1 ,1 is selected. Such a procedure is repeated to calculate the path metrics and branch metrics to determine the states of postcursor component associated with the path metrics at consecutive times. 
     The trace-back procedure is as follows. 
     Every time the path metrics S 8 ,0 and S 8 ,1 are obtained, the comparator 136, FIG. 15, selects smaller one of them and then traces back over the past six symbols. Assume that the path of d 1 ,1 has been set up by the trace-back. The determined output symbol a 0  associated with d 1 ,1 is 0  since a 0  is assumed to be 0. The presumed value signal used to determine d 0 ,0 of the presumed value table 101 is corrected by the correction address signals a 0 , a 1  and a 2 . 
     As shown in FIG. 19, the table corrector 102 includes a delay unit 171 which delays an input signal by seven symbols by a shift register. By such a delay, the output of the delay unit 171 and the correction address signal from the Viterbi algorithm equalizer 105 are synchronized. A calculator 172 performs a calculation with the output of the delay unit 171 and the output of the presumed value table 101 based on the correction address signal from the Viterbi algorithm equalizer 105 and thereby corrects the presumed value signal of the presumed value table 101. For the calculation, the following algorithm may be used: 
     
         D←(1-α)×D+α×X                 (1) 
    
     where D is the output of the presumed value table 101, α is the correction factor greater than or equal to 0 and smaller than or equal to 1, and X is the output of the delay unit 12. 
     With the above procedure, it is possible to equalize a received signal having suffered from nonlinear distortion by using three symbols in total, i.e., precursor component, present symbol component, and postcursor component. 
     Referring to FIG. 20, an alternative embodiment of the present invention is shown. In this embodiment, a presumed value table 181 is made up of a plurality of storing sections while a table corrector 182 is so constructed as to receive the correction address signal directly from the Viterbi algorithm equalizer 185. 
     FIG. 21 shows a specific construction wherein the presumed value table 181 is constituted by four RAMs 191. Each RAM 191 delivers to an error calculator 184 and the table corrector 182 presumed value signals corresponding to the states of precursor component, present symbol component and postcursor component of impulse response in parallel. 
     As shown in FIG. 22, the error calculator 184 has 2 2  subtractors 201 and 2 2  squarers 202. The subtractors 201 each produces a difference between the output of the associated storing section 191 and the input signal. The squarers 202 each squares the output of the associated subtractor 201 and delivers the square to a Viterbi algorithm equalizer 185 as a branch metric. The Viterbi algorithm equalizer 185 executes the same processing at the equalizer 105, FIG. 11, at the same timing as the equalizer 105 to thereby output the most probable presumed value, an equalization address, and a correction address signal. 
     As shown in FIG. 23, the table corrector 182 has a delay unit 211 for delaying an input by seven symbols. Such a delay synchronizes the output of the delay unit 211 and the correction address signal from the Viterbi algorithm equalizer 185. Regarding the selection of a presumed value signal to be corrected, a selector 212 selects one of the outputs of the four RAMs 191 by using leading two symbols (a n-7  and a n-8 ) of the correction address signal from the Viterbi algorithm equalizer 185. 
     The outputs of the delay unit 211 and selector 212 are applied to a calculator 213 to correct the presumed value signal. The calculator 213 performs the correction with the previously stated algorithm (I). The outputs Y 0  -Y 3  of the calculator 213 are written to one of the four storing sections 191 by write signals (W 0 , W 1 , W 2  and W 3 ) generated on the basis of a n-7  and a n-8  from the table corrector 182, whereby the presumed value signal is updated. 
     The above procedure is also successful in equalizing a received signal with nonlinear distortion by using three symbols in total, i.e., precursor component, present symbol component, and postcursor component. 
     In summary, it will be seen that the present invention reduces the number of branch metrics to four which is far smaller than conventional 2 3  =8 branch metrics, thereby reducing the amount of calculations while preserving an equalization effect comparable with the conventional Viterbi decoding. 
     The embodiments shown and described has assumed that the input digital signal from VTR is a binary data symbol sequence, that intersymbol interference involves a precursor component and a postcursor component each having a length of one symbol, and that the precursor and postcursor components are used as branch metrics for Viterbi decoding. However, it will be apparent that the present invention is practicable even with an M-level digital signal (M being an integer greater than or equal to 2), precursor and postcursor components each having a greater length, and branch metrics including postcursor components of any desired length. 
     Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiments, as well as other embodiments of the invention, will become apparent to persons skilled in the art upon reference to the description of the invention. It is therefore contemplated that the appended claims will cover any modifications or embodiments as fall within the true scope of the invention.