# Patent

## Title
Synchronous servo gray code detector using a PR4 matched filter

## Abstract

A generalized method for dynamically deriving configuration information from a set of given parameters for detecting binary-valued sequences from (d, k) partial-response (PR) coded waveforms of predetermined shape, for applying the derived information to configure a processor, and for operating the configured processor as a PR detector.

## Background
This invention relates to the maximum likelihood (ML) detection of binary-coded sequences derived from run-length-limited (RLL) partial response analog waveforms. These waveforms are used in disk recording channels and the like. More particularly, the invention relates to a generalized method and means for defining and operating ML detectors for any particular type of [d, k] partial response channel or waveform.

One result of digital information processing is the production of binary-coded sequences. When the sequences are to be stored on a disk drive or the like, it is customary to first add additional bits representing an error correction coding (ECC) artifact. Next, the sequences are sent through a run-length-limited (RLL) or modulation encoder and a partial response (PR) channel. The modulation encoder and partial response channel are designed to impart clocking information to the binary sequence and to transform this enriched sequence into a highly recoverable analog pattern when read back from the storage medium. The actual recorded signals on a disk drive track are Gaussian-shaped peaks and valleys varying over time.

When the recorded signals are read back, it is necessary to invert the process. In this regard, recorded signals are first applied to a PR decoder or detector. The PR detector output is in the form of a binary-coded sequence enriched with the modulation code and the ECC artifact. The former is stripped off by the RLL or modulation decoder. The result is then applied to an ECC decoder for any necessary error detection and correction.

The present magnetic storage track recording environment is characterized by high signal density, intersymbol interference (ISI), and white Gaussian noise. PR is the current response to increasing densities and speed, and replaces peak detection as the method of choice.

PR detection comprises two parts. These are ascertaining the PR signal from the storage medium and assigning the actual PR signal to a binary sequence on a maximum likelihood basis. That is, a binary sequence is correlated with a valid PR signal to which a detected signal is most closely associated. In this regard, the permissible PR signals having the noise-free and signal space location attributes can be determined in advance. Thus, when an actual PR signal encrusted with some noise is detected, its location (Euclidean distance) with respect to the location of every one of the permissible signals can be resolved based on the shortest or minimum distance.

As used in this specification, the term "distance" connotes Euclidean distance d.sup.2 rather than the code theory term "Hamming" distance. The Euclidean distance metric d.sup.2 is the sum of the squares of the differences between a pair of vectors. If a reference waveform produces a vector of sample values [x.sub.1 x.sub.2 x.sub.3 x.sub.4 ] and a readback waveform yields values taken at the sample times of [y.sub.1 y.sub.2 y.sub.3 y.sub.4 ], then the Euclidean distance d.sup.2 is taken to be +(x.sub.n -y.sub.n) .sup.2.

The PR detector comprises a signal sampler and an ML detector. In this regard, the PR signal is sampled one or more times at a predetermined self-clocked rate. This set of samples is termed a "vector of samples" and is then applied to a Viterbi or equivalent detector. The Viterbi detector is a well-known finite state machine (FSM) configured to process samples. It resolves a noisy sample to the closest one of the nominal or "known" nonnoisy samples using traversal of a special purpose directed graph called a trellis. Such processing is described in Fettweis et al., U.S. Pat. No. 5,430,744, "Method and Means for Detecting Partial Response Waveforms Using a Modified Dynamic Programming Heuristic", issued Jul. 4, 1995. Unfortunately, the trellis processing, as exemplified in Fettweis, is complex in function, structure, and operation and costly.

There have been other approaches to processing RLL or (d, k) constrained PR waveforms. These have been of the finite lookahead decision feedback ML detector type. For instance, Patel, U.S. Pat. No. 4,945,538, entitled "Method and Apparatus for Processing Sample Values in a Coded Signal Processing Channel", issued Jul. 31, 1990, sought to reduce the complexity of trellis-based, bit-by-bit detection. Patel assumed that most errors in reading from a [d, k] partial response channel are due to peaks shifted by one clock period or cycle.

In general, Patel's solution was the use of a linear filter in his lookahead decision feedback FSM to increase the Euclidean distance between events for a (1, 7) EPR4-coded channel. The [d, k]=(1, 7) means that there is inserted at least one "0" and not more than seven "0's" between a pair of consecutive "1's" in any binary sequence. An EPR4 type of partial response signal means that the nominal or noise-free signal, if sampled at the Nyquist rate, would yield relative magnitudes 1-2-1 at those sample times. This means that there exists a "target waveform" of a peak shape that has been "equalized". If the equalized target waveform were sampled at its Nyquist frequency, then three samples would be obtained at three clock times during its excursus. The waveform at the sample times should have magnitudes respectively of 1, 2, and 1.

Hassner, U.S. Pat. No. 5,638,065, "Maximum-likelihood Symbol Detection for RLL-coded Data", issued Jun. 10, 1997, is directed to binary sequence ML detection of waveforms from a (1, 7) E.sup.2 PR4 channel. This PR waveform is sampled four times with a nominal relative amplitude of 1-3-3-1. Whereas Patel is limited to detecting one bit at any time, Hassner modified Patel's FSM to detect bits in parallel (actually four bits/cycle) or one symbol at a time. While Hassner utilizes the linear filter and bit clock of the Patel '538 patent, he additionally utilizes a symbol clock.

Jeon et al., "Systematic Approach to Signal Space Detection", IEEE Transactions on Magnetics, Vol. 33, No. 5, September 1997, pp. 2737-2739, emphasize the use of a finite delay decision tree (FDTS) in their finite lookahead decision feedback (FSM) detector. The FDTS operates as a form of signal space partitioning and as an approximation to the Viterbi detector. Conceptually, Moon's nominal sample values are mapped into an N-dimensional space. Hyperplanes are passed through this N-dimensional space, thereby partitioning the nominal sample values according to predetermined criteria. As embodied in a detector, the estimation of one or more detected samples in this N-space is then made using the nearest neighbor rule (minimal Euclidean distance).

It is accordingly an object of this invention to devise a method and apparatus for defining and operating a partial response detector for any given partial wave shape h, [d, k] RLL modulation code, minimum Euclidean distance d.sup.2.sub.min of [d, k] coded PR wave, and minimum Euclidean distance d.sup.2.sub.spec.ltoreq.d.sup.2.sub.min specified for PR detector performance.

It is still another object that such method and apparatus for defining and operating a [d, k] PR detector be utilizable by [d, k] PR waves of the PR4, EPR4, and E.sup.2 PR4 types and the like.

It is yet another object that such method and apparatus exhibit less operational and structural complexity than that exhibited by a Viterbi-type trellis PR detector.

The foregoing objects are believed satisfied by a method and apparatus in which logic equations governing PR detector operations are first defined from a predetermined set of parameters comprising the PR shape h, [d, k] RLL code, d.sup.2.sub.min, and d.sup.2.sub.spec.ltoreq.d.sup.2.sub.min. The definition of the PR detector is expressed in a series of logic equations involving a linear decision function integer matrix H, a vector of threshold values t, and decision logic F. A processor is then configured according to the equations to emulate the defined (d, k) PR detector for sampling, evaluating applied (d, k) partial response waveforms, and for extracting the appropriate binary sequences on an ML basis.

In the PR detector of this invention, after equalization, adjacent samples of the readback signal are stored in a shift register structure implemented by analog integrators. The linearly weighted sum of the register contents is compared to a set of thresholds. From this bit vector, the detector logic finally calculates the binary sequence, which corresponds to the sequence of input samples. Feedback is used to subtract the effect of previous transitions.

Each set of N samples can be regarded as points in an N-dimensional space. Relatedly, a PR detector responsive, for instance, to signals from a (1, 7) E.sup.2 PR4 channel, must distinguish between permissible sequences starting with 1 (or -1) and those starting with 0. From a geometric viewpoint, the detection problem reduces to distinguishing groups of points, which have the sequence-starting attribute of 0 or 1. The solution is to introduce a set of hyperplanes which establishes partitions in an N-dimensional space so that each partitioning is exclusively occupied by representatives of one of the groups. Thus, a subset of these hyperplanes separates the 0-group from the 1-group. The detection decision is made by identifying the partition to which the sampled point belongs. The partition is identified by simultaneously evaluating linear equations of the coordinates of the sample and comparing the results to a fixed threshold.

In one embodiment, a processor executes APL routines to derive the logic equations and configures itself into a PR detector. It then executes other APL routines and samples the PR waveforms, processes the samples, and assigns binary sequences on an ML basis.

In another embodiment, after defining the PR detector dynamically through a computation such as that described in the Hassner '065 patent, the sampled waveform is applied to the defined PR detector. The detector calculates, in parallel from the analog waveform, symbols constituting analog-valued vectors. This is done by integrating, in parallel, the analog signal samples as weighted by a preselected set of weighting functions orthogonal over a time duration representing a symbol period that is an integral multiple of a bit-clock period and assigning a binary-coded sequence associated with that calculated analog-valued vector closest to the analog-valued vector of the instant waveform on an ML basis.

FIG. 1 depicts a general flow of control of the definition, configuration, and execution phases of the method of this invention.

FIG. 2 depicts a 2-dimensional space in which hyperplanes are passed among the clusters of codepoints in the definitional phase of the invention.

FIG. 3 sets out a general flow of control of the definition phase in which starting PR shape, RLL constraints, and Euclidean distance parameters are transformed into logic equations representing matrix, threshold, and decision logic.

FIGS. 4A-4C show an analytic flow of control of the definition phase as set out in FIG. 3.

FIG. 5 illustrates a high-level data pathing for a partial response ML detector incorporating the matrix, threshold of, and decision logic defined by the operations depicted in FIGS. 2 and 3.

FIGS. 6A-6H depict a software-based embodiment of a (1, 7) E.sup.2 PR4 symbol detector configured as APL code executable in any requisite Von Neumann processor or the like for dynamically defining the [d, k] partial response detector, configuring the processor, and operationally performing as a PR detector according to the invention.

FIG. 7 illustrates a hard-wired embodiment of a (1, 7) E.sup.2 PR4 symbol detector configured as a transversal filter and combinatorial logic according to the definition phase of the invention.

General Nature of a Dynamically Derived and Operational Device

The preferred embodiment comprises a phase for first deriving the attributes of the PR detector from predetermined defining characteristics, a phase for configuring a processor such as one utilizing the interpretive APL language to operate as the newly defined PR detector, and a phase for employing the configured APL processor as a PR detector.

Referring now to FIG. 1, there is shown a flow of control of the dynamic definition, configuration, and operation of a [d, k] partial response detector. The phase moves from its starting step 1 and iteratively produces logic equations at step 5 from the predetermined defining characteristics in input step 3 such as a partial wave shape h, specific [d, k] RLL or modulation code, minimum Euclidean distance d.sup.2.sub.min between RLL-coded PR signals, and d.sup.2.sub.spec.ltoreq.d.sup.2.sub.min specified for detector performance.

The PR detector is of the maximum likelihood type. The function of the derivative step 5 is to produce a linear decision function integer matrix H, one or more binary decision thresholds t, and decision logic F. Parenthetically, the logic F utilizes H and t to effectuate the Boolean output function yielding a detected binary symbol. Both the detection process and the derivation of H, t, and F are described using a geometric interpretation of mapping nominal RLL codepoints progressively into higher degree geometric spaces and utilizing hyperplanes to separate permissible pairs of RLL sequences. Noisy samples are then resolved with reference to the minimum distance between the sample and the nominal codepoints.

The iterative processing takes place in steps 5, 7, and 9 until all RLL codepoints are separated by at least one plane. In this regard, the derived equations are expressed in the form of tabular or matrix data constructs. These constructs are presented in step 11 and utilized by a processor having an interpretive program language capability of either a special or general type. In this embodiment, an APL sequence causes the processor, as parameterized by the tabular or matrix data constructs, to behave as if it were a partial-response detector 19. Sampled PR waits are applied as inputs in step 15 to the PR detector 19 over path 17. The PR detector operating over several samples generates binary sequence outputs in the form of binary symbols over path 21 in step 23.

Referring now to FIG. 5, there is shown the functional logic defining a PR maximum-likelihood symbol detector for a [d, k] PR channel. In this regard, a sampled readback signal e(t) is applied to the front-end logic 553 over path 551. A subtractor 557 eliminates the effect of the immediate past decision by removing any output artifact from the sample string S'. The output artifact (binary symbol) is fed back from output 571 over path 573. The output S of subtractor 557 is applied to a linear decision function matrix H to access an argument HS from the memory 561. Resolution is accomplished by applying HS to threshold element 565 and decision logic F in element 569 over path 563. The PR detector, when operating as a processor, preferably comprises at least a Pentium 2 microchip employing an IBM APL2 program product running under a Windows 95.RTM. operating system or equivalent. One APL program product that can be used is the IBM "APL2 for Windows", Product No. 5639-D46, Part No.4229558.

Aspects of an Interpretive Language Processor --APL

It should be appreciated that APL is a well-established interactive language system. It also serves as a system of mathematical-like notation. APL typically executes on a system including a keyboard, raster display, and an intercoupling processor. This includes the facilities to construct, modify, and execute software dynamically. This further includes the direct processing of entire data structures. This derives from the use of a general data structure, namely, the heterogenous array or matrix, with the consequential ability to define powerful operations on this structure. Descriptions of APL and its facilities may be found in Gilman et al., "APL: An Interactive Approach", 3rd Edition, John Wiley Publishing Company, 1984; Polivka et al., "APL: The Language And Its Usage", Prentice-Hall Publishing Company, 1975; and "APL,2 Programming: Language Reference", IBM publication SH20-9227-1. APL also operates in a stand-alone program execution mode, either interpretively or as compiled object code. An example of an APL processor communicatively executing in a stand-alone mode with other processors is set out in Brown et al., U.S. Pat. No. 4,736,321, "Communication Method Between an Interactive Language Processor Workspace and External Processes", issued Apr. 5, 1988.

Partial Geometric Interpretation of the Detection of Coded Binary Data from Sampled Digitized Analog Signals (PR Waveforms)

Referring now to FIG. 2, there is shown a geometric interpretation of nominal sampled points, an actual sampled point, and thresholds in two-space. Relatedly, if the permissible RLL-coded sampled points are written into an N-dimensional space, the relevant detection issue is to determine, among the cluster of points, which one was actually written or recorded for a given sequence of samples. Each nominal "point" represents a value sampled from a PR waveform of a given shape h at its Nyquist rate that is not affected by noise. Noise can be thought of as a "cloud" surrounding each of the points. The geometric task is to pass planes between the points in a predetermined manner to enable discernment or selection of one or more points based upon an optimization of an attribute, such as Euclidean distance.

Let us now consider a (1, 7) RLL modulation code having a shape in a 2-dimensional detection space. First, 2-dimensional space admits only two bits of information per sequence. Thus, of the four possible sequences, namely, 00, 01, 10, constraint of the [d, k]=(1, 7). That constraint states that there must be at least one "0" and no more than seven "0's" between consecutive "1's".

As may be recalled, the target sample values for an E.sup.2 PR4 waveform is 1-3-3-1. The three permissible RLL sequences 00, 01, and 10 constitute E.sup.2 PR4 waveform samples (0, 0), (0, 1), and (1, 3). These E.sup.2 PR4 waveform samples are shown mapped in the 2-dimensional plane shown in FIG. 2. In this plane, the ordinate and the abcissa are the x and y values, respectively. Thus, the permissible sequences (0, 0) and (0, 1) are mapped directly on the ordinate, while remaining (1, 3) value is located well into the space.

In the absence of noise, the sampled signal values as read back from the disk track would be one of those three, namely (0, 0), (0, 1), or (1, 3). However, in the presence of noise, the signal sample read back would be located at, say, y(x) in FIG. 2 between threshold 1 and threshold 2. The thresholds 1 and 2 are in the form of a plane transverse to cutting into the plane of the paper. Considering threshold 2 as the detection comparator of interest, if y(x) were located on the left side of the threshold nearest to the points (0, 0) and (0, 1), then sampled value y(x) would be decoded as a binary 0. On the other hand, if the sample y(x) were located on the right side of threshold 2 containing the point (1, 3), then y(x) would be decoded as a binary 1. It should be observed that threshold 2 maximally separates the points within a pair such as (0, 1) and (1, 3), and it also separates the other member of the group (0, 0) from (1, 3).

If threshold 1 were used, it would maximally separate pairs of points differently from that of threshold 2. Indeed, the location of y(x) would dictate a detection outcome different from that when threshold 2 was used. Significantly, a hyperplane should separate a pair of points equally distant and with at least the minimum Euclidean distance.

Geometric Interpretation of the Iterative Separation of Nominal (d, k) PR-coded Points in a High-dimensional Signal Space During the Definition Phase

Referring now to FIG. 3, there is shown the flow of control during the definition phase of the [d, k] partial-response detector. The object of this phase is to transform a selected set of starting parameters into any expanded set of constructs defining the detector and rendering it suitable for immediate operation. This phase starts at step 301 and it is iterative until all the pairs of points (permissible nominal sampled valued sequences) have been separated in an N-dimensional signal space by at least one hyperplane. The first steps are concerned with the generation of possible [d, k]=(1, 7) RLL sequences of length n. In this regard, step 305 seeks to generate permissible RLL code sequences m.sup.1.sub.j,n+1 that start with a binary 1 of length (n+1). Likewise, step 307 generates all permissible RLL code sequences m.sup.0.sub.k,n+1 that start with a binary 0 of length (n+1).

In FIG. 3, steps 309 and 311 convolve the generated permissible sequences m.sup.1.sub.j,kn+1 and m.sup.0.sub.k,n+1 with the PR channel impulse response h(t) to derive the permissible PR-shaped sequences S.sup.1.sub.j,n+1 and S.sup.0.sub.k,n+1 such that:

Where (d, k)=(1, 7), d.sup.2.sub.spec =7, for n=2, the permissible RLL sequences are 000, 001, 010, 100, and 101. The E.sup.2 PR4 shape of 1-3-3-1 yields a convolved channel response of (000), (001), (013), (133), (132) where the 0 starting sequences are (000), (001), and (013), while the 1 starting sequences are (133) and (132).

Step 313 calls for forming a list of (j, k) pairs satisfying two criteria, namely, a minimal Euclidean distance greater than a specified magnitude and that the pairs have not yet been separated by a hyperplane. For the above example, the following would be the list: (133)       (132) (000)              19          14 (001)              14          11 (013)              05 - marked 06 - marked next

This shows six pairs of points (j, k) and the distance d.sup.2 there between. Since it is presumed for this iteration that there are elements present in the list, control passes to step 317. According to this step, if the pair (013, 133) had been marked 0 as having been separated during a first iteration through steps 315, 321, 317, and 319 since it had the lowest distance, then the pair (013, 132) should be marked during the present iteration since it has the next lowest distance. This iteration is repeated until there are no more elements in the list. Control then passes to steps 325 and 327.

The steps ensure that all (j, k) pairs of points have been separated by at least one plane, and that a plane separating a pair of points in a higher dimension precludes the separation of the same pair of points by a plane in a lowered dimension. In the event that not all (j, k) pairs of points had been separated by at least one plane, then the dimension variable n is permitted in step 331 and the points are analyzed in the next higher dimension with the transfer of control over path 333 and returning to step 305. This is repeated until the desired separation of points has been effectuated as tested by step 327. Upon this condition being satisfied, the process terminates in step 329.

Analytic Control Flow in the Definition Phase Including Partitioning Nominal (d, k) PR-coded Sample Points, Computation of H, t, and F Expressions and Values

Referring now to FIGS. 4A-4C, there is shown an analytic control flow for the definition phase that parallels the functional description associated with FIG. 3. The inputs to the algorithm are the PR signal or wave shape h={hk} in step 401, the (d, k) RLL code constraints in step 405, and the minimum Euclidean distance d.sup.2.sub.min between the (d, k) PR signals (see above) and d.sup.2.sub.spec.ltoreq.d.sup.2.sub.min in step 403. The locution for the process during the n.sup.th iteration of converting these parameters into H, t, and F may be listed as follows:

(a) Generate a set of (d, k) coded binary vectors {m.sub.g,n+1 } of n+1 bits in length.

(b) Separate {m.sub.g,n+1 } into {m.sup.1.sub.j,n+1 } of sequences prefixed by 1 and {m.sup.0.sub.k,n+1 } of sequences prefixed by 0.

(c) Convolve (steps 412, 413, 421) each {m.sup.1 .sub.j,n+1 } and {m.sup.0.sub.k,n+1 } with the PR shape h and truncate the result beyond (n+1). Therefore all (n+1) clock signal vectors are generated such that S.sup.1.sub.n+1 ={S.sup.1.sub.j,n+1 } and S.sup.0.sub.n+1 ={S.sup.0.sub.k,n+1 }.

(d) Calculate (steps 415,417,419) Euclidean distance [d.sup.2.sub.j,k ] matrix D.sup.n whose rows and columns are labeled by the sets {S.sup.1.sub.n+1 } and {S.sup.0.sub.n+1 }, respectively.

(e) In Euclidean distance matrix D.sup.n, locate (steps 429, 431, 455, 430, 432) all entries d.sup.2.sub.j,k.gtoreq.d.sup.2.sub.spec where the signal pair {j, k} has not yet been separated by a hyperplane.

(f) Perform the following ad seriatim: d.sup.2.sub.j,k.gtoreq.d.sup.2.sub.spec and that has not yet been separated by a hyperplane. Otherwise, continue processing the elements of the set. set. plane h.sup.n.sub.j,k =s.sup.0.sub.k,n+1 -s.sup.1.sub.j,n+1.

With the threshold given by the vector product: S.sup.1.sub.j,n+1) that has not yet been marked as a "don't care", calculate the distances of their projections from the threshold t.sup.n.sub.j,k -(h.sup.n.sub.j,k, s.sup.0.sub.k,n+1) and t.sup.n.sub.j,k -(h.sup.n.sub.j,k -s.sup.1.sub.j,n+1) and mark those pairs {g, q} for which the above numbers equal or exceed d.sup.2.sub.spec /4 as "don't cares". is empty.

(g) Check overlaps with previous hyperplanes and eliminate old hyperplanes provided the new ones covered the signals they have separated. This is achieved by maintaining a Boolean and pointer matrix F.sup.n-1 whose rows are labeled by the hyperplane filters h.sup.n.sub.j,k and whose columns are labeled by all the pairs of signals (s.sup.0.sub.k,n+1, s.sup.1.sub.j,n+1). The entries in this matrix are either 1 if the filter that labels the row also separates the pair {j, k} that labels the column, or 0 otherwise. The pointer matrix F.sup.n-1 keeps track of the overlaps. These are used to generate the update from H.sub.n-1 to H.sub.n. Thus, the addition of a new filter made results in deletions of previous filters provided the new filter covers the signal sets separated by previous ones.

This algorithm calculates an integer matrix H, a real threshold vector t, and a Boolean logic equation F. These are used to configure the PR detector shown in FIG. 5.

APL Software-oriented Dynamically Defined and Operating (d, k) PR Detector

Referring now to FIGS. 6A-6H, there is shown a software-based embodiment of a (1, 7) E.sup.2 PR4 symbol detector configured as APL code executable in any requisite Von Neumann processor or the like. The APL code dynamically defines the (d, k) partial-response detector, configures the processor, and operationally performs as a PR detector according to the invention.

The APL routines set out in FIGS. 6A-8H defining the PR detector, configuring it and operating it are heavily commented and are expressed in the form of APL-defined functions and operators. The following general comments are offered to clarify and explain aspects of the APL language syntax which may facilitate understanding of the software execution dynamics.

The APL language was based on simple homogenous array data structures of type number or character. In today's APL2 version, the homogenous array has been generalized to a herterogenous array. This means that an array can include literal as well as numerical values. APL is characterized as being an interactive language and one that can directly process entire data structures. In APL, the primitive operations accept whole arrays of arguments and produce whole arrays of results. A large class of primitive operators are built in, including many which create, destroy, and modify arrays. Each APL primitive is defined as a function which returns a value. From these primitive functions, extremely powerful expressions may be constructed.

APL control structures are simple. Within expressions, there is no hierarchy of operations and right-to-left associativity is used. Between statements and some programs, a simple "go to" is provided. This allows a computed statement number "[#]" and recursive subprogram calls. Subprograms are subjected to at most two arguments transmitted by value and a single result. However, the ability to accept array arguments and return array results in any subprogram makes these restrictions relatively minor.

Subprograms have the form of a simple sequence of statements, each of which has a system-generated line number and which may, in addition, have an extrinsically supplied label. Go-to statements may designate their object either by a line number or statement label. A subprogram may have a designated set of local identifiers. Existing associations for these identifiers are deactivated on subprogram entry and reactivated on subprogram exit. Nonlocal referencing obeys the most recent association rule. APL does not use the concept of a main program. Subroutine execution is initiated by a call from another subprogram. For external storage, programs and data are grouped into "workspaces".

Each workspace may contain various programs and data structures. System commands are provided to allow workspace to be brought into central memory from external storage and stored back again after being updated. A typical APL implementation historically has been based on interpretive program execution. Two per static storage area are allocated, one for system routines and one for the current workspace. The workspace area contains some static storage for system data and three dynamic storage areas. These include a stack for subprogram activation records such as local referencing environments and return points, a heap for array storage and storage of bodies of defined subprograms, and a table of global identifier associations. Arrays are stored with full run-time descriptors in the usual sequential simulation.

Referring now to FIG. 6A, there is shown the APL-defined function "DOALL". Significantly, this function defines, configures, and invokes PR detector operations in a single pass. This is accomplished by calling three key-defined subordinate functions, namely, "GENdelPLANES", "GENdelLOGIC", and "READ" at lines [20], [23], and [26], respectively. The GENdelPlanes and GENdelLOGIC functions are directed to generating hyperplanes and threshold values for defining the PR detector. The READ function configures and operates the PR detector.

In DOALL, the starting parameters are assigned at various points in the sequence. For instance, the PR shape factor h=1 3 3 1 is assigned as a vector in line [10]. The Euclidean distance d.sub.spec.sup.2 =8 is assigned as a value in line [14]. The parameter (d, k)=(1, 7) is used implicitly by virtue of a call to a defined function "GENJK" embodying that parameter as set out in FIG. 6C and line [16] thereof. In this regard, the DOALL function assigns variables to these parameters and then proceeds to call the defining functions GENdelPlanes and GENdelLOGIC. It subsequently calls the READ function in line [26] for processor configuration and detector operation.

Referring now to FIG. 6B, there is shown the GENdelPlanes defined function for generating hyperplanes and threshold values. Significantly, the hyperplane coefficients are set out in an H matrix at line [55], while the thresholds t are set out in the compare instruction at line [58]. The flow of control is generally patterned after the flow shown in FIG. 3.

Relatedly, the APL-defined functions and FIGS. 6C-6D operate in either a subroutine or coroutine relationship with the hyperplane threshold value generating functions GENdelPLANES. Of some interest is the fact that the defined function GENJK in FIGS. 6C-6D maintains the matrix of all valid binary-valued codewords of length n starting with a binary 1 or a binary 0 satisfying a (d, k)=(1, 7) constraint in lines [3]-[6]. Also, these vectors are convolved with the PR shape factor h in lines [29]-[30]. The Euclidean distances between each vector are calculated in lines [34]-[37].

Referring now to FIG. 6E, there is set out the defined function GENdelLOGIC for deriving the logic required to determine if received points sampled from a recorded or transmitted PR waveform should be decoded as a binary 0 or a binary 1. In this function, the logic equations are specified in a variable denominated as "JCOVER" as explained in the comments between codelines [4]-[21]. The critical result is denominated as the logic F is presented for communication to other defined functions on codeline [40].

Referring now to FIG. 6F, there is shown a set of ancillary APL-defined functions in subroutine or coroutine relation with the GENdelLOGIC defined function. These include functions for deriving logic equations producing a cover in which a predetermined number of points do not exist to routine-producing logic inversion and implementing DeMorgan's theorem.

Referring now to FIGS. 6G-6H, there are set out the APL-defined functions for configuring the processor according to the filter H, the thresholds t, and the decision logic F, and for operating the processor as the [1, 7] E.sup.2 PR4 detector. The sample data appears in FIG. 6G at codeline [14]. The sample data is processed through the H filter by multiplying the sample data vector by the H matrix at codeline [23]. The filter or output is compared with threshold values at codeline [27]. The detected or decoded vector results are generated at codeline [31]. Thus, if a sample datapoint were located above a hyperplane, then it would be decoded as a binary 1, while if relocated below the given hyperplane, it would be decoded as a binary 0. It should be noted that the Encode APL-defined function in FIG. 6H influences the Adler-Hassner encoding algorithm set out in Adler et al., U.S. Pat. No. 4,413,251, "Method and Apparatus for Generating a Noiseless Sliding Block Code for a (1, 7) Channel with Rate 2/3", issued Nov. 1, 1983.

FIG. 7 illustrates a hard-wired embodiment of a (1, 7) E.sup.2 PR4 symbol detector configured as a transversal filter and combinatorial logic according to the definition phase of the invention. The logic equations F are included in the figure for purposes of completeness.

While the invention has been described with respect to an illustrative embodiment thereof, it will be understood that various changes may be made in the method and means herein described without departing from the scope and teaching of the invention. Accordingly, the described embodiment is to be considered merely exemplary and the invention is not to be limited except as specified in the attached claims.

## Claims

1. A method for maximum-likelihood (ML) detection of binary-valued sequences from a (d, k) partial-response (PR) coded analog waveform comprising the steps of: predetermined set of PR-related parameters according to a geometric model interpreting nominal noise-free sample points and thresholds in a multidimensional signal space; and detector and assigning a binary-coded sequence associated with that nominal noise-free sample point closest to the actual sampled signals on an ML basis wherein said geometrical model utilizes hyperplanes selected via adaptive optimization to partition nominal noise-free sample points according to Euclidean distance metrics as thresholds.

2. The method according to claim 1, wherein said PR detector includes a processor and a resident interpretive language having a set of array manipulating promitives, defined functions, and a locus of control to effectuate definition, configuration, and operation of said PR detector as a function of subroutining and coroutining among the defined functions.

3. A method for maximum-likelihood (ML) detecting of binary-valued sequences from (d, k) partial-response (PR) coded analog waveforms comprising the steps of: having a particular linear decision function matrix H, a threshold binary decision function t, and a decision logic F, said expressions being derived from a predetermined PR shape h, modulation code (d, k), minimum Euclidean distance d.sup.2.sub.min of (d, k) coded PR waveforms, and minimum distance d.sup.2.sub.spec.ltoreq.d.sup.2.sub.min for a specified detector lookahead performance, and defining a particular instance of an ML detector in a processor as a function of the set of expressions; calculating, in parallel from the analog waveform, symbols constituting analog-valued vectors by integrating, in parallel, the analog signal weighted by a preselected set of weighting functions orthogonal over a time duration representing a symbol period that is an integral multiple of a bit-clock period; and analog-valued vector closest to the analog-valued vector of the instant waveform on an ML basis.

4. The method according to claim 3, wherein step (a) further comprises the substeps of invoking an emulation of a finite lookahead decision feedback ML detector by an interpretive language processor, and configuring the detector emulation with the set of expressions.

5. The method according to claim 4, wherein the language processor is formed from an interpretive language processor having a set of array manipulating promitives, defined functions, and a locus of control to effectuate definition, configuration, and operation of said PR detector as a function of subroutining and coroutining among the defined functions.

6. The method according to claim 5, wherein said interpretive language processor is selected from a set consisting of APL, NIAL, BASIC, FORTH, and C programming language subsystems.

7. The method according to claim 3, wherein the step of deriving the set of expressions for H, t, and F from the predetermined PR shape h, modulation code (d, k), and Euclidean distances d.sup.2.sub.min and d.sup.2.sub.spec.ltoreq.d.sup.2.sub.min, comprises the substeps of: and m.sup.0.sub.k,n+1, respectively, starting with a binary 1 and with a binary 0; S.sup.0.sub.k,n+1 by convolving the sequences m.sup.1.sub.j,n+1 and m.sup.0.sub.k,n+1 with the PR shape h(t) response; S.sup.0.sub.k,n+1 and their Euclidean distances d.sup.2.sub.j,k,n+1.gtoreq.d.sup.2.sub.spec and passing a hyperplane construct between that pair having the smallest distance d.sup.2.sub.j,k,n+1, removing the pair from the list, and repeating the step of passing hyperplanes until list exhaustion; been separated by at least one hyperplane including reiteration of steps (a1)-(a4).

8. The method according to claim 7, wherein the step (a4) includes the steps of: S.sup.0.sub.k,n+1 by a hyperplane in a first dimension; a second and lower-order dimension; and S.sup.1.sub.j,n+1 and S.sup.0.sub.k,n+1 in the second- and lower-order dimension.

9. A method for maximum-likelihood (ML) detecting of binary-valued sequences from a (d, k) partial-response (PR) coded analog waveforms comprising the steps of: modulation code (d, k), minimum Euclidean distance d.sup.2.sub.min of (d, k) coded PR waveforms, and minimum distance d.sup.2.sub.spec.ltoreq.d.sup.2.sub.min for a specified detector lookahead performance, said information constructs include: partitioned into an N-dimensional signal space according to predetermined hyperplanes, the location of the planes being arranged with reference to bisecting pairs of values satisfying the Euclidean distance constraints in at least one of the dimensions of the N-dimensional signal space, binary value decision for any given location of any actual PR sample, and of each binary-valued decision; calculating, in parallel from the analog waveform, symbols constituting analog-valued vectors by integrating, in parallel, the analog signal weighted by a preselected set of weighting functions orthogonal over a time duration representing a symbol period that is an integral multiple of a bit-clock period; and analog-valued vector closest to the analog-valued vector of the instant waveform on an ML basis.

10. An apparatus for maximum-likelihood (ML) detection of binary-valued sequences from a (d, k) partial-response (PR) coded analog waveform comprising: configured for operation as a (d, k) PR detector from a predetermined set of PR-related parameters according to a geometric model interpreting nominal noise-free sample points and thresholds in a multidimensional signal space; as a defined and configured PR detector; and sequence associated with that nominal noise-free sample point closest to the actual sampled signals on an ML basis.

11. An article of manufacture comprising a machine-readable memory having stored therein a plurality of processor-executable control program steps for maximum-likelihood (ML) detection of binary-valued sequences from a (d, k) partial-response (PR) coded analog waveform, said control program steps include: configuring a (d, k) PR detector from a predetermined set of PR-related parameters according to a geometric model interpreting nominal noise-free sample points and thresholds in a multidimensional signal space; and defined and configured PR detector and assigning a binary-coded sequence associated with that nominal noise-free sample point closest to the actual sampled signals on an ML basis.