Patent GB-1522895-A (GB)
Title: Method of and apparatus for decoding encoded data signals
IPC: G11B20/14
Filed: 1976-08-31
Abstract: 1522895 Decoding digital data signals INTERNATIONAL BUSINESS MACHINES CORP 31 Aug 1976 [29 Oct 1975] 36049/76 Headings G4C and G4M A decoding method of, and apparatus for use in decoding a generalized self-clocking data stream is described. The data stream may consist of electrical pulses from a communications line or be derived by magnetic or optical scanning of a recording medium. The self-clocking code employed may be F2F, S2S, SKS, phase-shift or delta-distance codes. In each of the codes data events (positive transitions) and control events (negative transitions) are interleaved on a one-for-one basis; corresponding to this, "bars" (positive data) and "spaces" (negative data) are also interleaved on a one-for-one basis. If, as in all the self-clocking codes mentioned, there exists a minimum bar or space width, and P possible bar or space widths greater than the minimum (P being 1 in most cases), it is shown that a bar-space or space-bar pair can have 2P + 1 possible widths. Based upon these 2P + 1 possibilities, and on a reference width supplied directly to a decoder apparatus or obtained by scanning a bar-space or a space-bar pair in a preamble stream, search gates are then erected in the data steam at the possible pulse positions and, depending upon the actual pulse positions, the data content of the data stream is obtained. Formulae are given for the positions of the various search gates and for velocity and acceleration corrections thereof. The reference width may be resealed for use in each succeeding cell (containing one data event and one control event). In Figs. 10A, 10B, 10C, counters 3, 4 and 5 count clock pulses from a source 1 at different rates. The reference width is obtained from a preamble stream and stored at 16. Counters 3, 4 and 5 count up to their various maximum counts (all equal) at various times and if, at a particular time, an X (data) signal occurs in a search gate, the contents of the appropriate counter are fed to the store 16 to overwrite its present contents. A counter 18 counts down from the contents of the store 16 to zero, each counting down of the counter 18 to zero representing a subdivision of a cell. Following each such counting down to zero of the counter 18, it is recharged from the store 18 and counting down to zero again proceeds. A shift register 23 stores a sequence of zeroes representing the number of times the counter 18 has counted down to zero, and logic circuitry 25-32 determines in which subdivision of the cell a data signal occurs. Following each such detection of a data signal, the store 16 is loaded with the current contents of the appropriate counter 3, 4 or 5 as an updated reference width, this providing an inbuilt velocity correction. A circuit identical to that of Figs. 10A, 10B, 10C is provided for the control (Y) signals, the subdivisions of the cells for data signals and control signals being determined and transmitted to a logic matrix, Fig. 13A (not shown) to decode the data signals. An error signal is generated if no data or control signals are detected in any given cell. In the previous embodiment separate circuitry is provided for the data signals and the control signals, search gates for each being erected relative to the preceding like signals; in a modification, Figs. 16, 17 (not shown) each search gate is erected relative to the preceding signal (of either type), and common circuitry for the data signals and the control signals is employed.