Method for recovering a clock signal and clock recovery module
10826678 ยท 2020-11-03
Assignee
Inventors
Cpc classification
H04L7/0087
ELECTRICITY
H03L7/093
ELECTRICITY
H04L7/0331
ELECTRICITY
H04L7/027
ELECTRICITY
International classification
H03K5/159
ELECTRICITY
H04L7/033
ELECTRICITY
Abstract
A method for recovering a clock signal from an input signal is disclosed. The method comprises the following steps: An input signal that comprises a symbol sequence having symbol edges is received. Edge timings of the symbol edges are determined, thereby generating an edge signal, the edge signal comprising information on the edge timings. The edge signal is processed via a filter module comprising a time variant filter, thereby generating the clock signal, the clock signal comprising information on at least one clock timing parameter. Further, a clock recovery module and a computer program are disclosed.
Claims
1. A method for recovering a clock signal from an input signal, comprising: receiving an input signal that comprises a symbol sequence having symbol edges; determining edge timings of said symbol edges, thereby generating an edge signal, said edge signal comprising information on said edge timings; processing said edge signal via a filter module comprising a time variant filter, thereby generating said clock signal, said clock signal comprising information on at least one clock timing parameter, wherein said time variant filter is a time variant infinite impulse response filter, and wherein coefficients of said time variant infinite impulse response filter are determined by decomposing said time variant infinite impulse response filter into several time variant finite impulse response filters and at least one m-tap infinite impulse response filter.
2. The method of claim 1, wherein a side information signal is determined based on at least one of said input signal and said determined edge timings of said symbol edges, said side information signal comprising information on a location of said symbol edges with respect to individual symbols of said symbol sequence.
3. The method of claim 2, wherein said coefficients are determined based on said side information signal.
4. The method of claim 1, wherein at least one of said coefficients is determined recursively.
5. The method of claim 1, wherein said several time variant infinite impulse response filters include a three-tap time variant finite impulse response filter, a M-tap time variant finite impulse response filter and a (M1)-tap time variant finite impulse response filter.
6. The method of claim 1, wherein said filter module does not comprise any further filters.
7. The method of claim 1, wherein said input signal is PAM-N coded, wherein N is an integer bigger than 1.
8. A clock recovery apparatus for recovering a clock signal from an input signal, comprising: an edge recovery module and a filter module; said filter module comprising at least one time variant filter; said edge recovery module being configured to determine edge timings of symbol edges, said symbol edges being assigned to a symbol sequence of said input signal; and said time variant filter being configured to recover said clock signal based on said edge timing, wherein said time variant filter is a time variant infinite impulse response filter, and wherein said filter module is configured to determine coefficients of said time variant infinite impulse response filter by decomposing said time variant infinite impulse response filter into several time variant finite impulse response filters and at least one m-tap infinite impulse response filter.
9. The clock recovery apparatus of claim 8, wherein the edge recovery module is configured to determine a side information signal based on at least one of said input signal and said determined timings of said symbol edges, said side information signal comprising information on a location of symbol edges with respect to individual symbols of said symbol sequence.
10. The clock recovery apparatus of claim 9, wherein said filter module is configured to determine said coefficients based on said side information signal.
11. The clock recovery apparatus of claim 8, wherein said filter module is configured to determine the at least one of said coefficients recursively.
12. The clock recovery apparatus of claim 8, wherein said several time variant infinite impulse response filters include a three-tap time variant finite impulse response filter, a M-tap time variant finite impulse response filter and a (M1)-tap time variant finite impulse response filter.
13. The clock recovery apparatus of claim 8, wherein said filter module does not comprise any further filters.
14. The clock recovery apparatus of claim 8, wherein said input signal is PAM-N coded, wherein N is an integer bigger than 1.
15. A non-transitory computer readable medium having executable instructions stored thereon for recovering a clock signal from an input signal, said input signal including a symbol sequence having symbol edges, wherein said executable instructions when executed by one or more computing devices cause the one or more computing devices to perform the actions of: determining edge timings of said symbol edges, thereby generating an edge signal, said edge signal comprising information on said edge timings; processing said edge signal via a time variant filter, thereby generating said clock signal, said clock signal comprising information on at least one clock timing parameter, wherein said time variant filter is a time variant infinite impulse response filter, and wherein coefficients of said time variant infinite impulse response filter are determined by decomposing said time variant infinite impulse response filter into several time variant finite impulse response filters and at least one m-tap infinite impulse response filter.
Description
DESCRIPTION OF THE DRAWINGS
(1) The foregoing aspects and many of the attendant advantages of the claimed subject matter will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION
(7) The detailed description set forth below in connection with the appended drawings, where like numerals reference like elements, is intended as a description of various embodiments of the disclosed subject matter and is not intended to represent the only embodiments. Each embodiment described in this disclosure is provided merely as an example or illustration and should not be construed as preferred or advantageous over other embodiments. The illustrative examples provided herein are not intended to be exhaustive or to limit the claimed subject matter to the precise forms disclosed.
(8)
(9) The filter module 14 comprises a time variant infinite impulse response filter 16. Generally speaking, the clock recovery module 10 is configured to recover a clock signal y[n] from an input signal that comprises a symbol sequence having symbol edges at times e[k], wherein k numerates the signal edges.
(10) The input signal may be PAM-N coded, wherein N is an integer bigger than 1. Therein, N determines the number of different values that the input signal can attain. For example, N may be equal to 2 such that the input signal is a binary signal.
(11) An example of the input signal plotted against time for N=3 is shown in
(12) The clock recovery module 10 is configured to perform a method for recovering the clock signal y[n] from the input signal that is explained in the following with reference to
(13) First, the input signal is received by the edge recovery module 12 (step S1). The edge recovery module 12 determines the edge timings e[k] of the symbol edges comprised in the input signal, thereby generating an edge signal x[n] (step S2).
(14) The edge recovery module 12 may determine the edge timings e[k] by employing a feed-forward clock data recovery technique. An example for such a technique is explained in detail in the pending European patent application number 18 207 909.5, which is hereby incorporated by reference in its entirety.
(15) The value of the edge signal x[n] is equal to the time of the respective symbol edge if there is a symbol edge and is equal to 0 otherwise. In other words, the edge signal x[k] comprises information on the edge timings e[k] of the symbol edges.
(16) In the example shown in
(17)
(18) Thus, the edge recovery module 12 assigns the signal edge timings e[k] comprised in the input signal to the respective symbols comprised in the input signal, i.e. x[n]=e[k] if the edge number k corresponds to the bit number n and x[n]=0 otherwise.
(19) Moreover, the edge recovery module 12 determines a side information signal s[n] with s[n]=1 if the edge number k corresponds to the bit number n and s[n]=0 otherwise. The side information signal s[n] serves as additional information on the signal edges.
(20) For example, if there is a signal edge at 0 ms, the side information signal value s[n]=1 clarifies that x[n]=0 means 0 ms rather than no signal edge. On the other hand, if there is no signal edge at 0 ms, the side information signal value s[n]=0 clarifies that x[n]=0 means no signal edge rather than 0 ms.
(21) In the example of FIGURE, s[n] has the following form:
(22)
(23) The clock timing parameter may be the clock timings of the clock underlying the input signal.
(24) The edge signal x[n] and the side information signal s[n] are forwarded to the filter module 14 and processed by the filter module 14, thereby generating a clock signal y[n] that comprises information on at least one clock timing parameter (step S3). Step S3 will be explained in more detail below.
(25) From the state-of-the-art, clock recovery methods employing a phase locked loop (PLL) are known that employ a linear time invariant infinite impose response (IIR) filter of 1.sup.st or 2.sup.nd order in order to recover the clock signal y[n].
(26) The clock signal y[n] provided by such phase locked loops has the following general form: y[n]=a.sub.1y[n1]+a.sub.2y[n2]+b.sub.0d[n]+b.sub.1d[n1]+b.sub.2d[n2].
(27) Therein, a.sub.1 and a.sub.2 are coefficients of the so-called feedback terms, while b.sub.0, b.sub.1 and b.sub.2 are coefficients of the so-called feedforward terms.
(28) Usually, the phase locked loop comprises a multiplexer that chooses a value for d[n], d[n1] and d[n2] in every iteration.
(29) The output d[n] of the multiplexer can be equal to y[n] or to x[n], d[n1] can be equal to y[n1] or to x[n1] and d[n2] can be equal to y[n2] or to x[n2]. Hence, there are 8 different possibilities for y[n], which are determined to be the following:
y[n]=a.sub.1y[n1]+a.sub.2y[n2]+b.sub.0x[n]+b.sub.1x[n1]+b.sub.0x[n2]
y[n]=1/1b.sub.0(a.sub.1y[n1]+a.sub.2y[n2]+b.sub.1x[n1]+b.sub.2x[n2])
y[n]=(a.sub.1+b.sub.1)y[n1]+a.sub.2y[n2]+b.sub.0x[n]+b.sub.2x[n2]
y[n]=1/1b.sub.0((a.sub.1+b.sub.1)y[n1]+a.sub.2y[n2]+b.sub.2x[n2])
y[n]=a.sub.1y[n1]+(a.sub.2+b.sub.2)y[n2]+b.sub.0x[n]+b.sub.1x[n1]
y[n]=1/1b.sub.0(a.sub.1y[n1]+(a.sub.2+b.sub.2)y[n2]+b.sub.1x[n1])
y[n]=(a.sub.1+b.sub.1)y[n1]+(a.sub.2+b.sub.2)y[n2]+b.sub.0x[n]
y[n]=1/1b.sub.0((a.sub.1+b.sub.1)y[n1]+(a.sub.2+b.sub.2)y[n2])(E.1)
(30) The associated values for the side information signal for the individual lines in equation (E.1) are the following:
(31) TABLE-US-00001 Line # s[n] s[n 1] [n 2] 1 1 1 1 2 0 1 1 3 1 0 1 4 0 0 1 5 1 1 0 6 0 1 0 7 1 0 0 8 0 0 0
(32) The method for recovering the clock signal y[n] according to the disclosure removes the need for the multiplexer by employing the time variant infinite impulse response filter 16, which is indicated by the dashed square in
y[n]=a.sub.1.sup.(n)y[n1]+a.sub.2.sup.(n)y[n2]+b.sub.0.sup.(n)x[n]+b.sub.1.sup.(n)x[n1]+b.sub.2.sup.(n)x[n2].(E.2)
(33) The coefficients a.sub.i.sup.(n) of the feedback terms and the coefficients b.sub.i.sup.(n) of the feedforward time are now time dependent, as is indicated by the superscript (n). In other words, the coefficients a.sub.i.sup.(n) and b.sub.i.sup.(n) can change with every input sample.
(34) As is shown in
(35) In some embodiments, the FIR filters 18, 20 and 22 as well as the IIR filter 24 may be the only filters comprises in the filter module 14. In other words, no further filters may be provided.
(36) Moreover, a coefficient selection block 26, a first coefficient calculation block 28, a second coefficient calculation block 30 and a third coefficient calculation block 32 are provided.
(37) The decomposition into the FIR filters 18, 20, 22 and the IIR filter 24 is done in time domain.
(38) The intended result, namely a second order polyphase adaptive IIR filter, has the following form:
(39)
(40) Therein, .sub.i.sup.(n) is a new set of time dependent coefficients. The IIR filter of equation (E.3) is constructed such that the autoregressive part (i.e. .sub.1.sup.(n)y[nM]+.sub.2.sup.(n)y[n2M]) only employs the M'th polyphase of the signal. In order to allow for this behavior, the FIR part
(41)
has to be adapted to employ inputs from all polyphases, as is evident from the sum
(42)
(43) In order to achieve the form of equation (E.3), equation (E.2) is rewritten in the following form:
y[n]=a.sub.1.sup.(n)y[n1]+a.sub.2.sup.(n)y[n2]+r[n](E.4)
r[n]=b.sub.0.sup.(n)x[n]+b.sub.1.sup.(n)x[n1]+b.sub.2.sup.(n)x[n2](E.5)
The term r[n] as defined in equation (E.5), which may also be called moving average part, defines the three-tap FIR filter 18.
(44) As is illustrated in
(45) The three-tap FIR filter 18 processes the edge signal x[n] and determines the feedforward terms described by r[n] based on equation (E.5), e.g., based on the edge signal x[n] and the coefficients b.sub.0.sup.(n), b.sub.1.sup.(n) and b.sub.2.sup.(n) received from the coefficient selection block 26.
(46) The feedforward terms r[n] are then forwarded to both the M-tap FIR filter 20 and to the (M1)-tap FIR filter 22.
(47) Moreover, the coefficient selection block 26 selects the coefficients a.sub.1.sup.(n) and a.sub.2.sup.(n) based on the side information signal s[n] and forwards the coefficients a.sub.1.sup.(n) and a.sub.2.sup.(n) to the first coefficient calculation block 28 and to the second coefficient calculation block 30.
(48) More precisely, the coefficient selection block 26 determines the coefficients a.sub.1.sup.(n), a.sub.2.sup.(n), b.sub.0.sup.(n), b.sub.1.sup.(n) and b.sub.2.sup.(n) by comparing the coefficients in equations (E.1) and (E.2) and selecting the appropriate form for y[n] based on whether a signal edge is associated with any of the past received symbols, for example with the past three received symbols as indicated by s[n], s[n1] and s[n2].
(49) For example, if all three latest received symbols have a symbol edge associated with them, a comparison of coefficients is performed between equation (E.2) and the first line of equation (E.1). In this case, a.sub.1.sup.(n)=a.sub.1, a.sub.2.sup.(n)=a.sub.2, b.sub.0.sup.(n)=b.sub.0 etc. is obtained.
(50) If the three latest received symbols do not have a symbol edge associated with them, a comparison of coefficients is performed between equation (E.2) and the last line of equation (E.1). In this case, a.sub.1.sup.(n)=(a.sub.1+b.sub.1)/(1b.sub.0), a.sub.2.sup.(n)=(a.sub.2+b.sub.2)/(1b.sub.0) and b.sub.0.sup.(n)=b.sub.1.sup.(n)=b.sub.2.sup.(n)=0 is obtained.
(51) As an intermediate step to achieve the form of equation (E.3), equation (E.4) is rewritten in the following form:
(52)
(53) The first coefficient calculation block 28 determines the coefficients .sub.i.sup.(k) recursively by substituting the right-hand side of equation (E.4) with the whole equation (E.4). This way, the coefficients .sub.i.sup.(k) are recursively determined to be:
.sub.1.sup.(k)=.sub.1.sup.(k-1)a.sub.1.sup.(k)+.sub.2.sup.(k-1)
.sub.2.sup.(k)=.sub.1.sup.(k-1)a.sub.2.sup.(k)
.sub.3.sup.(k)=.sub.1.sup.(k-1)(E.7)
(54) The initial values for the recursion in equation (E.7) are .sub.1.sup.(0)=1, .sub.2.sup.(0)=0 and .sub.3.sup.(0)=0. The determined coefficients .sub.i.sup.(k) are forwarded to both the M-tap FIR filter 20 and to the third coefficient calculation block 32.
(55) With the determined coefficients .sub.i.sup.(k), equation (E.6) can be rewritten as
(56)
(57) In order to arrive at the form of equation (E.3), y[nM1] in equation (E.8) has to be rewritten in terms of y[n2M]. For this purpose, the following identity is used:
(58)
(59) Therein, .sub.i.sup.(k) are new time variant coefficients.
(60) The identity of equation (E.9) is obtained by solving equation (E.4) for y[n2] and by setting n.fwdarw.n2M+2. This procedure yields
(61)
(62) From equation (E.10), the following recursive rules for computing the coefficients .sub.i.sup.(k) are derived:
(63)
(64) The initial values for the recursion of equation (E.11) are .sub.1.sup.(0)=0, .sub.2.sup.(0)=1 and .sub.3.sup.(0)=0.
(65) The second coefficient calculation block 30 employs the recursion relations of equation (E.11) in order to determine the coefficients .sub.i.sup.(k).
(66) The determined coefficients .sub.i.sup.(k) and .sub.i.sup.(k) are forwarded to the third coefficient calculation block 32.
(67) With the determined coefficients .sub.i.sup.(k), equation (E.10) can be rewritten as
(68)
(69) Equations (E.12) in conjunction with equation (E.6) then gives
y[n]=.sub.1y[nM]+.sub.2y[n2M]+.sub.3t[n]+q[n],(E.13)
with new time variant coefficients .sub.i.
(70) The third coefficient calculation block determines the new time variant coefficients based on the coefficients .sub.i.sup.(k) and .sub.i.sup.(k) received from the first coefficient calculation block 28 and the second coefficient calculation block 30, respectively, according to the following relations:
(71)
(72) It is noted that the relations given in equation (E.14) are not recursive in themselves, but rather involve simple summation, multiplication and division operations based on the recursively determined coefficients .sub.i.sup.(M) and .sub.i.sup.(M).
(73) Summarizing, the procedure for recovering the clock signal y[n] is as follows: First, the moving average term r[n] is determined, which in turn is used to determine the terms q[n] and t[n] along with the coefficients .sub.i.sup.(M), .sub.i.sup.(M) and .sub.i.
(74) Finally, the clock signal y[n] is determined employing equation (E.13), which is the only feedback operation that needs to be done with latency in mind. This feedback operation is performed by the IIR filter 24.
(75) Issues with the latency are resolved by choosing M to be large enough such that delays are introduced in the feedback operation.
(76) As is apparent from equation (E.13), the feedback terms only depend on the clock signal y[nM] that is delayed by (nM) symbols and on the clock signal y[n2M] that is delayed by (n2M) symbols.
(77) The determination of r[n] does not pose a problem with respect to latency, as the calculation of r[n] can be parallelized. For each parallel input sample of the edge signal x[n], only the input sample and the respective two earlier input samples x[n1] and x[n2] are needed.
(78) A parallelized structure for the filter module 16 or rather for the decomposed time variant infinite impulse response filter as described above is depicted in
(79) As described above, one or more aspects of the methods set forth herein are carried out in a computer system. In this regard, program code or a program element, or computer program product is provided, which is configured and arranged when executed on a computer to carry out the functionality described herein. In one embodiment, the program element, or computer program product or program code may be specifically configured to perform one or more of the steps of method claims 1-9 set forth below.
(80) The program element or other program code or instructions described or illustrated herein (e.g., as one or more method or process steps) may be installed in a computer readable storage medium. The computer readable storage medium may be any one of the computers, etc., described elsewhere herein or another and separate computing device, etc., as may be desirable. The computer readable storage medium and the program element, which may comprise computer-readable program code portions embodied therein, may further be contained within a non-transitory computer program product.
(81) As mentioned, various embodiments of the present disclosure may be implemented in various ways, including as non-transitory computer program products. A computer program product may include a non-transitory computer-readable storage medium storing applications, programs, program modules, scripts, source code, program code, object code, byte code, compiled code, interpreted code, machine code, executable instructions, and/or the like (also referred to herein as executable instructions, instructions for execution, program code, and/or similar terms used herein interchangeably). Such non-transitory computer-readable storage media include all computer-readable media (including volatile and non-volatile media).
(82) In one embodiment, a non-volatile computer-readable storage medium may include a floppy disk, flexible disk, hard disk, solid-state storage (SSS) (e.g., a solid state drive (SSD), solid state card (SSC), solid state module (SSM)), enterprise flash drive, magnetic tape, or any other non-transitory magnetic medium, and/or the like. Such a non-volatile computer-readable storage medium may also include read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory and/or the like.
(83) In some embodiments, a volatile computer-readable storage medium may include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), double data rate type two synchronous dynamic random access memory (DDR2 SDRAM), double data rate type three synchronous dynamic random access memory (DDR3 SDRAM), video random access memory VRAM, cache memory (including various levels), flash memory, register memory, and/or the like. It will be appreciated that where embodiments are described to use a computer-readable storage medium, other types of computer-readable storage media may be substituted for or used in addition to the computer-readable storage media described above
(84) As should be appreciated, various embodiments of the present disclosure may also be implemented as methods, apparatus, systems, computing devices, computing entities, and/or the like, as have been described elsewhere herein. As such, embodiments of the present disclosure may take the form of an apparatus, system, computing device, computing entity, and/or the like executing instructions stored on a computer-readable storage medium to perform certain steps or operations. However, embodiments of the present disclosure may also take the form of an entirely hardware embodiment performing certain steps or operations.
(85) Various embodiments are described above with reference to block diagrams and flowchart illustrations of apparatuses, methods, systems, and computer program products. It should also be understood that each block of the block diagrams, flowchart illustrations, and related descriptions, and combinations of blocks in the block diagrams, flowchart illustrations, and related descriptions, could be implemented by special purpose hardware-based computer systems that perform the specified functions or operations, or combinations of special purpose hardware and computer instructions.
(86) It should be understood that any of the block diagrams, flowchart illustrations, and related descriptions, or parts thereof, respectively, may be implemented in part by computer program instructions, e.g., as logical steps or operations executing on a processor in a computing system. These computer program instructions may be loaded onto a computer, such as a special purpose computer or other programmable data processing apparatus to produce a specifically-configured machine, such that the instructions which execute on the computer or other programmable data processing apparatus implement the functions specified in the flowchart block or blocks and related description, and/or to perform one or more methodologies or technologies described herein.
(87) The term computer can include any processing structure, including but is not limited to a processor (e.g., a microprocessor), a central processing unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a system on a chip (SoC), or the like, or any combinations thereof.
(88) In an embodiment, clock recovery module, the filter module, the time variant infinite impulse response filter, and/or other components of the system described herein may include hardware circuit implementations (e.g., implementations in analog circuitry, implementations in digital circuitry, and the like, and combinations thereof) for implementing the functionality described herein. In an embodiment, clock recovery module, the filter module, the time variant infinite impulse response filter, and/or other components of the system described herein includes combinations of circuits and computer program products having software or firmware instructions stored on one or more computer readable memories that work together to cause a device to perform one or more methodologies or technologies described herein.
(89) The present application may also reference quantities and numbers. Unless specifically stated, such quantities and numbers are not to be considered restrictive, but exemplary of the possible quantities or numbers associated with the present application. Also in this regard, the present application may use the term plurality to reference a quantity or number. In this regard, the term plurality is meant to be any number that is more than one, for example, two, three, four, five, etc. The terms about, approximately, near, etc., mean plus or minus 5% of the stated value. For the purposes of the present disclosure, the phrase at least one of A, B, and C, for example, means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B, and C), including all further possible permutations when greater than three elements are listed.
(90) The principles, representative embodiments, and modes of operation of the present disclosure have been described in the foregoing description. However, aspects of the present disclosure which are intended to be protected are not to be construed as limited to the particular embodiments disclosed. Further, the embodiments described herein are to be regarded as illustrative rather than restrictive. It will be appreciated that variations and changes may be made by others, and equivalents employed, without departing from the spirit of the present disclosure. Accordingly, it is expressly intended that all such variations, changes, and equivalents fall within the spirit and scope of the present disclosure, as claimed.