APPARATUS AND METHOD OF GENERATING REFERENCE LEVEL OF VITERBI DECODER

Abstract
An apparatus of generating the optimum reference level of a Viterbi decoder for an input signal includes: a first reference level detection unit detecting a first reference level using a delayed input signal from the Viterbi decoder and an output signal of the Viterbi decoder; a second reference level detection unit detecting a second reference level using input signals input after and before one clock cycle with respect to the delayed input signal and the output signal; and a control unit controlling one of the first reference level and the second reference level to be the reference level of the Viterbi decoder by using a result of comparison between a first square level error for the first reference level calculated in the first reference level detection unit and a second square level error for the second reference level calculated in the second reference level detection unit.
Description
CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of Korean Patent Application No. 10-2008-0090006, filed Sep. 11, 2008 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference.


BACKGROUND OF THE INVENTION

1. Field of the Invention


Aspects of the invention relate to a Viterbi decoder, and more particularly, to an apparatus and method of generating an optimum reference level of a Viterbi decoder for an input signal.


2. Description of the Related Art


A Viterbi decoder is used to detect a binary signal from an input signal. For example, the Viterbi decoder is used in an optical disk drive to convert a radio frequency (RF) signal read from a disc into a digital signal. The Viterbi decoder detects the binary signal using a difference between the input signal and the reference level of the Viterbi decoder. Thus, in order to ensure high efficiency, the Viterbi decoder uses an optimum reference level for a condition for generating the input signal. If the optimum reference level is not used for the condition for generating the input signal, errors may be included in the binary signal output from the Viterbi decoder.


SUMMARY OF THE INVENTION

Aspects of the invention provide an apparatus and method of adaptably generating an optimum reference level of a Viterbi decoder for an input signal.


According to an aspect of the invention, there is provided an apparatus for generating a reference level of a Viterbi decoder, the Viterbi decoder receiving an input signal and outputting an output signal according to the reference level, the apparatus comprising: a first reference level detection unit to detect a first reference level using a first delayed input signal and the output signal of the Viterbi decoder, the delayed input signal being delayed relative to the input signal; a second reference level detection unit to detect second reference levels using the output signal of the Viterbi decoder and a second delayed input signal and a third delayed input signal input one clock cycle after and before the first delayed input signal ; and a control unit to select one of the first reference level and the second reference level as the reference level of the Viterbi decoder using a result of a comparison between a first square level error for the first reference level calculated in the first reference level detection unit and a second square level errors for the second reference levels calculated in the second reference level detection unit.


According an aspect of the invention, the first reference level detection unit obtains the first square level error by squaring a difference between the first reference level and the input signal of the Viterbi decoder, and the second level detection unit obtains the second square level errors by squaring the differences between each of the second reference levels and the input signal of the Viterbi decoder, wherein the control unit selects the reference level to be the one of the first and second reference levels having a smallest of the first and second square level errors.


According to an aspect of the invention, the second reference level detection unit comprises: a first reference level detector to detect one of the second reference levels using the second delayed input signal input one clock cycle after the first delayed input signal; and a second reference level detector to detect the other one of the second reference levels using the third delayed input signal input one clock cycle before the first delayed input signal, and the control unit selects as the reference level the one of the first and second reference levels having the smallest of the first and the second square level errors respectively calculated in the first reference level detection unit and the second reference level detection unit .


According to an aspect of the invention, the first reference level detection unit, the first reference level detector, and the second reference level detector respectively each comprise: a delaying unit to delay the input signal of the Viterbi decoder; a buffer to store the output signal of the Viterbi decoder by a predetermined bit and to output the stored signal; a multiplexer selectively transmits the delayed input signal output from the delaying unit according to the output stored signal output from the buffer; an average value detector group comprising a plurality of average value detectors which detects an average value of the selectively transmitted signal through the multiplexer and to output the detected value, the number of the average value detectors corresponding to a number of reference levels, which can be generated; a memory to store at least one of the reference values output from the average value detector group; and a square level error calculator to calculate the square level error using the one of the reference levels stored in the memory and the input signal of the Viterbi decoder, the delaying unit included in the first reference level detector outputs a signal input one clock cycle after the input signal output from the delaying unit included in the first reference level detection unit, and the delaying unit included in the second reference level detector outputs a signal input one clock cycle before after the input signal output from the delaying unit included in the first reference level detection unit, wherein the square level error calculator uses an ideal reference level from among the reference levels stored in the memory.


According to an aspect of the invention, there is provided a method of generating a reference level of a Viterbi decoder, the Viterbi decoder receiving an input signal and outputting an output signal according to the reference level, the method comprising: receiving the input signal and the output signal from the Viterbi decoder; detecting a first reference level of the Viterbi decoder using a first delayed input signal and the received output signal; detecting second reference levels using the output signal from the Viterbi decoder and a second delayed input signal and a third delayed input signal input one clock cycle after and before the first delayed input signal; respectively calculating a first square level error for the first reference level and second square level errors for the second reference levels; and selecting as the reference level for the Viterbi decoder according to a result of a comparison between the calculated first square level error and the second square level errors, wherein the calculating the first square level error comprises squaring a difference between the detected first reference level and the input signal of the Viterbi decoder, and the calculating the second square level error comprises squaring corresponding differences between the second reference levels and the input signal of the Viterbi decoder.


According to an aspect of the invention, wherein in the selecting as the reference level comprises selecting as the reference level the one of the first and second reference levels corresponding to a smallest one of the first and the second square level errors.


According to an aspect of the invention, wherein the detecting of the second reference levels comprises: detecting one of the second reference levels using the second delayed input signal input one clock cycle after the first delayed input signal; and detecting the other one of the second reference levels using the third delayed input signal input one clock cycle before the first delayed input signal, the second square level errors for the second reference levels comprise a square level error for the second delayed input signal and a square level error for the third delayed input signal, and the selecting of the reference level of the Viterbi decoder comprises selecting as the reference level the one of the first and second reference levels corresponding to the smallest one of the first square level error and the second square level errors.


According an aspect of the invention, there is provided an apparatus for generating a reference level of a Viterbi decoder which converts an input signal to an output signal using the reference level, the apparatus comprising: a first reference level detection unit to detect a first reference level using a first input signal and the output signal of the Viterbi decoder, and to calculate a first error using the detected first reference level and the input signal of the Viterbi decoder; a second reference level detection unit to detect a second reference level other than the first reference level using a second input signal and the output signal, and to calculate a second error using the detected second reference level and the input signal of the Viterbi decoder, the second input signal being temporally different from the first input signal; and a control unit to select the first reference level to be the reference level used by the Viterbi decoder where the calculated second error is more than the calculated first error, and to select the second reference level to be the reference level used by the Viterbi decoder where the calculated second error is not more than the calculated first error.


According an aspect of the invention, there is provided a method of generating a reference level of a Viterbi decoder which converts an input signal to an output signal using the reference level, the method comprising: detecting a first reference level using a first input signal and the output signal of the Viterbi decoder; calculating a first error using the detected first reference level and the input signal of the Viterbi decoder; detecting a second reference level other than the first reference level using a second input signal and the output signal, the second input signal being temporally different from the first input signal; calculating a second error using the detected second reference level and the input signal of the Viterbi decoder; selecting the first reference level to be the reference level used by the Viterbi decoder where the calculated second error is more than the calculated first error; and selecting the second reference level to be the reference level used by the Viterbi decoder where the calculated second error is not more than the calculated first error.


Additional aspects and/or advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention.





BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects and advantages of the invention will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:



FIG. 1 is a block diagram of a device including an apparatus for generating a reference level of a Viterbi decoder according to an embodiment of the present invention;



FIG. 2 is a block diagram of a device including an apparatus for generating a reference level of a Viterbi decoder according to another embodiment of the present invention;



FIG. 3 is a flowchart illustrating a method of generating a reference level of a Viterbi decoder according to an embodiment of the present invention; and



FIG. 4 is a flowchart illustrating a method of generating a reference level of a Viterbi decoder according to another embodiment of the present invention.





DETAILED DESCRIPTION OF THE EMBODIMENTS

Reference will now be made in detail to the present embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below in order to explain the present invention by referring to the figures.



FIG. 1 is a block diagram of a device 100 including an apparatus 115 for generating a reference level of a Viterbi decoder 110 according to an embodiment of the present invention. The device 100 may be denoted as an adaptable Viterbi decoder. While not required in all aspects, the decoder 110 and the apparatus 115 may comprise one or more processors and/or processing elements of an integrated circuit and can be implemented using software and/or firmware.


The Viterbi decoder 110 outputs a binary signal of an input signal using a difference between the input signal and the reference level provided from the apparatus 115 for generating a reference level. For example, the Viterbi decoder 110 may be configured to generate a state metric (or a path metric) by obtaining the difference between the input signal and the reference level using a branch metric generator (not illustrated). If the device 100 is applied to an optical disc drive, the input signal may be defined as a radio frequency (RF) signal, such as that obtained from an optical pickup reading an optical recording medium.


The apparatus 115 includes a first reference level detection unit 120, a second reference level detection unit 130, and a control unit 140. The first reference level detection unit 120 detects a first reference level of the Viterbi decoder 110 using a delayed signal for the input signal of the Viterbi decoder 110 and an output signal of the Viterbi decoder 110. Accordingly, the first reference level detection unit 120 includes a first delaying unit 121, a first buffer 122, a first multiplexer 123, a first average value detector group 124, a first memory 125, and a first square level error calculator 126.


When an input signal is received, the first delaying unit 121 outputs a first delayed input signal. The first delayed input signal is the input signal delayed by at least one clock period. While not limited thereto, the clock period corresponds to the number of a pass memory (not illustrated) of an X-axis included in the Viterbi decoder 110. Thus, a delaying period of the first delaying unit 121 may be defined to have a period proportional to the number of taps of the Viterbi decoder 110.


The first buffer 122 stores an output signal of the Viterbi decoder 110 by a predetermined bit, and outputs the stored signal. For example, when the reference level output from the apparatus 115 is the reference level adaptable for a partial response (PR) level 1, 2, 1, the first buffer 122 may store the output signal of the Viterbi decoder 110 by a three-bit and output the stored signal. The first buffer 122 may be formed of a First In First Out (FIFO) buffer, but need not in all aspects of the invention.


The first multiplexer 123 selectively transmits the first delayed input signal output from the first delaying unit 121 according to the signal output from the first buffer 122. For example, when the signal output from the first buffer 122 is “000,” the first multiplexer 123 transmits the first delayed input signal output from the first delaying unit 121 to a first average value detector 124_1. When the signal output from the first buffer 122 is “111,” the first multiplexer 123 transmits the first delayed input signal output from the first delaying unit 121 to an mth average value detector 124m. When the signal output from the first buffer 122 is three bits as described above, m becomes 8, since the number of the first through mth average value detectors 124_1 through 124m correspond to the number of the reference level, which may be generated.


The first through mth average value detectors 124_1 through 124m detect average values of the signal transmitted from the first multiplexer 123. While not required in all aspects, the first through mth average value detectors 124_1 through 124m may be configured to obtain an average value for a signal input during a predetermined time period or to obtain an average value for a signal input using a low pass filter.


The first memory 125 stores the average values respectively output from the first through mth average value detectors 124_1 through 124m. Thus, while not required in all aspects, the first memory 125 may store at least a value and the stored value may be defined as a reference level value adaptable to the input signal.


The first square level error calculator 126 calculates square level errors using the input signal of the Viterbi decoder 110 and the reference level values read from first memory 125. The reference level value read from the first memory 125 is an ideal reference level value from among the reference level values stored in the first memory 125. Accordingly, while not required in all aspects, the first square level error calculator 126 further performs a function for detecting the ideal reference level value from among the reference level values read from the first memory 125. That is, as shown, the value output from the first buffer 122 may be used to identify one of the plurality of reference level values read from the first memory 125 as the ideal reference level value. The ideal reference level value is the value for minimizing an error of the binary signal output from the Viterbi decoder 110.


The function for detecting the one ideal reference level value from the plurality of reference level values read from the first memory 125 may be separated from the first square level error calculator 126 in another embodiment. That is, the first square level error calculator 126 may be realized to perform only a square level operation function, and an element for detecting the one ideal reference level value may be disposed between the first square level error calculator 126 and the first memory 125.


The first square level error calculator 126 may obtain a square level error by squaring the difference between the input signal and the ideal reference level value read from the first memory 125, as shown in Equation 1 below.





Square level error=(input signal−reference level)2   Equation 1


In Equation 1, the reference level is the ideal reference level value from the reference level values read from the first memory 125. The first square level error calculator 126 provides the obtained square level error to the control unit 140.


The second reference level detection unit 130 includes a second delaying unit 131, a second buffer 132, a second multiplexer 133, a second average value detector group 134, a second memory 135, and a second square level error calculator 136, as illustrated in FIG. 1. The second reference level detection unit 130 detects the reference level for a signal input after one clock cycle with respect to the first delayed input signal output from the first delaying unit 121 and then, detects the reference level for a signal input before one clock cycle with respect to the first delayed input signal output from the first delaying unit 121. For example, if the first delayed input signal output from the first delaying unit 121 is the input signal delayed by 10 clock periods (or 10 clock cycles), the second reference level detection unit 130 detects the reference level for the input signal delayed by 11 clock periods and then, detects the reference level for the input signal delayed by 9 clock periods.


Specifically, when the input signal is received, the second delaying unit 131 firstly outputs a second delayed input signal delayed by a clock period next to the first delayed input signal output from the first delaying unit 121. For example, when the first delayed input signal corresponds to the PR level 1, 2, 1, the second delayed input signal output from the second delaying unit 131 may correspond to the PR level X, 1, 2. Here, X is an unknown value.


The second buffer 132 stores the output signal of the Viterbi decoder 110 by a predetermined bit and outputs the stored signal, as in the first buffer 122. The second multiplexer 133 selectively transmits the second delayed input signal output from the second delaying unit 131 according to the signal output from the second buffer 132, as in the first multiplexer 123. The second average value detector group 134 detects the average value for the input signal and stores the detected value in the second memory 135, as in the first average value detector group 124. Accordingly, while not required in all aspects, the shown second memory 135 stores the reference level value of the input signal delayed by one clock period next to the input signal for the reference level values stored in the first memory 125. The reference level value stored in the second memory 135 may also be defined as the reference level value adaptable for the input signal. The second memory 135 may store at least one reference level value.


The second square level error calculator 136 calculates an ideal reference level value from the input signal of the Viterbi decoder 110 and the reference level values stored in the second memory 135 as in Equation 1 so as to obtain a square level error and provides the obtained square level error to the control unit 140. Accordingly, while not required in all aspects, the second square level error calculator 136 performs a function for detecting the ideal reference level value from the reference level values stored in the second memory 135 by the output signal of the second buffer 132, as in the first square level error calculator 126. In another embodiment, the second square level error calculator 136 may be realized to perform only a square level operation function and an element for detecting the ideal reference level value may be disposed between the second square level error calculator 136 and the second memory 135, as in the first square level error calculator 126.


The control unit 140 compares the first square level error transmitted from the first reference level detection unit 120 and the second square level error transmitted from the second reference level detection unit 130. As a result, if the first square level error is smaller than the second square level error, the reference level values stored in the first memory 125 and the second memory 135 are maintained.


However, if the first square level error is not smaller than the second square level error, the control unit 140 replaces the reference level value stored in the first memory 125 with the reference level value stored in the second memory 135. That is, the reference level value stored in the first memory 125 is updated to the reference level value stored in the second memory 135.


Then, the second reference level detection unit 130 detects the reference level for the signal input before one clock period with respect to the first delayed input signal output from the first delaying unit 121. That is, when the input signal is received, the second delaying unit 131 firstly outputs a third delayed input signal that is an input signal input one clock cycle prior to the first delayed input signal output from the first delaying unit 121 (i.e., one that is not delayed by one clock cycle as in the first delayed input signal). For example, when the first delayed input signal corresponds to the PR level 1, 2, 1, the third delayed input signal output from the second delaying unit 131 may correspond to the PR level 1, 2, X. Here, X is an unknown value.


The second buffer 132 stores the output signal of the Viterbi decoder 110 by a predetermined bit and outputs the stored signal, as in the first buffer 122. The second multiplexer 133 selectively transmits the third delayed input signal output from the second delaying unit 131 according to the signal output from the second buffer 132, as in the first multiplexer 123. The second average value detector group 134 detects the average value for the input signal and stores the detected value in the second memory 135, as in the first average value detector group 124. Accordingly, the second memory 135 may be updated to the reference level value of the third delayed input signal, which corresponds to the input signal input one clock cycle before the input signal used to generate the reference level values stored in the first memory 125.


When the reference level stored in the first memory 125 is updated to the reference level value of the second delayed input signal input after one clock cycle that is previously stored in the second memory 135, the reference level value currently stored in the second memory 135 becomes the reference level of the third delayed input signal input more than two clock cycles prior to the second delayed input signals used to obtain the reference level values currently stored in the first memory 125.


The second square level error calculator 136 calculates the ideal reference level detected from the input signal of the Viterbi decoder 110 and the reference level currently stored in the second memory 135 as in Equation 1 so as to obtain a square level error and provides the obtained square level error to the control unit 140.


The control unit 140 again compares the first error square level error transmitted from the first reference level detection unit 120 and the second square level error transmitted from the second reference level detection unit 130. As a result, if the first square level error is smaller than the second square level error, the control unit 140 controls the first memory 125 so as to generate the reference level value stored in the first memory 125 as the reference level value of the Viterbi decoder 110. Accordingly, the first memory 125 transmits the stored reference level value to the Viterbi decoder 110.


However, as a result, if the first square level error is not smaller than the second square level error, the control unit 140 replaces the reference level value stored in the first memory 125 with the reference level value stored in the second memory 135. If the reference level stored in the first memory 125 is updated to the reference level value detected for the third delayed input signal input prior to one clock cycle before the first delayed input signal, the first square level error is a value that is calculated again using the updated reference value.


Accordingly, the control unit 140 may control the first reference level detection unit 120 and the second reference level detection unit 130 so as to provide the reference level value having a smallest square level error from among the reference level value detected from the second reference level detection unit 130 using the second delayed input signal input posterior to one clock cycle(+1 clock cycle) with respect to the first delayed input signal, the reference level value detected from the second reference level detection unit 130 using the third delayed input signal input prior to one clock cycle (−1 clock cycle) with respect to the first delayed input signal, and the reference level value detected from the first reference level detection unit 120 using the first delayed input signal, as the reference level of the Viterbi decoder 110. Thus, an optimum reference level adaptable for the input signal is provided to the Viterbi decoder 110 and an error generation rate in the binary signal output from the Viterbi decoder 110 may be reduced.



FIG. 2 is a block diagram of a device 200 including an apparatus 215 for generating a reference level of a Viterbi decoder 210 according to an embodiment of the invention. The apparatus 215 includes a first reference level detection unit 220, a second reference level detection unit 230, and a control unit 240. The second reference level detection unit 130 of FIG. 1 detects the reference level for the second delayed input signal input after one clock cycle with respect to the first delayed input signal and the reference level for the third delayed input signal input before one clock cycle with respect to the first delayed input signal after a time lag needed to calculate both sets of values. In contrast, the second reference level detection unit 230 of FIG. 2 separately includes a function block for detecting the reference level for the signal input after one clock cycle with respect to the first delayed input signal of the first reference level detection unit 220 and the reference level for the signal input before one clock cycle with respect to the first delayed input signal of the first reference level detection unit 220. Thus, the second reference level detection unit 230 of FIG. 2 detects both sets of values at the same time. While not required in all aspects, the decoder 210 and the apparatus 215 may comprise one or more processors and/or processing elements of an integrated circuit and can be implemented using software and/or firmware.


In FIG. 2, the reference level for the signal input after one clock cycle with respect to the first delayed input signal and the reference level for the signal input before one clock cycle with respect to the first delayed input signal may be simultaneously detected. Accordingly, the optimum reference level for the input signal may be adaptably provided to the Viterbi decoder 210 more rapidly in FIG. 2 than in FIG. 1.


Therefore, the Viterbi decoder 210 and the first reference level detection unit 220 included in the device 200 of FIG. 2 are the same as the Viterbi decoder 110 and the first reference level detection unit 120 included in the device 100 of FIG. 1. However, unlike the second reference level detection unit 130 of FIG. 1, the second reference level detection unit 230 of FIG. 2 includes first and second reference level detectors 231 and 232.


The first reference level detector 231 and the second reference level detector 232 included in the second reference level detection unit 230 are configured similar to the second reference level detection unit 130 of FIG. 1. However, a delaying unit (not illustrated) included in the first reference level detector 231 outputs the signal input after one clock cycle with respect to a delay signal from a delaying unit (not illustrated) included in the first reference level detection unit 220, and a third delaying unit 233 included in the second reference level detector 232 outputs the signal input before one clock cycle with respect to the delay signal from the delaying unit (not illustrated) included in the first reference level detection unit 220.


Accordingly, a memory (not illustrated) included in the first reference level detection unit 220 stores the reference level value that is same as the reference level value stored in the first memory 125 of FIG. 1. Also, the reference level value stored in a memory (not illustrated) included in the first reference level detector 231 becomes the reference level value for the signal input after one clock cycle with respect to the reference level value stored in the first reference level detection unit 220. The reference level value stored in a third memory 237 included in the second reference level detection unit 232 becomes the reference level value for the signal input before one clock cycle with respect to the reference level value stored in the first reference level detection unit 220. As such, when each reference level value is detected, the first reference level detection unit 220, the first reference level detector 231, and the second reference level detector 232 calculate the square level errors for an ideal reference level value from among the detected reference level value and provides the calculated square level errors to the control unit 240.


The control unit 240 controls the first reference level detection unit 220, the first reference level detector 231, and the second reference level detector 232 so as to generate the reference level value corresponding to the smallest square level error from among three square level errors as the reference level of the Viterbi decoder 210.


That is, when the square level error provided from the first reference level detection unit 220 is the smallest, the control unit 240 controls the first reference level detection unit 220 so as to provide the reference level value stored in the first reference level detection unit 220 as the reference level of the Viterbi decoder 210. However, when the square level error provided from the first reference level detector 231 is the smallest, the control unit 240 replaces the reference level value stored in the first reference level detection unit 220 with the reference level value stored in the first reference level detector 231 and controls the first reference level detection unit 220 and the first reference level detector 231 so as to provide the replacement reference level value as the reference level of the Viterbi decoder 210. The replacing of the reference level may be performed by updating the reference level value stored in the memory (not shown) included in the first reference level detection unit 220 to the reference level value stored in the memory included in the first reference level detector 231.


When the square level error provided from the second reference level detector 232 is the smallest, the control unit 240 replaces the reference level value stored in the first reference level detection unit 220 with the reference level value stored in the third memory 237 included in the second reference level detector 232 and controls the first reference level detection unit 220 and the second reference level detector 232 so as to provide the replacement reference level value as the reference level of the Viterbi decoder 210. The replacing of the reference level may be performed by updating the reference level value stored in the memory included in the first reference level detection unit 220 to the reference level value stored in the third memory 237. The memories mentioned in FIG. 2 may store at least one reference level value, as in the first and second memories 125 and 135


In FIGS. 1 and 2, when the reference level values stored in the memories of the first reference level detection units 120 and 220 are replaced with the reference level values stored in the memories of other reference level detection units, the reference level values are directly transmitted between the memories that are controlled by the control units 140 and 240, without passing through the control unit 140 and 240. However, the control unit 140 and 240 may read the reference level values stored in the memories of other reference level detection units and may replace or update the reference level values stored in the memories of the first reference level detection units 120 and 220. For example, the control unit 140 may read the reference level value stored in the second memory 135 of the second reference level detection unit 130 in FIG. 1 and store the read reference level value in the first memory 125 of the first reference level detection unit 120.



FIG. 3 is a flowchart illustrating a method of generating the reference level of the Viterbi decoder 110 according to an embodiment of the present invention. Referring to FIGS. 1 and 3, an input signal and an output signal of the Viterbi decoder 110 are received in operation 301. In operation 302, a delay signal for the received input signal, and the output signal are used to detect a first reference level of the Viterbi decoder 110 and the signal input after one clock cycle with respect to the delay signal, and the output signal are used to detect second reference level of the Viterbi decoder 110. The first reference level is detected in the same manner as in the first reference level detection unit 120 of FIG. 1. The second reference level is detected in the same manner as in the second reference level detection unit 130 of FIG. 1.


In operation 303, a first square level error for the first reference level and a second square level error for the second reference level are respectively calculated. That is, an ideal reference level value is detected from the plurality of reference level values as described in FIG. 1 and the detected reference level value and the input signal are calculated as in Equation 1 so as to obtain the first square level error and the second square level error.


As a result of the comparison between the first square level error and the second square level error, when the first square level error is smaller than the second square level error, in operation 304, the second reference level of the Viterbi decoder 110 is detected, in operation 305, using the signal input before one clock cycle with respect to the delay signal and the output signal used in the first reference level.


Then, in operation 306, the first square level error and the second square level error are calculated. After comparing the calculated first square level error and second square level error, when the first square level error is smaller than the second square level error, in operation 307, the first reference level is generated as the reference level of the Viterbi decoder 110, in operation 308.


As a result of the comparison between the first square level error and the second square level error, when the first square level error is larger than the second square level error, in operation 304, the first reference level is replaced with the second reference level, in operation 309. Then, operation 305 is executed so that the signal input before one clock cycle with respect to the delay signal and the output signal used for detecting the first reference level in operation 302 are used and the second reference level of the Viterbi decoder 110 is detected again.


Then, in operation 306, the first square level error and the second square level error are calculated. Here, the first square level error is calculated using the replacement second reference level obtained in operation 309.


When the first square level error is not smaller than the second square level error, in operation 307, the first reference level is replaced with the second reference level. Here, the second reference level is detected using the signal input before one clock cycle with respect to the delay signal used in the first reference level. That is, in the replacing in operation 310, the second reference level detected in operation 305 (the reference level detected using the signal input before one clock cycle with respect to the delay signal used in the first reference level detected in operation 302) has the smallest square level error from among the first reference level detected in operation 302, the second reference level detected in operation 302, and the second reference level detected in operation 305 and is determined as the optimum reference level adaptable for the input signal.


Accordingly, the reference level generated in operation 308 becomes the reference level detected using the signal input before one clock cycle with respect to the delay signal used in the first reference level. Thus, when the method as in FIG. 3 is executed, the optimum reference level adaptable for the input signal may be provided to the Viterbi decoder 110 and thus, the error generation rate in the binary signal output from the Viterbi decoder 110 may be reduced.



FIG. 4 is a flowchart illustrating a method of generating the reference level of the Viterbi decoder 210 of FIG. 2 according to another embodiment of the present invention. Unlike the embodiment shown in FIG. 3, the second reference level detected using the signal input after one clock cycle with respect to the delay signal used to detect the first reference level and the output signal of Viterbi decoder 110, described in FIG. 3, is detected simultaneously with the second reference level detected using the signal input before one clock cycle with respect to the delay signal used to detect the first reference level so that the optimum reference level for the input signal is generated in FIG. 4.


Thus, in operation 401, when an input signal and an output signal of the Viterbi decoder 210 are received, first, second, and third reference levels are detected in operation 402. Detecting of the first, second, and third reference levels may be performed in parallel, as in FIG. 2.


In operation 403, first, second, and third square level errors are calculated using the detected first, second, and third reference levels and the delayed input signals used in detecting the first, second, and third reference levels. As a result of the comparison between the calculated first, second, and third square level errors, if the first square level error is the smallest, in operation 404, the first reference level is generated as the reference level of the Viterbi decoder 210, in operation 405.


As a result of the comparison between the calculated first, second, and third square level errors, if the first square level error is not the smallest, the smaller one is detected from among the second square level error and the third square level error, in operation 406. Then, the reference level corresponding to the smaller square level error is replaced with the first reference level, in operation 407, and the first reference level is generated as the reference level of the Viterbi decoder 210, in operation 405.


As in the embodiment of FIG. 4, since the optimum reference level of the Viterbi decoder 210 is provided, the error generation rate in the binary signal output from the Viterbi decoder 210 may be reduced and rapid Viterbi decoding may be expected.


While not required in all aspects, all or portions of the invention can also be embodied as computer readable codes on a computer readable recording medium. The computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. In addition, the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.


Although a few embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in this embodiment without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.

Claims
  • 1. An apparatus for generating a reference level of a Viterbi decoder, the Viterbi decoder receiving an input signal and outputting an output signal according to the reference level, the apparatus comprising: a first reference level detection unit to detect a first reference level using a first delayed input signal and the output signal of the Viterbi decoder, the delayed input signal being delayed relative to the input signal;a second reference level detection unit to detect second reference levels using the output signal of the Viterbi decoder and a second delayed input signal and a third delayed input signal input one clock cycle after and before the first delayed input signal ; anda control unit to select one of the first reference level and the second reference level as the reference level of the Viterbi decoder using a result of a comparison between a first square level error for the first reference level calculated in the first reference level detection unit and a second square level errors for the second reference levels calculated in the second reference level detection unit.
  • 2. The apparatus of claim 1, wherein: the first reference level detection unit obtains the first square level error by squaring a difference between the first reference level and the input signal of the Viterbi decoder, andthe second level detection unit obtains the second square level errors by squaring the differences between each of the second reference levels and the input signal of the Viterbi decoder.
  • 3. The apparatus of claim 1, wherein the control unit selects the reference level to be the one of the first and second reference levels having a smallest of the first and second square level errors.
  • 4. The apparatus of claim 1, wherein: the second reference level detection unit comprises: a first reference level detector to detect one of the second reference levels using the second delayed input signal input one clock cycle after the first delayed input signal; anda second reference level detector to detect the other one of the second reference levels using the third delayed input signal input one clock cycle before the first delayed input signal, andthe control unit selects as the reference level the one of the first and second reference levels having the smallest of the first and the second square level errors respectively calculated in the first reference level detection unit and the second reference level detection unit.
  • 5. The apparatus of claim 4, wherein: the first reference level detection unit, the first reference level detector, and the second reference level detector respectively each comprise: a delaying unit to delay the input signal of the Viterbi decoder;a buffer to store the output signal of the Viterbi decoder by a predetermined bit and to output the stored signal;a multiplexer selectively transmits the delayed input signal output from the delaying unit according to the output stored signal output from the buffer;an average value detector group comprising a plurality of average value detectors which detects an average value of the selectively transmitted signal through the multiplexer and to output the detected value, the number of the average value detectors corresponding to a number of reference levels, which can be generated;a memory to store at least one of the reference values output from the average value detector group; anda square level error calculator to calculate the square level error using the one of the reference levels stored in the memory and the input signal of the Viterbi decoder,the delaying unit included in the first reference level detector outputs a signal input one clock cycle after the input signal output from the delaying unit included in the first reference level detection unit, andthe delaying unit included in the second reference level detector outputs a signal input one clock cycle before after the input signal output from the delaying unit included in the first reference level detection unit.
  • 6. The apparatus of claim 5, wherein the square level error calculator uses an ideal reference level from among the reference levels stored in the memory.
  • 7. A method of generating a reference level of a Viterbi decoder, the Viterbi decoder receiving an input signal and outputting an output signal according to the reference level, the method comprising: receiving the input signal and the output signal from the Viterbi decoder;detecting a first reference level of the Viterbi decoder using a first delayed input signal and the received output signal;detecting second reference levels using the output signal from the Viterbi decoder and a second delayed input signal and a third delayed input signal input one clock cycle after and before the first delayed input signal;respectively calculating a first square level error for the first reference level and second square level errors for the second reference levels; andselecting as the reference level for the Viterbi decoder according to a result of a comparison between the calculated first square level error and the second square level errors.
  • 8. The method of claim 7, wherein the calculating the first square level error comprises squaring a difference between the detected first reference level and the input signal of the Viterbi decoder, and the calculating the second square level error comprises squaring corresponding differences between the second reference levels and the input signal of the Viterbi decoder.
  • 9. The method of claim 7, wherein in the selecting as the reference level comprises selecting as the reference level the one of the first and second reference levels corresponding to a smallest one of the first and the second square level errors.
  • 10. The method of claim 7, wherein: the detecting of the second reference levels comprises: detecting one of the second reference levels using the second delayed input signal input one clock cycle after the first delayed input signal; anddetecting the other one of the second reference levels using the third delayed input signal input one clock cycle before the first delayed input signal,the second square level errors for the second reference levels comprise a square level error for the second delayed input signal and a square level error for the third delayed input signal, andthe selecting of the reference level of the Viterbi decoder comprises selecting as the reference level the one of the first and second reference levels corresponding to the smallest one of the first square level error and the second square level errors.
  • 11. The method of claim 10, wherein the one of the reference levels used in calculating the square level errors is an ideal reference level from among the detected reference levels.
  • 12. An apparatus for generating a reference level of a Viterbi decoder which converts an input signal to an output signal using the reference level, the apparatus comprising: a first reference level detection unit to detect a first reference level using a first input signal and the output signal of the Viterbi decoder, and to calculate a first error using the detected first reference level and the input signal of the Viterbi decoder;a second reference level detection unit to detect a second reference level other than the first reference level using a second input signal and the output signal, and to calculate a second error using the detected second reference level and the input signal of the Viterbi decoder, the second input signal being temporally different from the first input signal; anda control unit to select the first reference level to be the reference level used by the Viterbi decoder where the calculated second error is more than the calculated first error, and to select the second reference level to be the reference level used by the Viterbi decoder where the calculated second error is not more than the calculated first error.
  • 13. The apparatus of claim 12, wherein the second input signal is temporally prior to the first input signal.
  • 14. The apparatus of claim 12, wherein the second input signal is temporally after the first input signal.
  • 15. The apparatus of claim 12, further comprising a memory which stores the reference level used by the Viterbi decoder, wherein the control unit replaces the stored reference level with the second reference level where the calculated first error is more than the calculated second error.
  • 16. The apparatus of claim 13, further comprising a memory which stores the reference level used by the Viterbi decoder, wherein the control unit: replaces the stored reference level with the second reference level where the calculated first error is more than the calculated second error,controls the second reference level detection unit to detect a third reference level other than the first and second reference levels using a third input signal and the output signal, and to calculate a third error using the detected third reference level and the input signal of the Viterbi decoder, the third input signal being temporally after the first input signal, andto select the third reference level to be the reference level used by the Viterbi decoder and stored in the memory where the calculated second error is more than the calculated third error.
  • 17. The apparatus of claim 12, wherein: the second reference level detection unit further detects a third reference level other than the first reference level and second reference level using a third input signal and the output signal, and calculates a third error using the detected third reference level and the input signal of the Viterbi decoder, the third input signal being temporally different from the first and second input signals, andthe control unit selects the third reference level to be the reference level used by the Viterbi decoder where the calculated first and second errors are more than the calculated third error.
  • 18. The apparatus of claim 17, wherein: the second reference level detection unit further simultaneously detects the second and third reference levels.
  • 19. The apparatus of claim 17, wherein: the second reference level detection unit further sequentially detects the second and third reference levels.
  • 20. A method of generating a reference level of a Viterbi decoder which converts an input signal to an output signal using the reference level, the method comprising: detecting a first reference level using a first input signal and the output signal of the Viterbi decoder;calculating a first error using the detected first reference level and the input signal of the Viterbi decoder;detecting a second reference level other than the first reference level using a second input signal and the output signal, the second input signal being temporally different from the first input signal;calculating a second error using the detected second reference level and the input signal of the Viterbi decoder;selecting the first reference level to be the reference level used by the Viterbi decoder where the calculated second error is more than the calculated first error; andselecting the second reference level to be the reference level used by the Viterbi decoder where the calculated second error is not more than the calculated first error.
Priority Claims (1)
Number Date Country Kind
10-2008-0090006 Sep 2008 KR national