CA1119305A - Error correction for signals employing the modified duobinary code - Google PatentsError correction for signals employing the modified duobinary code
- Publication number
- CA1119305A CA1119305A CA 307453 CA307453A CA1119305A CA 1119305 A CA1119305 A CA 1119305A CA 307453 CA307453 CA 307453 CA 307453 A CA307453 A CA 307453A CA 1119305 A CA1119305 A CA 1119305A
- Grant status
- Patent type
- Prior art keywords
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/497—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems by correlative coding, e.g. partial response coding or echo modulation coding transmitters and receivers for partial response systems
THE MODIFIED DUOBINARY CODE
by Adam Lender ABSTRACT OF THE DISCLOSURE
Single errors can be detected and corrected in a signal employing a 3-level modified duobinary code. Error correction is predicated on the concept of maximum likelihood of error for the bit having the maximum departure from normal amplitude (error differential). A converter accepts the modified duobinary signal, decodes the signal to obtain a binary output signal and determines the error differential for each bit. Bits of the binary output signals are temporarily stored in a sequential storage device. The error differential is applied to an input of an error analyzer. An error detector determines if an error has occurred during an error correction interval which interval is established by successive extreme levels of the modified duobinary signal. The error analyzer tracks the location of the bit having the largest error differential during each error correction interval. A
plurality of bit correctors, one for each time slot of the sequential storage device, operate in combination with the error detector and the error analyzer to alter the bit having the highest error differential following detection of an error.
D--20, ~75 1 ~RROR CORRECTION FOR SIGNALS EMPLOYING
2 THE MODIFIED D~OBINARY CODE
4 BACKGROUND OF THE_INV~NTION
F_e d of the Invention 6 This invention relates to techniques and processes 7 for the detection and correction of errors in digital 8 information, and more particularly relates to techniques and 9 processes for correcting errors in signals which employ the modified duobinary code.
12 De _ription of the Prior Art 13 Error detection techniques for binary and modified 14 duobinary are well known. One technique for error detection for modified duobinary systems is disclosed in U. S. Patent 16 No. 3,461,426. More recently, U. S. Patent No. 4,086,566 was 17 granted to Adam Lender on April 25, 1978, and was entitled la ~Error Detection For Modified Duobinary Signals." It is l9 important to note that the error detection process provides an indication of an error after the error occurrence.
21 ~nfortunately, the time location of the error is unknown and, 22 therefore, correction of such errors cannot be accomplished 23 by simple error detectors. Rather than attempting to 24 determine the time location of the error per se, prior-art techniques for error correction must often rely on 26 determining the bit in a given sequence which is most likely 27 to be in error. If an error is detected for that sequence, 28 the bit most likely to be in error is altered.
2~ _1_ . ~" ~
D-20,375 ~ 1~19305 1 Techniques for improving the integrity of digital 2 information have employed parity check digits. One such
3 technique is described in an article entitled,"Error
4 Detecting and Error Correcting Codes", R. W. Hamming, Bell ~ System Technical Journal, Vol. 29, pp. 147-160, April 1950.
6 In this technique, Hamming devised a code that corrects all 7 single errors. The code consists of adding k suitably chosen 8 check digits to the m message digits. If another digit is 9 added, double errors can be detected as well as single errors corrected. A different code is described in an article 11 entitled,"Coding For Constant-Data-Rate Systems - Part I, 12 A New Error-Correcting Code", by R. A. Silverman and M. Balser, 13 IRE Proceedings, pp. 1428-1435, September 1954. This latter 14 article describes the Wagner code in which a transmitted word consists of a sequence of m message digits and an additional 16 digit used as a parity check. As each of the perturbed digits 17 y arrives at the receiver, the a posteriori probabilities 18 p (xl/Y) and p (x2/Y) are calculated. Each digit of the 19 received sequence is tentatively identified as xl or x2, depending on whether p (xl/Y) or p (x2/Y) is larger, and the 21 values of the a posteriori probabilities are stored in a 22 memory for tha duration of a word. The sequence thus obtained 23 is checked for parity. If the parity is correct, the word is 24 printed as received. If the parity check fails, the digit for which the difference ~p between a posteriori probabilities 26 is the smallest is considered the digit most in doubt and 27 the word is printed with this digit altered. The receiver 29 ~¦ then clears e stored values of the probability differences .
1 from the memory and proceeds to the next word Thus, the 2 Wagner code may be characterized as one which has a hi~h 3 probability for correction of single errors. Multiple errors 4 would normally always be printed incorrectly.
With respect to the Wagner method of ~rror correction 6 as described in the above-noted September 1954 article, 7 certain disadvantages result from its use. First,the binary 8 data bit stream is divided into words each consisting of a 9 sequence of message digits m and a single-redundant d~git.
Thus, (m + 1) digits are sent and the redundancy is l/m + 1 11 or for m = 5 a redundancy of about 20%. Further, for the 12 Wagner method and for any method which requires the use of 13 redundant digits, each bit period, i.e., time slot, must be 14 reduced initially if it is desired to retain the same bit rate following correction. Once the redundant bit has been 16 employed for its function, that bit is removed. Despite 17 these disadvantages, use of the technique,indeed,results in 18 a dramatic improvement in error rate as is shown in the above-19 noted September 1954 paper.
More recently, the theory of error correction was 21 further developed in a paper entitled, "Maximum-Likelihood 22 Sequence Estimation Of Digital Sequences In The Presence Of 23 Intersymbol Interference", by G. David Forney, ~r., pp. 363-24 ~7~, IEEE Transactions On Information Theory, May 1972. The sequence estimator was for use with a digital pulse-amplitude-26 modulated sequence in the presence of finite intersymbol 2~ interference and white Gaussian noise. The structure includes 28 ~¦ a sample li r filter called a whitened matched filter, and 31 ~ - 3 -D-20,375 ~1193~)5 1 a recursive nonlinear processor called the Viterbi algorithm.
2 This structure is a maximum-likelihood estimator of the entire 3 transmitted sequence.
4 Intersymbol interference is normally considered to S be a primary impediment to reliable high rate digital trans-6 mission over high signal-to-noise ratio narrow-band channels 7 such as voice-grade telephone circuits. Inters~mbol inter-8 ference is also introduced deliberately for the purpose of spectral shaping in certain modulation schemes for narrow-band channels ca~led duobinary, partial-response, and the like.
11 In his paper, Forney presents a simplified, but effective, 12 optimum algorithm suitable for some partial-response schemes.
13 In particular, beginning at page 373, under the heading 14 "A Practical Algorithm", the discussion is directed to an lS algorithm suitable for use with the class of partial-response 16 schemes defined by f(D) = 1 + Dn , with f (D) = 1 - D. The 17 error-correction algorithm block diagram is shown in his 18 FIG. 9, and the flow-chart for error correction with partial-19 response is shown in his FIG. 10. In the technique illustrated, the method for determining whether the tentative decision 21 sequences are allowable is determined by passing the sequence 22 through an inverse linear filter (shown in his FIG. 8 of 23 the article) with an impulse response l/f(D) to see whether 24 an allowable input sequence comes out. The filter used includes a feedback network such as is illustrated in his 26 FIG. 8 of the article.
27 Whenever an error is made, it is noted that the 29 ¦ feedback ne rk causes the error to oontinue to propagate 3 _ 4 _ `:`
in the circuit which affects all subsequent outputs. In each 2 case, the output will be one unit higher than the corresponding 3 input. Localization of the error in a finite time span 4 requires information about the reliability of each of the tentative decisions previously made. For any reasonable noise 6 distribution, the tentative decision most likely to be in 7 error is that for which the error differential, i.e., the 8 difference between the received amplitude and the standard 9 amplitude for that level, has the largest magnitude with the appropriate polarity. The tentative decision for that location 11 is considered to be in error and the bit is altered.
12 For a 3-level modified duobinary system, it is 13 neither necessary nor desirable to use code words or blocks 14 such as are used for the Wagner or Forney systems. In the instant invention, block length in a way is a variable and 16 is essentially defined as the interval established by two 17 successive extreme level bits. Also of importance is the 18 fact that no redundant parity digit is necessary for use in 19 detecting single errors. Thus, no redundancy is introduced at the transmitting end. In the instant invention, because 21 of specific correlative patterns in the code, the polarity 22 of error can also be determined, i.e., whether or not positive 23 or negative. Thus, the process of identifying error location 24 may be substantially reduced,on the average by a factor of two, 2~ as compared to Wagner's method.
26 As with the prior-art techniques discussed hereinabove, 27 the noise impairment in the transmission medium should be such 28 that a reasonable signal-to-noise ratio is obtained for most ~0 - 5 -~ D-20,375 1 1~19;~5 1 ¦ effective performance of the error corrector. By reasonable 2 ¦ is meant a signal-to-noise ratio such that the line error rate 3 ¦ is no worse than 10 3. For such a line error rate in the 4 ¦ presence of, for example, Gaussian noise, most errors occur
5 ¦ only between adjacent signal levels. The probability of an
6 ¦ error occurring between nonadjacent levels, such as between
7 ¦ the top and bottom levels, is negligible in that it is in
8 ¦ the order of say 10 5. Such conditions most often prevail
9 ¦ in most telecommunication transmission facilities. Thus, lO ¦ error occurrences not between adjacent levels can be disre-11 ¦ garded for all practical purposes and the assumption of errors 12 ¦ occurring between adjacent levels is valid for the overwhelming 13 ¦ majority of existing transmission systems. It is also 14 ¦ important that the majority of errors are single errors,since 15 ¦ the technique which is based on the correction of the bit 16 ¦ having the greatest error differential, and,thus,the most 17 ¦ likelihood of error, can only be directed to one single bit 18 I within an error correction interval. The above conditions 19 ¦ are desirable for optimum performance of the error corrector, but are not an absolute requirement. These conditions generally 21 o~tain in present day telecommunication transmission facilities.
24 Apparatus for correcting single errors in a signal employing a 3-level modified duobinary code includes storage 26 facilities for sequentially storing a finite number of bits of 27 the signal. Prior to storage, a tentative decision is made 28 as to the state of each bit. An error detector determines D-20,375 1~9305 1 if an error has occurred during an error correction interval 2 which is determined by extreme level appearances of the 3 modified duobinary code. The error differential for each 4 individual bit is determined and the location of the stored 5 bit having the greatest error differential is tracked. If 6 an error has occurred during the error correction interval, 7 the tentative decision for the state of the bit having the 8 greatest error differential is considered to be in error 9 and that stored bit is changed to the other binary state.
11 BRIEF DESCRIPTION OF THE DRAWING(S) 12 FIG. 1 is a waveform diagram showing ~he standard 13 levels for a modified duobinary wavefcrm and some of the error 14 differentials which may occur as a result of disturbances ii 15 during transmission of the wave;
16 FIG. 2 illustrates a transmitted waveform without 17 errors and a received waveform having two negative error 18 occurrences and a positive error occurrence;
19 FIG. 3 is a system block diagram illustrating a typical environment in which the invention would operate;
21 FIG. 4 is a block diagram of one embodiment of the 22 invention;
23 FIG. 5 is a simplified block diagram of the error 24 correction circuitry 16 of a second embodiment of the invention including clock 11 and divider 13;
26 FIG. 6 is a block and logic diagram of converter 44 27 in FIG. 5;
28 FIG. 7 is a logic diagram of an implementation ~0 - 7 -a--~o,~
11193~)5 1 ~ performing the functions required of logic 3-level to binary 2 ¦ converter 82 in FIG. 6;
31 FIG. 8 is a block diagram of sequential storage 50 g shown in FIG. 5;
FIG. 9 is a block dagram of parallel to serial 6¦ converter 56 shown in FIG. 5;
71 FIG. 10 is a block and logic diagram of the error 81 detector 58 shown in FIG. 5;
I FIG. 11 is a block dagram of the error-likelihood
10¦ analyzer 60 shown in FIG. 5;
11 ¦ FIG. 12 is a logic diagram of the extreme level
12 ¦ detector 130 shown in FIG. 11;
13 ¦ FIG. 13 is a block and logic diagra~n of the
14 ¦ magnitude comparator 140 shown in FIG. 11;
15 ¦ FIG. 14 is a block and logic diagram of memory
16 ¦ counter 152 as shown in FIG. 11;
17 ¦ FIG. 15 is a logic diagram of advance 146 as shown
18 ¦ in FIG. 11;
¦ FIG. 16 is a logic diagram of one unit of the bit 20 ¦ converter 74 shown in FIG. 5; and 21 ¦ FIG. 17 illustrates the amplitude for all intervals 22 ¦ represented by six-digit code words.
As was briefly noted herinabove, prior-art systems 26 used a fixed block length for evaluation and determination of 27 error occurrences and error location. This ~as required 28 because a parity digit was used to determine if an error had 29 occurred during the block. Because of the character of the modiried d~obinary code, as disclosed in U. S. Patent Nos.
D-20,375 11193~)5 1 3,457,510 and 3,461,426, it may be seen that the interval for 2 detecting errors may be set by successive extreme levels of 3 the code. Thus, the error correction interval for my invention is not fixed. Rather, it has a variable length. The error correction interval always ends on an extreme level bit, 6 either top or bottom. When an extreme level occurs, an error 7 detector will determine if a detectable error occurred during 8 the preceding interval, which interval does not include the ending extreme level bit. If no error is detected, the next cycle begins during the same bit interval (extreme level), 11 i.e., the ending extreme level bit is included in the subse-12 quent error correction interval. If, in fact, an error has 13 occurred in the error correction interval, but had not been 14 detected immediately following the occurrence of the extreme level bit at the end of said error correction interval, the 16 subsequent error correction interval also includes that 17 extreme level bit which occurred at the end of the previous 18 error correction interval. However, when an error occurs
19 and is detected upon the occurrence of the extreme level bit at the end of the error correction interval, said interval 21 ends during that extreme level bit and the next error 22 correction interval starts with the immediately following bit.
23 To summarize, the error correction interval always ends on 24 an extreme level bit and a new cycle starts on the same bit, i.e., the ending extreme level bit, as long as no error is 26 detected. Should an error occur and be detected, the new 27 cycle will start on the bit which immediately follows the 30 ¦ extreme le bit at the end of the error correction interval.
~ 1119305 D-20,375 1 ¦ FIG. 1 graphically illustrates some of the principles 2 ¦ discussed hereinabove. First, it is to be noted that the solid 3 ¦ line waveform is representative of an idealized signal such 4 ¦ as would be sent out from the transmitting terminal, and also 5 ¦ is representative of an ideal such as one would desire at the : 6 ¦ receiver following the correction of all line discrepancies, 7 ¦ and which includes any perturba~ionswhich would create ; 8 ¦ uncorrectable distortions in the waveform. The dotted line 9 illustrates what would be more representative, or typical, of a received, equalized and corrected waveform which includes 11 the effects of the noise such that the actual amplitudes at 12 the sampling instants do not match that of the standard levels.
Note at the left-hand side of the waveforms, the letters 14 illustrate the various amplitudes wherein the B, D and F levels illustrate the standard levels and the dotted lines at C and E
16 indicate the slicing levels. On the waveform diagram itself 17 the indications of -E and +E illustrate the difference in 18 amplitude of the typically received waveform from that of the lg standard. The negative indicates an error differential which is such as to reduce the amplitude of the standard wave and 21 is illustrated in time slots 1, 8 and 16. The positive error 22 differentials are those which would increase the amplitude 23 of the sample bit and these are as illustrated in time slots 24 2, 3, 13, 14 and 15. While the error differentials are ;~ 25 illustrated only with respect to the extreme levels in FIG. 1, : 26 it is to be noted that the error differential would, in fact, 27 be determined for each bit in an error correction interval, so 28 that the bit having the largest error differential may be ~0 determined for that error correction interval.
j D--20, 375 1 1119;~)5 1 ¦ FIG. 2 illustrates the variable error correction 2 ¦ interval and the effect of an error occurrence on said interval.
3 ¦ Referring now to FIG. 2, transmit, T, and receive, R, waveforms 4 ¦ are illustrated. The transmit waveform is naturally shown 5 ¦ without errors and is shown in idealized ~orm. The received 6 ¦ waveform is shown in idealized form but includes a negative 7 ¦ error at time slot 6, a positive error at time slot 10, and 8 ¦ a negative error at time slot 17. Each error is shown in 9 ¦ dotted form. Error correction,as taught by this invention~
10 ¦ can occur only after an error has been detected within an 11 ¦ error correction interval, which interval is determined by 12 ¦ two successive bits at extreme levels. In reviewing the 13 ¦ modified duobinary waveform including errors such as are 14 ¦ shown at R in FIG. 2, it is apparent that the error occurring 15 ¦ at time slot 6 will not be detected during the interval from 16 ¦ time slot 2 to time slot 6, since the error in time slot 6 17 ¦ does not violate the coding rules during this interval. Be-18 ¦ cause the error was not detected during the time slot 2-6 19 interval, the bit in time slot 6 is included in the next s~cceeding error correction interval which, in this case, 21 includes time slots 6 and 7. Error detection should occur 22 upon receipt of the extreme level bit in time slot 8 and ~3 correction would then follow.
24 Waveforms RO and RE are the half-bit rate odd and even alternating polarity pulse trains which may be obtained 26 from the received waveform R. Since each pulse train R0 and 27 RE must necessarily follow the alternating polarity coding 30 ¦ rules, erro ccurrences are ir~ediately apparent. It is ~ 11193VS D-20,375`
1 ¦ to be recalled that in the alternating polarity code, 2 ¦ successive pulses must be of opposite polarity.
3 ¦ It is important to consider the types of errors 4 ¦ that may occur, i.e., single errors, and to note their effect 5 ¦ on the character of the waveform. The first type of error 6 ¦ considered is the error of omission. In this case, one of 7 ¦ the bits at extreme levels is wiped out or, equivalently, 8 ¦ interpreted as a center level at the receiver. To be more 9 ¦speci~ic, assume that a negative pulse which is transmitted 10 ¦ is detected as a zero at the receiver. In order for this to 11 ¦occur, the noise disturbance which caused a negative pulse to 12 ¦be detected as a zero would imply that the noise character 13 ¦must have a positive component to override the negative value 14 ¦of the bit transmitted. This i5 defined as a positive error, 15 ¦since additive noise must have been positive to wipe out a 16 ¦negative pulse. An error of omission could have occurred at 17 ¦time slot 8 in which case the negative pulse would appear 18 ¦as a zero both in waveform R and waveform RE. Should this 19 ¦have occurred,it is apparent,in viewing waveform RE,that the
20 ¦two extreme levels existent on either side of the error,
21 ¦appearing at time slots 2 and 12, are both positive. The
22 ¦fact that successive pulses in waveform RE are positive
23 ¦indicates that an error has occurred and would be detected.
24 ¦Further, it is interesting to note that the polarity of the
25 ¦last extreme level, which appears at time slot 12, is positive,
26 ¦and this agrees with the polarity of the noise component which
27 ¦created the error. Thus, it is apparent that the polarity of 2~ ¦~the extreme evel pulse, at the instant of error detection, S~ 12 -~
- ~ D-20,375 : I
1 I will,in this case,correctly indicate the error polarity. It 2 ¦ can be similarly shown that when a positive pulse is wiped 3 ¦ out by a negative noise component the polarity of the extreme 4 ¦ level pulse, at the instant of error detection, will also 5 ¦ indicate correctly the error polarity which, in this case, 6 ¦ will be negative.
¦ In addition to errors of omission which are ones 8 ¦ that eliminate extreme level pulses in the 3-level modified 9 ¦ duobinary signal, there also can occur errors of commission.
10 ¦ In this case, the center-level bits are altered by the noise 11 ¦ component. It is apparent that the effect can be either 12 ¦ positive or negative depending upon the polarity of the 13 ¦ noise component. Referring again to FIG. 2, assume that the 14 ¦ situation exists at between time slots 8 and 12,as shown in 16 ¦ waveform T. Here, we have a negative pulse at time slot 8 16 ¦ followed by three center level bits which are, in turn, followed 17 ¦ by a positive pulse. Assume that due to a positive noise 18 component in the transmission path the center level bit in time slot 10 is changed into a positive pulse, as shown in waveform R, FIG. 2. A~ the time of this error occurrence, 21 no detection is possible as the negative followed by a positive 22 pulse in the pattern, as shown, is not a violation of the 23 coding rules. However, at the time of occurrence of the next 24 extreme level pulse, the error detector will determine that an error has occurred because there will be successive extreme 26 level pulses both having the same polarity, namely, positive.
27 If it is assumed that the error is negative, i.e., the center 29 level is converted to a negative pulse in time slot 10 due ~0 - 13 -D-20,375 1~1~3~S
1 to negative additive noise, it is apparent that the error 2 would be detected at this time because, in this case, there 3 would have been two successive negative extreme level pulses.
4 It is also important then to note that whether the error is converted to a positive level pulse or a negative level pulse, 6 that in each instance described, the extreme level pulse ~ immediately following the error of commission will have the 8 same polarity as the error. Based on a careful analysis of 9 the polarities of the errors and of the polarity of the extreme level pulse at the instant of error detection, it has 11 been determined that the polarity of the error differential, 12 which caused the error to occur, is automatically provided 13 by the polarity of the extreme level pulse which occurs at the 14 end of the error correction interval. Thus, there is no need to resort to the past history of the waveform to find the 16 error polarity of the error differential.
lq Referring now to FIG. 3, a typical environment 18 within which the error corrector may operate is shown. A
19 binary input is assumed into transmitter 2, which conditions the input signal for transmission. One requirement of the 21 conditioning process is that a modified duobinary waveform 22 may be obtained at receiver 6. There, transmitter 2 could 23 include carrier current terminal equipment for the transmission 24 of a relatively low-speed data signal over a carrier derived voice channel. Alternatively, and/or in addition, transmitter 26 2 could include a radio transmitter. While not shown, re-27 ceiver 6 would necessarily include the equipment which would
28 recover the modified duobinary waveform. However, such
29 D-20,375 11~9:}~)5 l equipment is well ~nown. If appropriate, the receiver 6 would 2 include equalizer 8 to reshape the received signal and ~mplifier 3 10 to compensate for loss in transmission. Clock recovery 4 could be obtained from the incoming signal as is well known.
One such technique is illustrated in U. S. Patent No. 3,707,683.
., Block 11 could be a master clock, in which case the arrowed 7 connectionis open,or it could be a clock recovery circuit, 8 in which case the arrowed connection is closed. Error corrector 9 and decoder 16 would normally finally condition the recovered signal and provide a replica of the input signal at its output.
11 Referring now to FIG. 4, the operational functions 12 performed by error corrector and decoder 16 will now be 13 described. The equalized and amplified modified duobinary 14 signal on path 14 is applied to converter 20 and error detector 26. Converter 20 decodes the modified duobinary in a well-16 known manner to obtain the decoded binary signal for application 17 along path 22 to sequential storage 24. Storage 24 could be 18 a multistage shift register. Converter 20 also compares the 19 amplitude of the incoming waveform on path 14 with the standard levels (see FIG. 1) for the three level signal, and the error 21 differential thus obtained is applied via path 28 to error-22 likelihood analyzer 30. Any one of a number of well-23 known comparison techniques may be used to obtain the error 24 differential. Error detector 26 detects coding violations ~; of the received modified duobinary signal, and also establishes 26 the error correction interval by recognizing the successive 27 extreme level occurrences and by supplying this information 28 to analyzer 30. Error analyzer 30 compares successive error D--2 0 , 3 7 5 1 1~1~3~)5 I
l¦ differentials during an error correction interval and tracks 2 ¦ the location of the bit having the largest error differential.
3 ¦ A magnitude comparator may be used for this purpose. At the 4 ¦ beginning of an error correction interval, the error differential 6 ¦ in the comparator would be essentially 0. Thus, the error 6 ¦ differential of the first bit of the interval would be the 7 ¦ largest. A memory counter is started which will shift at 8 ¦ the same rate as sequential storage 24. If the error 9 ¦ differential of the second bit in the sequence is smaller than 10 ¦ the error differential of the first bit, the memory counter ll ¦ steps to the second position along with storage 24. This 12 ¦ continues either until a larger error differential appears 13 ¦ or an extreme level occurs. If it is assumed that a larger 14 ¦ error differential occurs at the eighth bit in the sequence, 15 ¦ the memory counter now will be reset to 1 to follow the 16 ¦ eighth bit through sequential storage 24. Assume that an 17 ¦ error occurs during the sequence and is detected at the twelfth 18 ¦ bit, which is an extreme level bit. Further, assume that lg ¦ no larger error differential has occurred. Thus, the memory counter will show the bit most likely to be erroneous as being 21 at the fifth bit position in storage 24. Error detector 26 22 provides an output on path 32 which alerts bit corrector 36 23 to the fact that an error has occurred,and error analyzer 30 2~ selects the element of the memory counter which is connected to alter the bit in bit position 5 of storage 24. It is 26 apparent that there could be a plurality of outputs from the 27 memory counter, one for each bit positon of storage 24. Each
30 ~ separate out t of the memory courter would ~e oornected to a ~ D-20,375 1 ~1~93~)5 1 ¦ separate bit corrector circuit for each of the bit positions~
2 ¦ ',imple logic circuits would then be employed in the bit corrector 3 ¦ 36 to provide the required input to the selected bit position 4 ¦ Eollowing an error occurrence.
5 ¦ Another embodiment of the invention is illustrated 6 ¦ in block form in FIG. 5. More detailed block and logic 7 ¦ diagrams of elements used in the embodiment of PIG. 5 are 8 ¦ shown in FIGS. 6-16.
9 ¦ For purposes of this discussion only and not as a 10 ¦ limitation, it will be assumed that the bit rate of the 11 ¦ modified duobinary signal is 3 Mbits/sec. Thus, a bandwidth 12 ¦ in the order of 1.5 ~Hz would be employed.
13 ¦ Referring now to FIG. 5, a clock 11 has a clock 14 ¦ rate equal to the bit rate, e.g., 3 Mbits/sec., which is 15 ¦ applied to divider 13 and is available at output K. Divider 16 ¦ 13 divides the clock rate by two and provides at one output 17 ¦ a half-rate clock signal having one phase and at a second 18 ¦ output E another half-rate cloc~ signal of a phase opposite 19 ¦ from that of ~. These clock signals are available to provide 20 ¦ the necessary timing and their use is generally illustrated, 21 in a number of cases, in the diagrams as well as in the 22 following description. The equalized and amplified modified 23 duobinary signal on path 14 is applied to converter 44, 24 which provides several outputs. The manner in which the output signals are derived is illustrated in FIGS. 6 and 7.
26 Referring now to FIG. 6, it is seen that the analog 27 modified duobinary on path 14 is converted into a six bit 28 code word, for this particular example, for each amplitude ~0 - 17 -
32 i I [~-~0~375 ~ VS
1 ¦ sarriple by A/D converter 80. A/D conversion is well-known.
~ The number of bits used in a code word depends upon the 31 accuracy required. Fewer or more could be used depending upon the application. Certain of the amplitude representations were shown in FIG. 1. FIG. 17 shows the 6 ¦ amplitudes for all levels represented by the six digit code words. It should be noted that the maximum amplitude limit 81 is represented by the code 110111, shown at A, FIG. 1, 9 ¦ whereas the minimum amplitude level is represented by the 10 ¦ code 001000, shown at G, FIG. 1. Amplitudes above and below 11¦ these limits A or G are not read by the subsequent equipment.
12 ¦ The standard level for a top level positive pulse is shown at 13 ¦ B in FIG. 17. Amplitudes in excess of B represent a positive 1~ ¦ error differential whereas those below the level B and above 15 ¦ level C represent a negative error differential. A careful 16 ¦ review of the arnplitudes lying between A and G indicates that 17 ¦ the third bit, c, of a code word indicates the polarity of 18 ¦ the error, i.e., 0 representing a positive error and 1 ¦ representing a negative error. The last three bits of a code 20 ¦ word are a measure of the error differential. Following the 21 ¦ rationale explained for the top level, it may be seen that 22 ¦ the center level extends from C to E with the center level 23 ¦ occurring at D, and the bottom level extends from E to G with 24 ¦ the standard bottom level appearing at F.
25 ¦ Referring agair; to FIG. 6, it may be seen that the 26 first three bits of a code word represented as a, b and c are 27 applied to logic 3-level to binary converter 82, which converts 28 the code word input into a binary signal which appears on path I
~ 3~5 D-20,375 1 ¦ g8, and also provides a separate binary signal for the top 21 level or for the bottom level, on paths 62 and 64, 3¦ respectively, whenever these occur. One technique for 4 accomplishing this result is shown in FIGr 7 ~ where the second and third bits, i.e., b and c of the code word, are 61 applied to an Exclusive OR-gate represented therein by gates 71 88, 90 and 96. Inverters 92 and 94 are required since the 81 inverted form of the b and c digits is not otherwise 9¦ available. Referring again to FIG. 17, it may be seen that lO¦ the presence of either a top level or a bottom level binary 11 ¦ digit is represented by the second and third code word bits, 12¦ either when b = 1 and c = O, or when b = O and c = 1. It may 13 ¦ also be seen that the second and third code word bits 14 ¦ representing the center level are either 0 and 0, or 1 and 1.
15 ¦ It is evident from the Truth Table of an Exclusive OR-gate 16 ¦ that there will be an output from gate 96 representative of a 17 ¦ binary pulse whenever either a O and 1 or 1 and O appear at 18 ¦ the inputs b and c. Conversely, whenever the inputs are 19 ¦ either 1 and 1 or O and O there is no output on path 98.
20 ¦ ~ote further, that the amplitudes above and below the 21 ¦ amplitude limits would also be represented as a O or no 22 ¦ output on path 98, since the second and third digits are 23 ¦ either binary 1 and 1 or binary O and 0. In addition to the 2~ ¦ binary output on path 98, it is necessary to obtain an output 25 ¦ whenever a top level or bottom level occurs, and it is 26 ¦ necessary that these be distinguished. This ls accomplished 27 by gates 100 and 104 and inverter 102. One input to gates 28 100 and 104 is the output from gate 96 on path 98. It is 29 apparent that whenever a O appears on path 98, AND-gates lO0 3011 _ 19 _ ., D-20,3~5 1~193~)5 `1 and 104 will not have an output. Thus, whenever path 98 has 2 a binary 1 output, either a top level or bottom level has 3 occurred. If a top level has occurred, the first code word 4 bit, a, is a 1, and if a bottom level has occurred, the first bit is a 0. It is apparent that delays are required in the 6 path for the first bit, a, in order to provide the proper 7 timing bet~een the output of gate 96 and the input from the first bit a. Also, it is apparent that gate 104 will have an 9 output whenever a binary 1 appears on path a and a 1 appears on path 98. Conversely, gate 100 will have an output 11 whenever a 0 appears on path a and a 1 appears on path 98.
12 Thus, there is a binary 1 output on path 62 whenever a top 13 level appears, and a binary 1 output on path 64 whenever a 14 bottom level appears.
Referring again to FIG. 6, it may be seen that 16 the last four bits, i.e., c-f, of the code word are applied 17 to output paths 28. As stated hereinabove, the last three 18 bits provide the error differential amplitude, and it may be 19 seen referring to FIG. 17 that the third bit, c, indicates the polarity of the error differential. Thus, the magnitude 21 and polarity of the error differential is available on paths 2Z 28.
23 The binary output of logic 3-level to binary 24 converter 82, on path 98, is applied to one input of each AND-gate 84 and 86. A second input to AND-gate 84 is 26 the ~ phase of the half-rate clock, and the second 27 input to AND-gate 86 is the other E phase of the half-rate 28 clock. AND-gates 84 and 86 thus select alternate bits 29 from the binary output of logic 3-level to binary converter 82. Since it is apparent that one set of 3 alternate bits may be considered to contain odd nu~bered I
'. l I
D-20,375 1115~3~5 1 bits and the other even numbered, and since the odd and even 2 number assignments are arbitrary, the gate 84 is considered 3 to pass only the odd numbered bits of the binary output on path 98, and gate 86 is considered to pass only the even numbered bits. Thus, in subsequent discussion,~ and/or odd 6 represent the arbitrarily assigned odd numbered bits, and E
7 and/or even represent the even numbered bits. Likewise, the 8 ~ clock output is considered odd and the E clock even. The 9 odd and even binary outputs are transmitted along paths 46 and }O 48, respectively.
11 In this embodiment of the invention, two separate 12 15-stage shift registers are used,one for the odd and one for 13 the even bits, as shown in FIG. 8. The binary digits received 14 along paths 46 and 48 are sequentially stored, respectively, 1~ in the odd shift register 106 and the even shift register 108.
16 Thus, each binary digit will pass through a register, either odd 17 or even, and out along the output paths 52 or 54. There is 18 a separate input on path 76, i.e., 76 is a multipath connection, 19 to each stage of the odd shift register and along path 78, - 20 i.e., 78 is a multipath connection, to each stage of the 21 even shift register, so that error correction can be e~fected 22 for only one stage as will be described hereinafter.
23 A simple parallel-to-serial converter 56 is shown 24 in FIG. 9 wherein two flip-flops, one accepting inputs over path 52, the other accepting inputs from path 54, are combined 26 to provide a corrected serial binary output on path 18.
27 Operation of such arrangements is well known and will not be 28 discussed further here.
~0 , ~
:, D-20,375 11193~)5 1 An error detector 58, such as may be effectively 2 used in this error correction technique, is shown in block 3 and logic diagram in FIG. 10. The bottom level and top level 4 outputs from logic 3-level to binary converter 82 appear on paths 64 and 62, respectively. J-K type flip-flops 110 and 6 112 receive these outputs with the bottom level being applied 7 to the K inputs and the top level being applied to the J inputs.
8 Flip-flop 110, NAND-gates 114, 116 and 122, and D-type flip-9 flop 126 comprise the odd bit sequence error detector. A
similar circuit arrangement is employed to detect error 11 occurrences for the even bit sequence as shown. Therefore, 12 only the operation of the odd bit sequence error detector will 13 be described.
14 Timing for flip-flop 110 is obtained from the half-rate output of the odd clock ~. NAND-gate 114 has as one 16 input the Q-output of flip-flop 110 and has as a second input 17 the top level signal. NAND-gate 116 has as one input the Q
18 output of flip-flop 110 and has as a second input the bottom ; 19 level signal. The outputs of gates 114 and 116 are applied as inputs to gate 122. The output of gate 122 is applied to 21 the D input of D-type flip-flop 126. A second input to flip-22 flop 126 is the odd output from the half-rate clock. If both 23 the J and K inputs are 0, i.e., no top or bottom pulse exists 24 at that instant, the Q and Q outputs do not change state. Thus, if a top level input is applied to the J input of flip-flop 26 110, for example, the Q output will become a binary 1 at the 27 next time interval as determined by the odd clock ~. Thus, 28 NAND-gate 114 would have a binary 1 input at that time. If ~0 - 22 -:
D-20,375 1 1~193~)5 1 ¦ a subsequent top level pulse should appear on path 62 before 2 ¦ a bottom level pulse appears on path 64, then gate 114 would 3 ¦ have inputs of binary l and 1, and the output would therefore 4 ¦ be binary 0. ~ith a binary 0 input to NAND-gate 122, its 5 ¦ output will be a binary 1 which is then applied to the D input 6 ¦ of D-type flip-flop 126. Thus, an error will be read out on 7 ¦ path 66. The even circuit operates in a similar manner as is ¦ apparent from FIG. 10 and will not be described here. Thus, ¦ it is seen that the errors occurring in the odd and even pulse lO ¦ trains derived from the modified duobinary signal are detected ll ¦ by error detector 58. When an error is detected this is 12 ¦ indicated by a signal on the path 66 or 68, as appropriate.
13 ¦ A block diagram of the error analyzer 60 is shown 14 ¦ in FIG. 11. Error signals from error detector 58 appear on 15 ¦ 66 or 68 and are applied both to extreme level detector 130 16 ¦ and advance 146. The extreme level detector 130 is also lq ¦ connected to recei~e top level and the bottom level inputs on 18 ¦ paths 6Z and 64, respectively. An output on path 136 or 138 19 ¦ denotes, respectively, the occurrence of an odd or an even 20 ¦ extreme level. An output on path 132 or 134 also denotes, 21 ¦ respectively, the occurrence of an odd or even extreme level.
22 ¦ However, in this case, the effect of the detection of an error 23 ¦ is considered. If there is no error, the output is immediately ¦ available to reset a storage in magnitude comparator 140. If 25 ¦ an error is detected, a small delay is introduced, before the 26 ¦ signals appear on paths 132 or 134. This small delay is 27 ¦ necessary when an error occurs in order to perform the four 28 ¦ functions that are required to correct the errbr pri~r D-20,375 ~1193~15 l to the next step in the process. This will be discussed later 2 in more detail.
3 Magnitude comparator 140 receives the error 4 differential output from converter 44 on input path 28. This 5 comparator 140 stores the largest error differential by com-6 paring the currently stored error differential with succeeding q error differentials, and supplies information over paths 142 8 and 144 to memory counter 152 which tracks the location of the 9 maximum error differential. In this arrangement, the maximum error differential for both the odd and even, as well as 11 positive or negative polarity, may be stored. At the end of 12 the error detection interval, if an error has not been detected, 13 magnitude comparator 140, advance 146 and memory counter 152 14 are reset. ~owever, if an error occurs, memory counter 152 will supply the bit location for the odd or even bit of proper 16 polarity which has been determined to be in error. This will 17 be described in more detail below.
18 Referring to FIG. 12, a logic diagram shows the l9 operation of extreme level detector 130. The top and bottom level inputs on paths 62 and 64, respectively, are applied to 21 OR-gate 154 which has an output that is applied as one input 22 to AN~-gate 156 and, also, to one input of AND-gate 158. The 23 other input to AND-gate 156 is the odd half-rate ~ clock, and 24 the other input to AND-gate 158 is the even half-rate E clock.
Thus, the extreme odd level is applied to buffer 160 and the 26 extreme even level is applied to buffer 162. The output of 27 buffer 160 is applied as one input to AND-gates 164 and 166, and also pr des an output on path 136. The output of ouffer `
D-20,375 11193~)5 1 162 is applied as one input to AND-gates 168 and 170, and as 2 the output on path 138. The odd error output on path 66 is 3 applied as one input to AND-gate 164, and is applied to the 4 inhibit input of AND-gate 166. If an error occurs, AND-gate 164 would have binary 1 and 1 inputs, thus providing an 6 output which would then pass through delay 172, and OR-gate 7 176 to path 132. If an extreme odd level occurs, but no 8 error has occurred or been detected, then the inputs to 9 AND-gate 166 are effectively 1 and 1, i.e., the odd error output on path 66 being 0 is con~erted to a 1 by the inhibit 11 input of circuit 166. Thus, the appearance Gf an extreme 12 level without an error being detected is immediately passed 13 via OR-gate 176 to path 132. The even portion of the circuit 14 130 operates similarly.
A portion of the magnitude comparator 140 is shown 16 in FIG. 13. It should be noted that there are two portions 17 to the circuit comprising the magnitude comparator. One 18 portion of the circuit, such as is shown in FIG. 13, is for 19 the storage of the odd and even positive error differentials.
The other portion of the circuit would be similar to FIG. 13, 21 but would be used for the detection and storage of the odd 22 and even negative error differentials. In this latter case, 23 the input would be slightly different. Referring to FIG. 13 24 it may be seen that the error differential is applied via paths 28. In this case, the error differential and its 26 polarity is determined by the last four bits of the code word 2~ which are supplied over four separate leads of path 28. The 28 polarity bit, c, is supplied via path 28A and the error ~0 - 25 -: .
~1193~5 D-20,375 1 differential magnitude by the last three digits, d, e, and f 2 on paths 28B, 28C and 28D, respectively. These inputs are 3 applied as shown to the inputs of AND-gates 180, 182 and 184, 4 and it is to be noted that the polarity input is applied to ~ an inhibit input to these respective gates. This is required 6 because, as was noted hereinabove, the binary symbol for the 7 positive error differential is 0. Thus, the O appears as a 8 with respect to operation of gates 180, 182 and 184.
9 In contrast, for the negative error differential, the input AND-gates would not require the 11 inhibit input for the polarity digit. However, as can be 12 seen from FIG. 17, the outputs from the AND-gates, in this 13 case, must be inverted in order to obtain the proper digital 14 representation of the error differential amplitude.
Otherwise, the remaining elements of the error analyzer used 16 for the negative error differential are the same as those 17 shown in FIG. 13. Further, the inputs 132 and 134 are 18 applied to the 3-bit odd and even storage elements for the 19 negative error portion of the error-likelihood analyzer. The error differential output, instead of being on lead 142, 21 would be applied via lead 144 to the memory counter 152 as 22 shown in FIG. 11. By understanding how the positive error 23 differential portion of the error-likelihood analyzer 24 operates and how it cooperates with the memory counter 152, 2~ it is believed that the full operation of this negative 26 polarity portion of the circuitry would be understood by 27 those skilled in the art.
28 At the end of an error correction interval, the 29 extreme level detector 130 will provide an output which i~
:' .',' ' ~' .
~ 11193~ D-20,37~
1¦ used to reset odd and even storage elements 206 and 208. Once 21 the storage elements are reset, the comparison ~oltage is 0.
3 ¦ Thus, when the first bit of the succeeding error correction 4 ¦ interval is read into the error analyzer 60 on paths 28, the 5 ¦ the amplitude of the error differential is applied to the 6 ¦ input gates. For purposes of our discussion, it will be 7 ¦ assumed that all error differentials will be positive so as ¦ to confine the discussion to FIG. 13. It is to be understood, 9 ¦ however, that the error differentials may be either positive lO ¦ or negative, as well as odd and even. As was noted hereinabove, 11 ¦ the error differential is determined by the last four bits 12 ¦ of the six bit code word. Bits d, e and f provide the 13 ¦ magnitude of the error differential and bit c provides the 14 ¦ polarity. A positive error differential would pass through ~5 ¦ gates 180, 182 and 184, and would be applied to the 3-bit 16 ¦ storage consisting of flip-flops 188, 190 and 192. At this 17 ¦ same time, the output of gates 180, 182 and 184 would be 18 ¦ applied to error differential comparator 186. This differential 19 comparator 186 is a device for comparing magnitudes of successive error differentials,and such magnitude comparators 21 are well known in the art. One such comparator is designated 22 SN 7485, and is manufactured by Texas Instruments, Incorporated.
23 The magnitude with which the input is to be compared is applied 24 to error differential comparator 186 via OR-gates 222, 224 and 226. For the first bit of the new error correction interval, 2~ the input from gates 222, 224 and 226 would be 0 and, thus, the 27 error differential of the first bit would be greater than this 29 and, therefore, there would be an indication output on path 142.
`'' ~ D-20,375 1 11193~)5 1¦ This output is also applied back to the memory circuit consisting 21 of flip-flops 188, 190 and 192 to output the error differential 3 ¦ in binary coded form via AND-gates 194, 196 and 198 into the 4 ¦ odd 3-bit storage 206 as shown in FIG. 13. The other input 5 ¦ to gates 194, 196 and 198 is the odd half-rate clock since 6 ¦ this is in the first bit of the sequence. If the next positive 7 ¦ error differential occurs during the half-rate even clock cycle, 8 ¦ it is apparent that the comparison input from gates 222, 224 9 ¦ and 226 will also be 0 and, thus, this error differential will lO ¦ be read into storage 208 via gates 200, 202 and 204. Subsequent 11 ¦ positive error differentials will be compared with those 12 ¦ stored in either 206 or 208, depending upon whether it is the 13 ¦ even or the odd bit being compared. When the positive error 14 ¦ differential is less than that which is stored, it will not 15 ¦ be read into the storage element. However, when the positive 16 ¦ error differential being compared to the stored error differential lq ¦ is equal to, or greater than,that which is stored in the storage 18 element, then this error differential is read into that storage 19 element and that information is supplied to the memory counter 152 via path 142.
21 Thus, it is apparent that the magnitude comparator ~2 140 stores the maximum error differential for the odd and even 23 bits of a modified duobinary signal and, in addition, stores 2~ this information for both the positive and negative error differentials. This information is supplied to the memory 26 counter 152 so that the memory counter will identify and retain 27 the identification and location (track) of the maximum error 28 differential for odd and even as well as positive and negative 29 digits.
D--20, 375 11193~)5 1 The essential elements of memory counter 152 are 2 shown in logic form in FIG. 14. The four 4-stage memory 3 counters 228, 230, 232 and 234 permit a count of 15 with the 4 16th counter being the reset to "0" state, i.e., 0000. In ; 5 this embodiment of the invention, each sequential storage 6 element was considered to have a maximum of 15 stages each, 7 although it is anticipated that the error correction interval 8 will normally be less than this. Because of this length of 9 storage, it is necessary that each bit be identified throughout that storage interval. Thus, for example, memory counter 228 11 is for the odd pulse train wherein there would be a positive 12 error differential. Similarly, memory counter 230 could 13 identify the location of the positive maximum error differential 14 for the even pulse train, regardless of whether it appears at the first bit in the sequence or the 15th. Memory counters ; 16 232 and 234 provide similar functions for the negative error 17 differentials. On the occurrence of an extreme level, the 18 memory counters 228, 230, 232 and 234 are each reset to "0"
19 via paths 136 and 138 from extreme level detector 13~. As was noted with respect to the discussion of the magnitude h~. 21 comparator 140, the first input following the occurrence of 22 an extreme level will have the maximum error differential for : 23 both odd and even pulse trains, because these are being compared to a reset state of the storage elements of the magnitude comparator 140. Thus, an input will appear on 26 either path 142 or 144 depending upon whether the error 27 differential was positive or negative. Assuming again that 28 the error differential was positive, the input along path 142 .'. ~0 i 3 '-' ..
1119305 D-20,375 ~
1 will appear as one of the inputs to AND-gates 236 and 238.
2 The other input to gate 236 is the odd half-rate clock pulse, 3 and the other input to AND-gate 238 is the even half-rate 4 clock pulse. Because this is the first bit, it is odd, and the odd counter 228 will be set to one, i.e., in binary terms 6 0001. Input 148 from advance 146 will subsequently cause ~ memory counter 228 to step one stage at a time, thus tracking 8 the location of the error differential. If in a subsequent 9 comparison, during the error correction interval, a positive error differential occurs during an odd time slot, which error 11 differential is equal to or greater than that previously noted, 12 the output of magnitude comparator 140 on path 142 and via 13 gate 236 to memory counter 228 will reset memory counter 228 14 to 0001. Thus, the memory counter 152 will track the location of the maximum error differential as the associated decoded bit 16 passes through the odd shift register 106. The memory counter lq 230 will similar~y track the maximum error differential for 18 the positive error which occurs in the even pulse train.
19 Also, for memory counters 232 and 234, the negative error differentials are tracked. This tracking occurs because the 21 inputs 148 and 150 from advance 146 cause the counters to 22 advance at the odd and even half-rate clock rates. This is 23 the same rate of advance as occurs in the sequential storage 24 50 for the odd and even pulse trains.
This stepping through the stages of the memory 26 counting circuits in 152 is caused by the advance circuit 27 146 as shown in FIG. 15. Note that in order to track properly, 28 the magnitude comparator 140 must reset the appropriate one of 3~
~1 1 D--2 0 , 3 7 5 1 ~11930S
l ¦ the counters in memory counter 152 to 0001 whenever an error 2 ¦ differential is equal to or larger than the previous maximum, 3 ¦ during the error correction interval. Referring to FIG. 15, 4 ¦ advance 146 has an AND-gate 248 with one input 66 from the 5 ¦ odd output of error detector 58 applied via an inhibit 6 ¦ connection. The other input to gate 248 is the odd extreme 7 ¦ level via path 136. If an error occurs in the odd path, 8 ¦ AND-gate 248 will not have an output. Thus, AND-gate 248 9 ¦ will have an output whenever an extreme level occurs in the 10 ¦ odd pulse train so long as there is no error detected. OR-gate 11 ¦ 252 has as one input the output of AND-gate 248 and as a second 12 ¦ input the odd half-rate clock signal. OR-gate 252 will provide 13 ¦ an output signal for each half-rate odd clock pulse as well 14 ¦ as a pulse when AND-gate 248 provides an output. The output 15 ¦ signal appears on path 148. A similar circuit is included 16 I for the even bits.
17 ¦ By resetting the memory counter 152 for an error 18 I differential which is greater or equal to one previously 19 ¦ included in the magnitude comparator 140, the position of 20 ¦ this maximum error differential is always available. Thus, 21 at the time an error occurs, the memory counter 152 contains 22 the time slot location for the maximum positive and negative 23 differentials for both the odd and even pulse trains. The 24 error detector 58 determines if the error occurred in the odd or even pulse train and applies this information to bit 26 corrector 74. The extreme level odd or even is also applied 27 to the bit corrector 74. This information is coupled in a 28 logic circuit with the bit position information from the - 3] -D-20,375 11193~)5 1 memory counter 152 so as to determine the error in the error correction interval to be corrected.
3 It is to be understood that there would be 15 output 4 leads from each counter in memory counter 152, the odd appearing on paths 70 and even on paths 72, as shown in FIGS. 11 and 14.
6 For each stage of the odd shift register 106 and of the even shift register 108 there is a connection from the bit corrector 8 74 (see FIG. 16 which shows one unit thereof). The particular 9 unit shown in FIG. 16 is applicable only to the first stage Al of the odd shift register 106 as shown in FIG. ~. When an 11 output pulse appears at lead 76Al, the bit in the odd shift 12 register 106 in the first stage is complemented. Thus, if the 13 bit that had appeared there was a 1, it would be changed to 14 a 0 and vice versa. While 30 bit corrector units, such as are shown in FIG. 16, are required, only the operation of 1 16 will be described since this will clearly show how the other 17 units must be connected to correct operation. Note that 18 gates 256 and 258 are AND-gates and, because the discussion 19 is concerned only wlth the odd pulse train, for example, the odd clock is applied as one input to both of these gates and 21 the odd error detector output on path 66 is likewise applied 22 as one input to both of these AND-gates. The polarity outputs, 23 i.e., 70Al and 70Bl, are both present, but are applied to 24 different AND-gates. If it is assumed that the maximum error differential appears in time slot 1 of the odd pulse train and 26 that the error differential is positive, gate 256 will have an 27 output pulse ~Jhich passes through OR-gate 260 to path 76Al 28 and the input to the first bit position of register 106. The 11193~5 D-20,375 1 effect of this pulse is to complement the bit which appears 2 in that location of the odd shift register 106.
3 AS may be seen from the interaction of the various 4 elements which make up the error corrector, timing is important.
While certain delays have been shown, it is to be understood 6 that others may be required to ensure proper operation,and 7 that this is well known to those skilled in the art. As a 8 summary, the sequence of events which follows for different 9 conditions is as follows:
12 TIME SEQUENCE FOR THREE CONDITIONS AT 1.5 MHz CLOCK RATE
Extreme Level Extreme Level 13 and and Error Detected No Error Detected Center Level 15 Advance Counter Advance Counter Advance Counter Error detected No error detected 16 Reset storage 17 Read in error Read in error Read in error differential differential differential ' 18 Compare error Compare error Compare error - differential with differential with differential with 19 maximum stored maximum stored maximum stored 20 Correct error Reset Memory Reset Memory 21 ~ounter Counter 22 Reset Magnitude Comparator 23 Advance Counter 24 ~ "~ ~ ~
25 Here cycle ends Here cycle ends Here we are in the on this bit and on this bit and middle of a cycle.
26 a new cycle starts starts on the on next bit. same bit. I
22279 ~l 1 ~0 - 33 -.
D-20,375 11~93~)5 1 While the invention has been particularly shown and 2 described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that changes 4 in form and detail may be made therein without departing S ¦ Erom the s rit and soope of the invention . 10 .,, 11 . 12 ~'~; 15 ; 16 . 17 8 .
conversion means having at an input the modified duobinary code signal, said conversion means providing at a first output a binary representation of the input code signal and at a second output the error differential for each bit;
error detection means having an input connected to receive the modified duobinary code, said detection means providing an error output indication at a first output and providing top extreme level and bottom extreme level indications at second and third outputs, respectively, successive extreme level occurrences establishing an error correction interval;
sequential storage means having an input connected to the first output of said conversion means, said storage means temporarily storing a limited number of bits, said limited number being sufficiently large so as to encompass the maximum error correction interval;
error analyzing means for determining which bit in an error correction interval is most likely to be in error, said error analyzing means having as a first input the second output of said conversion means and having second and third inputs, respectively, connected to the second and third outputs of said error detection means, and having an output; and means responsive to the first output from said error detection means and to the output from said error analyzing means for complementing the bit in said sequential storage D-20,375 having the most likelihood of error for the error correction interval for which an error is detected.
decoding means having an output and having an input connected to receive the modified duobinary code signal, said decoding means providing a binary signal at said output;
timing means providing a sampling frequency at the bit rate;
sample and hold means having an output and having a first input connected to receive the modified duobinary code signal, having a second input connected to said timing means, said sample and hold means holding a timed sample of said modified duobinary code signal for comparison with standard amplitude; and comparing means having an output, having a first input connected to the output of said sample and hold means, having second and third inputs connected, respectively, to the second and third outputs of said error detection means, and having a fourth input connected to said timing means, said comparing means providing error differentials at said output.
slicing means having an input connected to receive the modified duobinary code signal and providing a pulse at a first output for an extreme top level and a pulse at a D-20,375 second output for an extreme bottom level;
an Exclusive OR-gate having two inputs and an output with one input being connected to the output of said decoding means;
first and second flip-flops connected in series from the output of said Exclusive OR-gate and means for connecting the output of said second flip-flop to the other input of said Exclusive OR-gate; and coincident gating means having an output, having first and second inputs connected, respectively, to the first and second outputs of said slicing means, having a third input connected to the output of said second flip-flop, and having a fourth input connected to the output of said Exclusive OR-gate, said coincident gating means producing an error signal at the output when a present extreme level is the same binary state as the output of the second flip-flop,and the output of the Exclusive OR-gate is in the opposite binary state.
temporary holding means for temporarily storing the error differential for each bit, having an output, having a first input connected to the output of said comparing means and having a second input;
magnitude comparator means for selecting the bit having the maximum error differential, having an output connected to the second input of said temporary holding means, having a first input connected to the output of said comparing means and having a second input;
D-20,375 a first gating means having an input connected to the output of said temporary holding means, and having an output;
a second gating means having an input and having an output connected to the second input of said magnitude comparator;
maximum error differential storage means for storing the maximum error differential during an error correction interval, having an input connected to the output of said first gating means and having an output connected to the input of said second gating means, said maximum error differential being gated in from said temporary holding means when said magnitude comparator means determines the sample in said temporary holding means is equal to or greater than the maximum error differential in said storage means; and memory counting means for tracking the maximum error differential with the bit location in said sequential storage means, having a first input connected to said timing means to advance the counting means on each clock pulse, a second input connected to the output of said magnitude comparator to reset the counter to "1" when a maximum error differential is read into the maximum error differential storage means, third and fourth inputs connected to the second and third outputs of said error detection means to reset the counter to "O"
following an extreme level occurrence and having a plurality of outputs equal in number to the limited number.
means for decoding the modified duobinary code signal to obtain a binary equivalent thereof;
means for separating alternate bits of the decoded modified duobinary code signal into two pulse trains, a first pulse train comprising the odd-numbered bits and a second pulse train comprising the even-numbered bits;
means for sequentially storing a number of the odd-numbered bits and of the even-numbered bits;
means for determining an occurrence of a top level or a bottom level bit of the modified duobinary code signal and providing output indications thereof;
means for detecting errors in said modified duobinary code signal, said detecting means being responsive to the top level and bottom level determining means, and providing an output indicating if the error occurred in the first or second pulse train;
means for obtaining the error differential for each bit, and providing an output representative of said error differential;
means for analyzing the error likelihood for each bit in the first and in the second pulse train and tracking the bit that is the most likely error candidate for each pulse train during an error correction interval; and bit correcting means responsive to the error detecting means and to the analyzing means for complementing the bit in D-20,375 said sequential storage means that is the most likely error candidate following an error occurrence.
means for determining occurrences of top levels and bottom levels of said modified duobinary code signal and providing output indications thereof;
means for establishing successive error correction intervals, said means being responsive to the top level and bottom level output indications;
means for separating alternate bits in the modified duobinary code into two pulse trains, a first pulse train comprising the odd-numbered bits and a second pulse train comprising the even-numbered bits;
means for sequentially shifting and thus temporarily storing a limited number of bits from the first pulse train and of the second pulse train, said limited number being sufficiently large so as to encompass all expected error correction intervals;
means for detecting errors in said modified duobinary code signal, said detecting means being responsive to the top and bottom level determining means and providing an output indicating if the error occurred in the first or second pulse train;
means for obtaining the error differential for each bit and providing an output representative of said error differential;
D-20,375 means for analyzing the error likelihood for each bit in both the first and second pulse trains and tracking the bit in said temporary storing means having the most likelihood of error for each pulse train during an error correction interval; and bit correcting means responsive to the error detecting means and to the analyzing means for complementing the bit in said temporary storing means that is the most likely error candidate following an error occurrence.
timing means having a first clock output at the bit rate of the modified duobinary code, having a second clock output at one-half the rate of said first clock output and having a first phase, and having a third clock output at a bit rate of one-half the first clock output and having a phase which is opposite that of said second clock output;
conversion means having an input connected to receive said modified duobinary code signal and providing an amplitude representation as a binary code word at its output;
logic means having inputs connected to receive the most significant bits of said binary code, said logic means converting each binary code word into a binary representation of the duobinary signal at one output and providing top level and bottom level indications at other outputs;
a first gating means having as one input the binary representation from said logic means and having as a second input the second clock signal, thus providing a binary output D-20,375 for alternate bits of the binary representation; and a second gating means having as one input the binary representation from said logic means and having as a second input the third clock signal, thus providing a second binary pulse train which includes the alternate bits not included in the first binary pulse train.
a first shift register having as one input the first pulse train, having as a second input the second clock signal whereby the bits read into the register are sequentially shifted therethrough, and having an input to each stage of the first shift register for error correction purposes; and a second shift register having as one input the second pulse train, having as a second input the third clock signal whereby the bits read into the register are sequentially shifted therethrough, and having an input to each stage of the second shift register for error correction purposes.
a first error detecting circuit comprising a first delay circuit having as a first input the top level output, having as a second input the bottom level output and having as a third input the second clock signal, said error detecting circuit providing first and second complementary outputs;
third gating means having as one input the top level output, having as a second input the bottom level output, and having D-20,375 as third and fourth inputs the complementary outputs from said delay means, said third gating means having an output, and a first flip-flop having one input connected to the output of said gating means, having a second input connected to said second clock means, said first flip-flop providing an output when the successive extreme levels of the first pulse train are of one like state;
a second error detecting circuit comprising a second delay circuit having as a first input the top level output, having as a second input the bottom level output and having as a third input the third clock signal, said second delay circuit providing complementary output signals; fourth gating means having as one input the top level output having as a second input the bottom level output and having as the third and fourth inputs the complementary outputs from said second delay circuit, said fourth gating means having an output; and a second flip-flop circuit having one input connected to the output of said fourth gating means, having as a second input said third clock signal and providing an output error indication whenever successive extreme levels of the second pulse train are of the same like state.
combining means having a first input connected to receive said top level, having a second input connected to receive said bottom level and providing the combined top and bottom levels at an output;
D-20,375 a fifth gating means having as one input the output of said combining means, having as a second input the second clock signal, and having an output whereby extreme level signals are obtained for the alternate bits of the first pulse train;
a sixth gating means having as one input the output of said combining means, having as a second input the third clock signal, and having an output whereby the extreme levels are obtained for the alternate bits of the second pulse train;
a seventh gating means having as one input the output of said fifth gating means and having as a second input the output from said first error detecting means, said seventh gating means providing an output upon the occurrence of an extreme level in the absence of a detected error and providing a delayed output when an error occurs in the first pulse train;
and eighth gating means having as one input the output of said sixth gating means and having as a second input the output from said second error detecting circuit, said eighth gating means providing an output upon the occurrence of an extreme level in the absence of a detected error and providing a delayed output when an error occurs in the second pulse train.
magnitude comparator means having as one input the error differential for each bit at the bit rate of the modified duobinary code, having as a second input the bottom level indication, having as a third input the top level indication, D-20,375 having as fourth, fifth and sixth inputs the output from the first, second and third clocks, respectively, said comparator separately comparing the error differential of each successive bit for the first and second pulse trains and storing the maximum positive and maximum negative error differential for both the first and second pulse trains during an error correction interval, the comparator providing first and second outputs whenever the error differential of the current bit is equal to or greater than the stored error differential, respectively, for the first and second pulse train;
advancing means having as a first input the error output of said first pulse train, having as a second input the error output of said second pulse train, having as a third input the extreme level for said first pulse train, and having as a fourth input the extreme level indication for the second pulse train, having as a fifth input the second clock output and having as a sixth input the third clock output, said advancing means providing outputs on first and second output paths at said second and third clock rates during an error correction interval; and memory counting means having as first and second inputs the outputs from said magnitude comparator, having as third and fourth inputs the outputs from said advancing means, having as fifth and sixth inputs the second and third clock signals, having as seventh and eighth inputs the bottom level and the top level indications, said memory counter tracking the bit location with respect to location in said sequential shifting means for the maximum error differential in both D-20,375 first and second pulse trains, said counter providing an output indication of the bit location having the most likelihood of error when an error has been detected.
means for temporarily holding the error differential for each successive bit;
means for storing the maximum error differential;
means for comparing the successive error differentials with the maximum error differential so stored, said comparing means providing an output when the error differential for the successive bit is equal to or greater than the magnitude of the stored maximum error differential and for storing the maximum error differential for succeeding comparisons.
counting means having a reset to one input connected to the output of said magnitude comparator means, having a second input connected to the output of said extreme level means, having a third input connected to the output of said advancing means, said counting means providing an output for each counting stage, one said stage for each stage of said sequential shifting means.
means for comparing positive error differentials comprising:
D-20,375 first means for temporarily holding successive positive error differentials;
second means for storing the maximum positive error differential for both first and second pulse trains; and third means for comparing successive positive error differentials with the maximum error differentials so stored, said comparing means providing an output when the error differential for a successive bit is equal to or greater than the magnitude of the stored maximum error differential, and for storing this as the new maximum error differential in said storing means; and means for comparing negative error differentials comprising:
fourth means for temporarily holding successive negative error differentials;
fifth means for storing the maximum negative error differential for both first and second pulse trains;
sixth means for comparing successive negative error differentials with the maximum error differentials so stored, said comparing means providing an output when the error differential for a successive bit is equal to or greater than the magnitude of the stored maximum error differential, and for storing this as the new maximum error differential in said storing means.
a ninth gating means having as a first input the D-20,375 output of said third means, having as a second input the output of said sixth means, having as a third input the second clock output and having as a fourth input the third clock output;
said ninth gating providing a signal at a first output for coincident signals on the first and third inputs, a signal at a second output for coincident input signals on said first and fourth inputs, a signal at a third output for coincident input signals on said second and third inputs, and a signal on a fourth output for coincident input signals on said second and fourth inputs;
a first counting means having the reset to one input connected to said first output of said ninth gating means, having a reset-to-zero input connected to the output of said fifth gating means, and having the stepping input connected to the first output path of the advance means, said first counting means providing a separate output for each counter stage;
a second counting means having the reset to one input connected to the second output of said ninth gating means, having the reset-to-zero input connected to the output of said sixth gating means, and having the stepping input connected to the output of the second output path of the advance means, said second counting means providing a separate output for each counter stage;
a third counting means having the reset to one input connected to the third output of said ninth gating means, having the reset-to-zero input connected to the output of said fifth gating means, and having the stepping input D-20,375 connected to the first output path of said advance means, said third counting means providing a separate output for each counter stage; and a fourth counting means having the reset to one input connected to the fourth output of said ninth gating means, having the reset-to-zero input connected to the output of said sixth gating means, and having the stepping input connected to the output of the second output path of the advance means, said fourth counting means providing a separate output for each counter stage.
a first delay means having its input connected to the output of said fifth gating means and having an output;
a tenth gating means having as one input the output from said first delay means, having as a second input the output from the first error detector, said connection being through an inhibit gate, and having an output;
an eleventh gating means having as one input the output of said tenth gating means and having as a second input the second clock signal, said eleventh gating means providing an output whenever an input pulse appears on either input;
a second delay means having its input connected to the output of said sixth gating means, and having an output;
a twelfth gating means having a first input connected to the output of said second delay means and having as a D-20,375 second input the output of said second error detector, said second input being connected through an inhibit gate, and having an output; and a thirteenth gate having as one input the output of said twelfth gate and having as the second input the third clock signal, said thirteenth gate providing an output whenever a pulse appears at either input.
a fourteenth gating means having as one input an output from said timing means, having as a second input an output from said error detecting means, having as a third input the output of said top level from said determining means, and having as a fourth input an output from said memory counter, and having an output;
a fifteenth gating means having as one input an output from said timing means, having as a second input an output from said error detecting means, having as a third input an output of said bottom level from said determining means, and having as a fourth input an output from memory counter, and having an output; and a sixteenth gating means having as one input the output of said fourteenth gating means, having as a second input the output of said fifteenth gating means and having an output.
timing means having a first clock output at the bit rate of the duobinary code, having a second clock output of a first phase which is at half the rate of said first clock, and having a third clock output also at one-half the rate of said first clock, but having a phase which is the opposite of said second clock;
conversion means having as one input the modified duobinary code signal and having first, second and third clock inputs from said timing means, said conversion means providing at a first output a first pulse train which is a binary representation of the bipolar signal appearing in one alternate time slot of the modified duobinary code, at a second output a second pulse train which is a binary representation of the bipolar signal appearing in the other alternate time slot of the modified duobinary code, a third output representing the top level of the modified duobinary code, a fourth output representing the bottom level of the modified duobinary code, and a fifth output representing the error differential, i.e., the difference in amplitude between the standard level for each received bit and the actual amplitude of each sample bit;
means responsive to the third and fourth outputs of said conversion means for establishing successive error correction intervals;
means for sequentially shifting, and thus temporarily storing, a limited number of the digits, separately, for the first and second pulse trains, said limited number being D-20,375 sufficiently large so as to encompass all expected error correction intervals;
means for detecting errors in said modified duobinary code signal, said detecting means being responsive to the third and fourth outputs of said conversion means, said detecting means providing a separate output indication for an error occurring in the first pulse train from the indication of an error occurring in the second pulse train;
means for analyzing the error likelihood for each bit in both the first and second pulse trains and for tracking the bit having the most likelihood of error for each pulse train during the error correction interval; and means responsive to the error detecting means and to the analyzing means for complementing the most likely error candidate upon an error occurrence.
Priority Applications (2)
|Application Number||Priority Date||Filing Date||Title|
|US05830954 US4118686A (en)||1977-09-06||1977-09-06||Error correction for signals employing the modified duobinary code|
|Publication Number||Publication Date|
|CA1119305A true CA1119305A (en)||1982-03-02|
Family Applications (1)
|Application Number||Title||Priority Date||Filing Date|
|CA 307453 Expired CA1119305A (en)||1977-09-06||1978-07-14||Error correction for signals employing the modified duobinary code|
Country Status (2)
|US (1)||US4118686A (en)|
|CA (1)||CA1119305A (en)|
Families Citing this family (22)
|Publication number||Priority date||Publication date||Assignee||Title|
|US4298956A (en) *||1979-05-14||1981-11-03||Honeywell Information Systems Inc.||Digital read recovery with variable frequency compensation using read only memories|
|US4387461A (en) *||1981-03-11||1983-06-07||Ford Aerospace & Communications Corporation||Experientially determined signal quality measurement device for antipodal data|
|US4447903A (en) *||1981-05-22||1984-05-08||Ael Microtel, Ltd.||Forward error correction using coding and redundant transmission|
|US4504872A (en) *||1983-02-08||1985-03-12||Ampex Corporation||Digital maximum likelihood detector for class IV partial response|
|NL8301098A (en) *||1983-03-29||1984-10-16||Philips Nv||Digital transmission.|
|US4677627A (en) *||1985-06-05||1987-06-30||International Business Machines Corp.||Error correction scheme|
|FR2612025B1 (en) *||1987-03-06||1989-05-26||Labo Electronique Physique||A code signal decoding duobinary|
|WO1991010303A1 (en) *||1989-12-22||1991-07-11||Signalling Technology Pty. Ltd.||Data error detection in data communications|
|GB9024515D0 (en) *||1990-11-12||1991-01-02||Texas Instruments Ltd||Improvements in or relating to digital communications|
|US5122990A (en) *||1991-02-01||1992-06-16||Rowe-Deines Instruments Incorporated||Bottom tracking system|
|US5365547A (en) *||1991-08-28||1994-11-15||Frank Marinaro||1X asynchronous data sampling clock for plus minus topology applications|
|US5424881A (en) *||1993-02-01||1995-06-13||Cirrus Logic, Inc.||Synchronous read channel|
|US5761212A (en) *||1993-07-01||1998-06-02||Cirrus Logic, Inc.||Channel quality|
|US5987634A (en) *||1994-11-17||1999-11-16||Cirrus Logic, Inc.||Channel quality circuit in a sampled amplitude read channel|
|US6741636B1 (en)||2000-06-27||2004-05-25||Lockheed Martin Corporation||System and method for converting data into a noise-like waveform|
|US7664214B2 (en) *||2002-09-24||2010-02-16||Standard Microsystems Corporation||System and method for transferring data among transceivers substantially void of data dependent jitter|
|US7126378B2 (en) *||2003-12-17||2006-10-24||Rambus, Inc.||High speed signaling system with adaptive transmit pre-emphasis|
|US20070116476A1 (en) *||2005-11-18||2007-05-24||Futurewei Technologies, Inc.||Method and apparatus for generating optical duo binary signals with frequency chirp|
|US7436615B2 (en) *||2005-12-08||2008-10-14||International Business Machines Corporation||Using a measured error to determine coefficients to provide to an equalizer to use to equalize an input signal|
|US7594150B2 (en) *||2006-05-10||2009-09-22||Alcatel-Lucent Usa Inc.||Fault-tolerant architecture of flip-flops for transient pulses and signal delays|
|JP5581969B2 (en) *||2010-10-27||2014-09-03||ソニー株式会社||Decoding apparatus and method, and program|
|KR20150090421A (en) *||2014-01-29||2015-08-06||삼성전자주식회사||Method and apparatus for estimate communication channel in mobile communication system|
Family Cites Families (4)
|Publication number||Priority date||Publication date||Assignee||Title|
|GB971359A (en) *||1962-07-02|
|US3337864A (en) *||1963-08-01||1967-08-22||Automatic Elect Lab||Duobinary conversion, reconversion and error detection|
|US3343125A (en) *||1964-02-13||1967-09-19||Automatic Elect Lab||Apparatus for detecting errors in a polylevel coded waveform|
|US3461426A (en) *||1966-04-20||1969-08-12||Lenkurt Electric Co Inc||Error detection for modified duobinary systems|
Also Published As
|Publication number||Publication date||Type|
|US3409875A (en)||Transmission system for transmitting pulses|
|Ungerboeck||Adaptive maximum-likelihood receiver for carrier-modulated data-transmission systems|
|Mueller et al.||Timing recovery in digital synchronous data receivers|
|US3891959A (en)||Coding system for differential phase modulation|
|US5103463A (en)||Method and system for encoding and decoding frequency shift keying signals|
|US5461629A (en)||Error correction in a spread spectrum transceiver|
|US6178209B1 (en)||Method of estimating trellis encoded symbols utilizing simplified trellis decoding|
|US5490169A (en)||Decision feedback equalizer method and apparatus|
|US5862156A (en)||Adaptive sequence estimation for digital cellular radio channels|
|US5237590A (en)||Timing extraction circuit and communication system utilizing the same|
|US4481640A (en)||Spread spectrum modem|
|US4885582A (en)||"Simple code" encoder/decoder|
|US5408473A (en)||Method and apparatus for transmission of communication signals over two parallel channels|
|US5341401A (en)||Method of detecting the channel identity of a number of channels in a mobile radio system|
|US4131761A (en)||Method of and means for conveying and recovering supplementary message signals superimposed upon a multilevel signal stream in a digital transmission system|
|US4756005A (en)||Digital signal regenerator arranged for fault location|
|US6389572B1 (en)||Method of extracting bits from modulated waveforms|
|US4599723A (en)||Method of encoding data for serial transmission|
|US3440548A (en)||Timing recovery circuit using time derivative of data signals|
|Moon et al.||Performance comparison of detection methods in magnetic recording|
|US5448571A (en)||Method and apparatus for determining byte synchronization within a serial data receiver|
|US3789359A (en)||Synchronism indicator for a convolutional decoder|
|US6151370A (en)||Path-oriented decoder for signal-dependent noise|
|US5594496A (en)||Detection of co-channel interference in digital television signals|
|US4086587A (en)||Apparatus and method for generating a high-accuracy 7-level correlative signal|