OPTICAL GUIDED WAVE SIGNAL PROCESSOR FOR MATRIX-VECTOR MULTIPLICATION AND FILTERING

Abstract: An array (48, 49, 50, 51) of fiber optic couplers coupling an input (45) and an output (46) waveguide. The output waveguide (46) is routed among the couplers of the array such that either backward or forward coupling exists. With backward coupling, energy coupled into the output wave­ guide (46) in a coupler of the array is guided back to the preceding coupler for coupling back into the input wave­ guide (45). The backward coupling allows recirculations to occur between couplers to create poles and zeroes in the transfer function of the array which transfer function can be program­ med or tailored somewhat to have specific characteristics. Further, the backward coupling allows the array to be used for matrix-vector multiplication.

Description: OPTICAL GUIDED WAVE SIGNAL PROCESSOR FOR MATRIX-VECTOR MULTIPLICATION AND FILTERING Background Of The Invention The invention relates generally to the field of optical guided wave signal processors and, more specifically, to array processors for pipeline architectures capable of matrix-vector multiplication, lattice, transversal and matched filtering. The need for more and more data processing speed grows with increasingly complex applications. For example, in computer systems that process images from TV cameras for robotic vision, a vast amount of information is generated which must be processed. This vast quantity of information can overwhelm an ordinary computer, leading to unacceptable processing times. One way of speeding up such processing is through pipeline architecture for computers. Pipelining is a hardware configuration, i.e., architecture for a computer, involving a plurality of processors linked into an array to achieve higher performance. This is done by breaking up complex, time-consuming functions into a series of simpler, shorter operations, each of which can be executed in assembly line fashion with simultaneous computation on different sets of data by the different processors. The improvement in performance is directly proportional to the number of pipeline processors in the array that are simultaneously kept busy doing part of the task. Pipelining is most effective in special purpose applications which can use array processors. The concept of systolic arrays for computing data as signals pass through system has been proposed in the prior art for network processing. Such a concept is discussed by Mead & Conway in Introduction To VLSI Systems, Section 8.3, Addison Wesley Publishing Company (1980). Systolic arrays have building blocks which are processors which are ganged together for matrix-vector operation. A vector is a multi-element mathematical quantity where each element represents and quantifies one characteristic of the vector; the overall set of elements completely defines the vector, e.g., V = (a, b, c) where a, b and c define V as by the cartesian coordinates of the tip of V in three dimensional space. An array is an architecture where all, or substantially all, the processors are kept active during the computation doing small pieces of it. Such arrays make multiple uses of each input data coefficient, as well as partial outputs or intermediate results. High throughput can be achieved in this fashion without requiring high bandwidth between the array and the host processor which is controlling the array processors. Array processors are most effective in solving well defined sets of problems. Such problems include fast Fourier transforms, matrix-vector operations, and correlation or convolution operations. These processors can find effective use in computed tomography, image enhancement, image analysis, speech analysis and signal processing in general. Signal processing often involves matrix-vector multiplication to implement the convolution and correlation mathematical operations. For example, in processing video images for robotic vision systems, it is often desirable to find the edges of objects. An image can be thought of as an array of pixels or individual data elements of varying intensity arranged in rows and columns. There is a particular mathematical operation of a convolution type which can be used to find edges in an array of pixels because convolution changes an image from a representation of light intensity variations over a scene to a representation of the rate of change of light intensities over a scene. It is therefore possible to find edges in the image since the rate of change of light intensity is usually greatest at the edges of images in the picture. The convolution operation can be carried out with a matrix-vector multiplication involving a Toeplitz matrix. Matrix-vector multiplication implemented correlation plays an important part in many signal processing applications. For example, in communicating with satellites or whenever noise is present on communication lines, the mathematical correlation operation can be used advantageously to increase the integrity of the communication. Correlation can be physically thought of as a comparison of the pattern of the signal received to a known pattern representing command or data and finding the best match to determine what was received and when it was received. Correlation also involves a matrix-vector multiplication operation with a Toeplitz matrix. Matrix-vector operations can be accomplished with a series of so-called inner product step operations, i.e. C < ---- C + A x B. An inner product step processor is a device to implement the above algorithm or inner product step function. Because of increasing quantities of information that must be processed in many applications now coming to the fore, such as speech recognition and image processing, a need for greater information processing capability has arisen. Optical signal processors which can perform matrix-vector multiplication are desirable because of the increased information carrying capability of light waves. Various optical array processors have been described in the prior art. Among them are processors described by Caulfield et al., "Optical Implementation of Systolic Array Processors", Optics Communications, Vol. 40, No. 2, pages 86-90, December 15, 1981; Casasent, "Acoustooptic Transducers in Iterative Optical Vector-Matrix Processors", Applied Optics, Vol. 21, No. 10, May 15, 1982; Taylor, "Fiber and Integrated Optical Devices for Signal Processing", SPIE Vol. 176, Guided Wave Optical Systems and Devices, II (1979), pages 17-27. E. Marom in IEEE Transactions on Circuits and Systems, CAS-25, 360-364 (1978) described a matched filter coding method using a fiber optic structure involving two fiber optic waveguides carrying light in the same direction and cross coupled by a plurality of directional couplers. The fiber optic waveguides were multimode. This structure was said to have matched filter properties. The Marom structure differs from the structure herein because of the direction of light propagation in the output fiber which results in no feedback recirculation between couplers. Marom also used multimode fiber. Summary Of The Invention The invention described herein is an array of optical inner product step processor which can perform matrixvector multiplication and filtering. Up to 109 multiplications per second can be achieved with the invention with currently available components for matrixvector multiplications which involve Toeplitz matrices, i.e., matrices which have the property that all entries on any line parallel to the diagonal are the same. The invention can also function as a programmable lattice filter with a transfer function having programmable locations for its poles and zeroes. The invention is comprised of two monomode optical waveguides which are cross coupled by a plurality of fiber optic directional couplers located at various positions along the fiber. The two fibers carry light signals traveling in opposite direction through the array. Each coupler has four ports, each fiber passing through two of said ports. The couplers can be tuned to vary the coupling and transmission operators which describe the coupler in terms of the amount of power on each fiber coupled to the other fiber and the amount of power remaining in the original fiber. A coupler can be described by the operators , r, t, p. These operators are defined in terms of the amount of light transmitted through the coupler on each fiber, and the amount of light cross coupled from each fiber to the other. The fibers between the couplers can be helically wound to implement varying delay between the couplers. The direction of the windings can be varied such that either forward or backward feedback coupling is provided. Backward coupling can provide an optical systolic array processor in the form of an inner product step processor and can act like some lattice filters. Brief Description Of The Drawings Figure 1 is a symbolic diagram of an inner product step processor. Figure 2 is a linear array of four inner product step processors. Figure 3 shows a matrix-vector multiplication such as could be performed by the array of Figure 2. Figure 4 shows the method of using the processor array of Figure 2 to perform the matrix-vector multiplication of Figure 3. Figure 5 shows the configuration of the array and input and output vector element positions in each step of the matrix-vector multiplication algorithm embodied by the array of inner product step processors. Figure 6 shows the matrix-vector multiplication representing the convolution of the matrix A and vector x. Figure 7 shows the matrix-vector multiplication representing a four-tap finite impulse response filter. Figure 8 represents the computation to derive the discrete Fourier transform of the vector x. Figure 9 shows an array of fiber optic inner product step processors. Figure 10 shows a physical embodiment of a lattice filter and matrix-vector multiplier utilizing an array of fiber couplers and two fibers so arranged as to provide feedback coupling from the output fiber back into the input fiber. Figure 11 shows a physical implementation of a transversal filter using an array of couplers and two optical fibers arranged to provide forward coupling. Figure 12 shows an embodiment of the couplers 48-51. Figure 13 shows a cross section of the coupler of Figure 12 at the section line 13-13 in Figure 12. Figure 14 shows a cross section of the coupler of Figure 12 taken along the section line 14-14 in Figure 12. Figure 15 shows a perspective view of one plate of the coupler of Figure 9 showing the manner in which part of the fiber cladding is lapped away. Figure 16 illustrates the critical zone of coupling in the couplers. Figure 17 shows a tapped delay line which, in combination with another of its type, could be used as a substitute for the individual couplers in the arrays of Figures 10 and 11 to implement a filter. Figure 18 shows a cross sectional view of the Figure 17 structure along the view line 18-18 in Figure 17. Figure 19 shows a closeup view in cross section of the first three grooves of Figure 18. Figure 20 is an alternative embodiment for either of the structures of Figures 10 and 11. Figure 21 is a cross sectional view of the structure of Figure 20 in the optical coupling region at the view line 21-21. Figure 22 is a matrix-vector multiplication problem which illustrates the use of fiber optic couplers to perform as inner product step processors in an array. Figure 23 is the array of fiber optic couplers which can be used to perform the matrix-vector multiplication of Figure 22. Figure 24(A)-(D) illustrate how the array of Figure 23 performs the operation of Figure 22. Figure 25 shows an apparatus for performing the matrix-vector multiplication illustrated in Figures 22-24. Figure 26 shows an actual matrix-vector multiplication problem that was used experimentally to verify the correct operation of the system depicted in Figure 25. Figure 27 illustrates the light pulses actually observed that were input to the system of Figure 25 and the pulses observed at the output. Figures 28 and 29 illustrate another matrix-vector multiplication example and the light pulse intensities actually observed. Detailed Description Of The Preferred Embodiment Figure 1 shows a symbolic diagram of a basic inner product step processor 20. This processor performs the inner product step algorithm: c EMI7.1 C+AxB (1) where A, B and C are signals. In an electronic embodiment, the inner product step processor could be visualized as having three storage registers, each register having an input and an output connection. The basic unit of time for an array of such inner product step processors would be the time it takes one processor to perform the inner product step of Equation (1). In each unit time interval, the step processor 20: shifts the data on its input lines denoted by A, B and C into the three registers RA, RB and RC; computes the inner product step RC EMI7.2 RC + RA x RB, where the arrow indicates that the final result is stored in register C; and makes the values stored in RA, RB and RC available on the output lines denoted A, B and C. Such an inner product step processor is capable of matrix-vector multiplication when a plurality of them are connected in an array with each inner product step processor coupled to neighboring step processors. Figure 2 shows such a processor array 21 where blocks 22, 24, 26 and 28 are all inner product step processors. A linear array such as shown in Figure 2 is a convenient organization for matrix-vector operations. Matrix-vector multiplication involves multiplication of the data elements of the vector by the rows of a matrix to obtain an output vector. Correlation and convolution, both fundamental operations in signal processing, each can be done by matrix-vector multiplication. Figure 3 shows a matrix 30 and vector 32 multiplied to obtain an output vector 34. The matrix 30 is comprised of a plurality of rows, q, and columns, p, consisting of individual coefficients. These coefficients can represent the coefficients aik of polynomial elements, pixel intensities or any one of a number of other possibilities. The input vector 32 has the data elements (xl, x2 ... xn) at the time t, while the output vector 34 has the elements (Y1, y2 ... Yn) at the time t. The matrix-vector product can be computed by the following iterations: (1) = O (2) y (k+l) = (k) + aik Xk where Equation (2) means that the elements of the output vector at time 1 are initially O's, and Equation (3) indicates the inner product step operations that are performed in the processor array to determine the subelements of the elements of the output vector. Each y1(K+l) becomes the input signal for the next processor in the array as becomes clear during the discussion of Figures 4 and 5. In Figure 3, the matrix 30 is an n x n band matrix having a band width of w = p + q - 1, but the below described method of performing the matrix-vector multiplication will work equally well with an n x n dense matrix where none of the coefficients are zero. The matrix-vector multiplication represented by Figure 3 can be physically implemented by pipelining the elements x and yi of the vectors x and y through w linearly connected processors such as the array shown in Figure 2. Figure 4 shows the method of using the linear array of processors of Figure 2 to perform a matrix-vector multiplication such as is shown in Figure 3. The general scheme of Figure 4 is to move the elements of the vector y, which are initially zero, to the left on an output line 36 while the elements of the vector x are moving to the right on an input line 38 and the coefficients aik on the diagonals and offdiagonals in a staggered order of the matrix 30 are moving down into the processors 22, 24, 26 and 28. All moves are synchronized. Each element yi of the output vector y is able to accumulate all of its subterms before it leaves the network. That is, each element yi of the output vector y is the summation of the product of each coefficient in the corresponding row i times the corresponding element in the input vector x such that each element Yi equals the summation of all subelements Si with a corresponding coefficient of the row For example, in Figure 3, Y1 = all xl + al2 X2 and y2 = a21 xl + a22 X2 + a23 X3. A better understanding of Figure 4 may be obtained by referring to Figure 5 in conjunction with Figure 4. Figure 5 shows the configuration of the processor array and positions of the elements of the input and output vectors in the array during each step of the matrix-vector multiplication algorithm shown in Figure 4 embodied by the array of inner product step processors 22, 24, 26 and 28. The array of inner product step processors receive the elements xi of the input vector x on the line 38 and the elements of the output vector y leave on the line 36. Initially, all registers in the processors 22, 24, 26 and 28 contain zeroes. For convenience, the register or storage element containing the y vector element will be symbolized by the space in the top part of each processor while the register containing the x vector element will be symbolized by the lower space in the processor. The register or storage device containing the coefficient from the matrix 30 is symbolized by the middle section of the box representing each processor. The time steps of the algorithm are shown in Figures 5(a) - 5(g). In Figure 5(a) representing time step 1, element y, is fed into processor 28. In Figure 5(b) or time step 2 element x, is fed into processor 22 while element y, is moved left one place into the processor 26. In each following time step elements xl and Y continue to move right and left respectively. Figure 5(c) or time step 3 shows the coefficient all, from the matrix 30, entering the processor 42 where Y1 is updated so that: Y1 = Y1 + all X1 (4) where Y1 is the Y1 on the line 36 arriving from the processor 26. Thus: Y1 all 1 (5) after the third time step. In the fourth time step shown in Figure 5(d), the coefficients al2 and a21 enter the processors 22 and 26 respectively while the x2 input vector element enters the processor 22 and the y2 output element enters the processor 26 having entered the processor 28 during the third time step. In the processor 26 the inner product step is performed so that: Y1 = Y1 + awl2 X2 (6) But Y1 = all xl from Equation (5) by the action of the processor 42 in time step 3. So Y1 becomes: Y1 all xl + a12 X2 (7) just before it leaves the processor 22 in the next, i.e., or fifth time step. Note that Equation (7) is the complete expression for the element Y1 in the matrixvector multiplication of Figure 3. Meanwhile, also during fourth time step, the first subcomponent or term of y2 is being generated in the processor 26 as: Y2 = a21 X1 (8) During the fifth time step shown in Figure 5(e), Y1 is output, and x2 and Y2 enter the processor 24 as does the coefficient a22. The inner product step performed by the processor 24 makes: y2 a21 X1 + a22 x2. (9) Also during the fifth tire step, y3 enters the processor 28 as does the coefficient a31 and the input signal xl so that y3 becomes: y3 = a31 xl (10) During the sixth time step, shown in Figure 5(f), y2 becomes: y2 = a21 xl +a22 x2 + a23 X3 (11) and y3 becomes: : Y3 = a31 xl + a32 X2 (12) During the seventh time step, shown in Figure 5(g), y2 is output and y3, by the action of the processor 24, becomes: y3 = a31 xl + a32 X2 + a33 x3. (13) and y4, x2 and a42 enter the processor 28 such that y4 becomes: y4 = a42 X2 (14) The algorithm continues in this manner until the matrixvector multiplication is complete. In essence then, the matrix-vector multiplication illustrated in Figures 3-5 involves introducing, at different times, the coefficient on each diagonal of the matrix 30 into one of the processors in the array such that each processor has its multiplication coefficient established as the matrix coefficients on one of the diagonals in the matrix 30. The coefficients in the diagonals are arranged into columns in Figure 4 and the elements in the columns are staggered so that as the columns "move" down vertically into the processors, the coefficients arrive in the processors at the proper time, i.e., all arrives in the processor 24 during the third time step, while al2 and a21 arrive in the processors 22 and 26 respectively during the fourth time step. The applicant has realized that a fiber optic directional coupler can be used for the processors 22, 24, 26 and 28 where the matrix coefficients establish the coupling between the optical fibers passing through the coupler and the summation occurs optically on the output fiber where the timing of coupling new terms matches the arrival of previously generated terms generated in other couplers. The elements of the input vector can be introduced into these couplers on one of the waveguides as light signals with characteristics such as intensity which represent the magnitude of the elements of the input vector. In two fiber embodiments, the input vector elements xi are introduced serially on the input fiber 38. As the elements Xi progress through the coupler array, they arrive at times coinciding with the arrival times of various coefficients on the diagonals of the matrix. Each such "interception" or simultaneous arrival results in the generation of one term or subelement of one of the elements yi of the output vector y. For example, the output vector element y2 is comprised of three summed terms = a21x1, a22X2 and a23x3. Each of these three terms is generated in a different coupler at a different time by the simultaneous arrival of the two operand, e.g., a21 and xl. The term is generated by the coupling of an amount of power from x1 into the output fiber which is equal or proportional to the coefficient a21. That is, the arrival of the coefficient a21 in the processor 26 during the fourth time step (step 3, Figure 5(d)) is physically implemented in a fiber optic coupler by tuning the coupler such that it couples a selected amount of the power of xi into the output fiber. The selected amount is related to the magnitude of the coefficient a21. In some cases, it will equal a21. Note that in the embodiment of Figures A and 5, the three terms of y2 are generated at three different times in three different processors, e.g., time steps 4, 5 and 6 in processors 26, 24 and 22, respectively. In other embodiments the interceptions representing each term might all occur simultaneously in different processors, or seriatem in the same processor. One such alternative embodiment is discussed next. In another embodiment, separate fibers could be coupled between the input signal source and the coupler array such that each coupler simultaneously received one of the input vector elements and at the same time received one coefficient from a selected row. The couplers would couple an amount of power into an output fiber proportional to or equal to the matrix coefficient from the row element assigned to that coupler. These coupled signals, consisting of the terms or subelements of the output vector element corresponding to the selected row, would be summed to provide the selected output vector element. This summation could be done by individual output fibers matched in length and leading to a detector such that all terms or subelements of the output vector element being generated arrive at a single detector simultaneously and are summed therein. Alternatively, a single output fiber could be used passing through all the couplers and coupled to a single photodetector. The terms of the output vector element, which would arrive at different times because of the different distance between each coupler and the detector, could be individually detected and converted to an electrical signal which could be stored in a memory until all the terms were in and then summed with all the other terms to arrive at the final value for the output vector element. Other methods of optically or electrically summing the terms of each output vector element will be apparent to those skilled in the art. A key step in the above-mentioned methods of performing a matrix-vector multiplication involve timing the introduction of the input vector elements and the arrival of the matrix coefficients in the various couplers such that all the terms of the output vector element are generated either simultaneously or seriatem before leaving the array and that multiple processors be used to share the work of generating the terms. That is, the timing of the introduction of the input light signals and the arrival of the matrix coefficients in the various couplers that all the proper input elements intercept all the proper matrix coefficients, either simultaneously or at different times, such that all the terms or subelements of an output vector element are eventually generated by multiple processors in less time than it would take one processor to do all the multiplications. The subelements are then optically or electrically summed to derive the final output vector element. It can be seen from the algorithm of Figures 4 and 5 that, for a band matrix of band width w = p + q - 1, the elements Yi of the output vector start shifting out after w units of time and continue thereafter to shift out at the rate of one element for every two units of time. Therefore, the array of inner product step processors can compute the w components of y in 2n + w units of time compared to the much larger time that would be needed for a single processor to do the same job. The problems of computing convolutions, finite impulse response filters and discrete Fourier transforms are but special cases of the above algorithm, and therefore, can also be formulated as matrix-vector multiplication problems involving Toeplitz matrices. Thus, these problems can be solved rapidly by the processor array and algorithm above discussed. A Toeplitz matrix is a matrix which has the property that all the entries on the main diagonal or any offdiagonal, i.e., a line parallel to the main diagonal, are all the same. The convolution problem is the matrix-vector multiplication where the matrix is a triangular Toeplitz matrix such as is shown in Figure 6. Figure 6 represents the matrix-vector multiplication representing the convolution of the vectors a and x. A p-tap finite impulse response filter can be viewed as a matrix-vector multiplication where the matrix is a band upper triangular Toeplitz matrix with band width w = p. Figure 7 represents the matrix-vector multiplication representing a four tap filter. A discrete Fourier transform can be computed as shown by the matrix-vector multiplication of Figure 8. Figure 8 represents the computation to derive the discrete Fourier transform of the vector x. As mentioned above, the above-described processor array and algorithms can be implemented using single mode, fiber optic waveguides and tunable, fiber optic directional couplers. Frequency capabilities well above a gigahertz have been demonstrated in fiber optic recirculating and tapped delay lines. Further, the low dispersion in single mode fiber gives extremely high modulation bandwidths. Figure 9 shows a diagram of a single mode, fiber optic processor array which is comprised of a plurality of fiber optic inner product step processors. The array consists of two single mode fiber optic waveguides consisting of an input fiber 45 and an output fiber 46. Several couplers 48-51 are distributed along the length of the fiber. Each of the couplers 48-51 has four ports, A-D. There are two inputs, A and D, and two outputs, B and C. The input fiber 45 enters the array 52 as the light signal Lup whereupon it enters the port A of the coupler 48 traveling from left to right and exits from the port C of that coupler. The input fiber 45 continues through the array from left to right carrying the L up light signal into the A ports and out from the C ports of each of the couplers 48-51 finally leaving the array as the signal Rup from the port C of the coupler 51. The output fiber 46 is a single mode fiber which enters the array 52 at the port D of the coupler 51 as the signal Rdown traveling symbolically from right to left. As will be seen above, the light signals, in reality, travel in both fibers in the same direction through each coupler, but the output fiber is coiled so as to feed coupled energy from the input fiber back to the previous coupler for coupling back into the input fiber. The output fiber 46 continues through the array entering each coupler at the port D and leaving each coupler at the port B. The output fiber 46 leaves the array from the port B of the coupler 48 as the Ldown signal. The length of the optical fibers between the couplers 48-51 and the number of couplers in the array depends upon the particular application for which the structure is intended. The directional couplers 48-51 may be as described by Bergh, Kotler and Shaw, in "Single Mode Fiber Optic Directional Coupler," Electronic Letters, Vol. 16, Ilo. 7, March 27, 1980, and U.S. patent application Serial No. 139,511, filed April 11, 1980, entitled "Fiber Optic Directional Coupler", the details of which are hereby incorporated by reference. Such couplers are adjustable such that the amount of light energy coupled between the fibers can be varied from 0% to 100%. The couplers 48-51 are linear, symmetric devices whose optical characteristics can be described by the operators t, p, r and T. Referring to the coupler 48 as exemplary of all the couplers in Figure 9, the four above-mentioned operators are defined in terms of the input and output signals from the coupler 48. That is: Ldown = r1 Lup ll Rdown (15) and Rup tl Lup + P1 Rdown (16) Equations (15) and (16) ignore losses in the coupler which are generally 5% or less. In physical terms, Equation (15) means that the light power of the light wave at port B at any instant is equal to the light power of the wave entering port A times the tunable coupling operator rl plus the light power of the wave entering at the port D times the transmission operator X less losses. The operator P1 is equal to r, because the coupler is symmetric. Likewise, the light power of the light wave leaving at port C is equal to the light power entering at port A times the transmission operator tl plus the light power entering at the port D times the feedback coupling coefficient Pl less 5% or less losses. The operators rl and tl are related as are 1 and Pl because of conservation of energy. That is: rl + tl = 100% approximately (17) and P1 + T1 = 100% approximately (18) Error should be within 5% because of losses in the coupler. Energy entering the coupler is neither created nor destroyed; thus, the same amount of energy that enters each coupler, less some small losses, must leave the coupler. Thus, when r1 and P1 are tuned to couple more power between the fibers, the operator tl and T1 decrease in proportion to the increase in rl and Pl The structure of Figure 9 represents the first known fiber optic, systolic array processor. With feedback coupling present, the structure of Figure 9 can also act as a lattice filter within certain limits. That is, a lattice filter is formed by every recirculation loop between two couplers. For example, the first coupler 48 couples a selectable amount amount of energy between the input fiber 45 and the output fiber 46 as determined by the coupling operator rl. It also couples a selectable amount of energy between the output fiber 46 and the input fiber 45 as determined by the coupling operator Pl The second coupler 49 does the same thing. That is, part of the energy entering the port A of the coupler 49 in the fiber 45 is coupled into the output fiber 46 by the coupling operator r2. The operator r2 is selectable to any amount between 0 and 100%. This coupled energy is guided back into the port D of the coupler 48 by the output fiber 46 where a selectable amount of it is coupled back into the input fiber 45 by the first coupler 48. The amount of energy fed back into the input fiber 45 is determined by the coupling operator p1 which is selectable by the operator. This recirculation loop creates a "pole" or peak in the transfer function of the array comprised of the couplers 48 and 49. Since the array is passive, the system will be stable. The two coupler array has two outputs, i.e., port C of the coupler 49 and port B of the coupler 48. These two outputs each have a different transfer function relative to the input at port A of the coupler 48. A transfer function is the impulse response of the system. That is, an impulse has infinite amplitude and zero width which has an infinite number of Fourier series sinusoidal components of different frequencies and equal magnitude which, when combined, create the impulse signal in the time domain. The transfer function defines how the system affects the amplitude and phase of each of the frequency components of the input signal thereby defining the magnitude of that component at the output. When all the output components are combined, an output signal results that may be different than the input signal. Poles are peaks in the transfer function and zeroes are zero or null points in the transfer function. The transfer function at the output of the array at the port C of the coupler 49 has only poles, while the transfer function at the output at the port B of the coupler 48 has both poles and zeroes. The location of these poles and zeroes in the s plane (or Z plane) of Fourier analysis can be controlled by selection of the coupling operators r and p and by selection of the length of the fibers 45 and 46 between the couplers which determines the loop delay Td. Complete specification of any location for any pole or zero is not possible at this time as far as applicant is aware, but substantial control is possible. A more detailed analysis of use of the structure of Figure 9 as a systolic array processor follows. In a systolic array, data flows from the computer memory and passes through many processing elements before it returns to memory. The interactions of the input data with the flowing partial results permit multiple computations for each I/O memory access. The building block of such systolic arrays is, as mentioned above, the inner product step processor depicted in Figure 1. The mathematical operation performed by the inner product step processor is as given in Equation (1). It can he seen from study of Equations (15)-(18) that the directional couplers 48-51 can be easily used as inner product step processors under certain conditions. If the coupling coefficient is small, r is small and p can be ignored which transforms Equation (15) to: Ldown = L up +Rdown (19) since t is approximately one for small p. Likewise, Equation (16) becomes: L =R (20) up up for small r and p such that t is approximately one and p can be ignored. Equation (19) represents the realization that the linear, symmetrical, fiber optic coupler can function as an inner product step processor for weak backward coupling. The assumptions underlying Equations (19) and (20) are good approximations for small coupling coefficients r and p because, for weak coupling, the signal power on the output fiber 46 in Figure 9 is always about one order of magnitude less than the signal power on the input fiber 45. For example, if rN = PN = 0.10, then the signal power on the fiber 46 at port B of the coupler 51 is: Ldown = 0.1 Lup + Rdown (21) where Rdown is initially zero for matrix-vector multiplication as discussed with reference to Figures 35. That is, the output vector elements exit on the fiber 46 as the signal Ldown and Rdown entering the coupler 51 at the port D is zero. The elements of the output vector y are summations of the coupling operators rn set from the matrix coefficients of the matrix 30 times the elements of the input vector xi on the fiber 45. Weak coupling therefore results in one order of magnitude difference between the signal power on the fibers 45 and 46. Because of this order of magnitude difference, the effect of p on the input fiber 45 is minimal. That is, if r = p = 0.10, the signal power on the fiber 46 will affect the signal power on the fiber 45 only to the extent of two orders of magnitude down the power scale, i.e., the power on the output fiber 46 (down one order of magnitude) multiplied by the coupling coefficient p (down another order of magnitude). The result is an effect on the input fiber 45 which is two or more orders of magnitude below the signal power of the input vector on the fiber 45. Referring to Figures 10 and 11 there are shown two physical embodiments of the array. Figure 10 shows an embodiment with backward coupling by virtue of the direction of winding of the output fiber 46. Figure 11 shows an embodiment with forward coupling by virtue of an opposite direction of winding of the fiber 46 compared to the embodiment of Figure 10. In Figures 10 and 11 it is seen that the output fibers 46 carry light through the couplers 48-51 in the same direction. However, the direction of winding of the output fiber 46 is such that in Figure 10 the output vector signal leaves the array in the opposite direction from the direction which the output vector leaves the array in Figure 11 such that energy coupled into the output fiber 46 in one coupler is led back to the previous coupler where it is partially or wholly recoupled into the input fiber 45. From the second coupler, the energy is carried again to the first coupler resulting in recirculations between the couplers. That is, in Figure 10, recirculations occur between the couplers 49 and 48, between couplers 50 and 49 and between the couplers 51 and 50. In contrast, in Figure 11, energy coupled into the output fiber 46 is fed forward to the next coupler. In Figure 10 this reversal manifests itself as the port D of the coupler 48 being on the same side of the coupler as the port A, contrary to its placement in the symbolic array of Figure 9. More precisely, it can be seen that in Figure 11, feed forward energy is coupled in the coupler 48 by the coefficient rl from the input fiber 45 to the output fiber 46. This energy travels through the loop 52 and enters the coupler 49 at the port D. In the coupler 49, the energy is coupled back into the input fiber 45 in proportion to the coupling coefficient P2 From the coupler 49 this energy is recoupled back into the output fiber in the coupler 50. By each coupling the amount of this energy is reduced by the coupling coefficient which is always less than 1. The energy, therefore, continues to grow smaller with each coupling. The embodiment of Figure 11 can be used as a transversal filter having a number of taps equal to the number of couplers. In contrast, in the Figure 10 embodiment, the energy coupled from the input fiber 45 into the output fiber 46 in the coupler 49 returns in the fiber 46 and is coupled back into the input fiber 45 in the coupler 48 in proportion to the coefficient p1. Prom the coupler 48, the feedback energy travels forward to the coupler 49 and is again coupled into the output fiber 46 in proportion to the coefficient r2. The same is true of the energy coupled into the output fiber 46 in each of the couplers 49-51, i.e., the energy is returned to the previous coupler. This structure creates feedback coupling which can be advantageously used to create a lattice filter because it provides for poles or peaks in the transfer function which are programmable in location to some extent. A lattice filter is more general than a transversal filter in that it offers a transfer function which has both poles and zeroes. In contrast, a transversal filter has only zeroes. The physical significance of zeroes in a transfer function is that the zeroes represent frequencies of the input signal which the filter will completely block. As noted above, a transfer function represents the response of a system to an impulse input, i.e., an infinite series of sinusoids of different frequencies and the same amplitude. The transfer function is plotted in terms of amplitude of the output versus frequency. That is, the transfer function of the system is the output amplitude and phase of the system at each of the component frequencies of the input waveform. A zero in the transfer function means that no output will occur for input frequency components at the frequency of the zero. The transfer function is a useful concept because every signal in the time domain can be thought of as a combination of different frequency sinusoids of different amplitudes. This series of sinusoids can be applied to any systems and the response of the system to each frequency sinusoid can be computed from the transfer function. The output will then consist of a combination of sinusoids having different amplitudes and phases than the corresponding input sinusoids by the action of the system on each frequency component as symbolized by the transfer function. These output sinusoids can be combined to derive the output signal in the time domain which results from application of the given input signal to the system. The input series of sinusoids is represented by the Fourier transform of the input signal. Programmable lattice filters are very desirable because they offer more degrees of freedom for the designer in terms of the number of transfer functions which are available, i.e., the transfer function can be tailored to the specific application. In the embodiment of Figure 10, a certain class of lattice filters can be implemented. A truly general optical lattice filter structure would require completely independent selection of the coefficients t, x, r and p such that any of the four operators which describe the coupler could be any number, positive or negative, and either more or less than one. caith known couplers of the type designated herein, the coefficients t, T, r and p are not independent, but instead are all determined relative to each other once the coupling operator r is established; that is, the coupling operator r establishes p and therefore also establishes t and X by conservation of energy. Further, because the couplers 48-51 are passive, no amplification in the couplers is available. Therefore all the coefficients r, p t and X are positive and between zero and one. Nevertheless certain lattice filter transfer functions can be implemented with the structure of Figure 10, and adjustments in the transfer function can be made. These adjustments are made by varying the lengths of the loops 55-57 in the output fiber 46 between the couplers 48-51 and by varying the lengths of the loops 59-61 in the input fibers between the couplers 48-51. Further adjustments in the transfer function can be made by adjusting the coupling operator r in any or all of the couplers 48-51. The scattering and recirculation effects in the loops 55-57 and 59-61 allow the system of Figure 10 to also be used to model physical phenomena described by the Redheffer scattering formalism. A physical system such as light passing through a series of plane, two-way, partially reflecting and partially transmitting mirrors is described by this Redheffer formalism and is analogous to the feedback of the embodiment of Figure 10. As noted above, the embodiment of Figure 11 can be used as a transversal filter. Transversal filters are well known in the art, and optical tapped delay lines have been used to implement them. For example, H.F. Taylor described a fiber optic transversal filter in "Fiber and Integrated Optical Devices For Signal Processing", published in SPIE, Vol. 176, Guided Wave Optical Systems & BR< Devices (1979) at page 17. As described by Taylor, transversal filters are used in signal processing applications to implement narrow band filters and matched filters. The Taylor tapped delay line transversal filter uses individual modulators on fibers of different lengths and combines the optical outputs in a single photodetector. The individual modulators vary the tap weights and the individual fiber lengths determine the delay between taps and determines the tap spacing. Taylor's filter requires a single photodetector which would be optically coupled to the ends of all the individual fibers in the bundle, which detector would, of necessity, be of large physical dimensions. A transversal filter utilizing the embodiment of the embodiments of Figure 11 would not need such a large photodetector, which is a significant advantage since small photodetectors can operate faster, i.e. at higher frequencies than large photodetectors. E. Marom suggested a structure similar to the structure of Figure 11 to implement a matched filter in optical delay line terms in "Optical Delay Line Matched Filters", IEEE Transactions on Circuits and Systems, Vol. CAS-25, No. 6 (June 1978). Marom's structure did not use variable directional couplers and used two multimode fibers, both carrying light signals in the same direction. In contrast, the applicant's structure of Figure 11 provides variable coupling at the positions of the couplers 48-51 and uses monomode fibers, thereby eliminating the dispersion effects caused by multimode fibers. The variable couplers used in Figure 11 allow the transfer function of the system to be programmed. That is, the zeros in the transfer function can be moved to change the band stop frequency characteristics of the filter by changing the tuning of the couplers. Further, the length of fiber between the couplers can be changed to alter the transfer function somewhat. Such programmability of the transfer function gives the designer greater flexibility in his designs and can open new avenues for uses not before possible. Referring to Figures 12-15, a description of the embodiment of the couplers 48-51 will be given. As illustrated in Figures 12 to 15, the couplers of the present invention includes two strands 45 and 46 of a single mode fiber optic material mounted in longitudinal arcuate grooves 63A and 63B, respectively, formed in flat, confronting surfaces 64A and 64B, respectively, of rectangular bases or blocks 66A and 66B, respectively. The block 66A with the strand 45 mounted in the groove 63A will be referred to as the coupler half 70A, and the block 66B with the strand 46 mounted in the groove 63B will be referred to as the coupler half 70B. Each of the strands 45 and 46 comprises a commercially available fiber of quartz glass which is doped to have a central core and an outer cladding. It will be seen below that the present invention is particularly advantageous for use with single mode fibers, which typically have a core diameter on the order of 10 microns or less and a cladding diameter on the order of 125 microns. However, the invention may also be employed with other types of fibers, such as multimode fibers. In the embodiment disclosed, single mode fibers are utilized; however, for clarity of illustration, the diameter of the strands 45 and 46 and their respective cores are exaggerated. Furthermore, test results described herein are for couplers utilizing single mode fibers. The arcuate grooves 63A and 63B have a radius of curvature which is very large compared to the diameter of the fibers 45 and 46 and have a width slightly larger than the fiber diameter to permit the fibers 45 and 46, when mounted therein, to conform to a path defined by the bottom walls of the grooves 63. The depth of the grooves 63A and 63B varies from a minimum at the center of the blocks 66A and 66B, respectively, to a maximum at the edges of the blocks 66A and 66B, respectively. This advantageously permits the fiber optic strands 45 and 46, when mounted in the grooves 45 and 46, respectively, to gradually converge toward the center and diverge toward the edges of the blocks 66A, 66B, thereby eliminating any sharp bends or abrupt changes in direction of the fibers 45 and 46 which may cause power loss through mode perturbation. In the embodiment shown in Figure 13, the grooves 63 are illustrated as being rectangular in crosssection; however, it will be understood that other suitable cross-sectional contours which will accommodate the fibers may be used alternatively, such as a U-shaped cross-section or a V-shaped cross-section. At the centers of the blocks 66, in the embodiment shown, the depth of the grooves 63 which mount the strands 45 and 46 is less than the diameter of the strands, while at the edges of the blocks 66, the depth of the grooves is preferably at least as great as the diameter of the strands. Fiber optic material is removed from each of the strands 45 and 46 as shown at 78b in Figure 15 to form the respective, identical, oval-shaped planar surfaces 78A, 78B, which are coplanar with the confronting surfaces 64A, 64B, respectively. These surfaces 78A, 78B will be referred to herein as the fiber "facing surfaces". Thus, the amount of fiber optic material removed increases gradually from zero towards the edges of the block 66 to a maximum towards the center of the block. This tapered removal of the fiber optic material enables the fibers to converge and diverge gradually, which is advantageous for avoiding backward reflection and excess loss of light energy. In the embodiment shown, the coupler halves 70A and 70B are identical, and are assembled by placing the confronting surfaces 64A and 64B of the blocks 66A and 66B together, so that the surfaces 78A and 78B of the strands 45 and 46 are in facing relationship. An index matching substance (not shown), such as index matching oil, is provided between the confronting surfaces 64. This substance has a refractive index approximately equal to the refractive index of the cladding, and also functions to prevent the optically flat surfaces 64 from becoming permanently locked together. The oil is introduced between the blocks 66 by capillary action. An interaction region 72 is formed at the junction of the strands 45 and 46, in which light is transferred between the strands by evanescent field coupling. It has been found that, to ensure proper evanescent field coupling, the amount of material removed from the fibers must be carefully controlled so that the spacing between the core portions of the strands 45 and 46 is within a predetermined "critical zone". The evanescent fields extend into the cladding and decrease rapidly with distance outside their respective cores. Thus, sufficient material should be removed to permit each core to be positioned substantially within the evanescent field of the other If too little material is removed, the cores will not be sufficiently close to permit the evanescent fields to cause the desired interaction of the guided modes, and thus, insufficient coupling will result. Conversely, if too much material is removed, the propagation characteristics of the fibers will be altered, resulting in loss of light energy due to mode perturbation. However, when the spacing between the cores of the strands 45 and 46 is within the critical zone, each strand receives a significant portion of the evanescent field energy from the other strand, and optimum coupling is achieved without significant energy loss. The critical zone is illustrated schematically in Figure 16 as including that area, designated by the reference numeral 73, in which the evanescent fields, designated by reference numerals 74A and 74B, of the fibers 45 and 46, respectively, overlap with sufficient strength to provide coupling, i.e. , each core is within the evanescent field created by the light traveling in the other core. However, as previously indicated, mode perturbation occurs within the area 73 when the cores are brought too close together. For example, it is believed that, for weakly guided modes, such as the HE11 mode in single mode fibers, or high order modes in multimode fibers, such mode perturbation begins to occur when sufficient material is removed from the fibers to expose their cores. Thus, the critical zone is defined as that area in which the evanescent fields 74 overlap with sufficient strength to cause coupling without substantial mode perturbation induced power loss. The extent of the critical zone for a particular coupler is dependent upon a number of interrelated factors such as the parameters of the fiber itself and the geometry of the coupler. Further, for a single mode fiber having a step-index profile, the critical zone can be quite narrow. In a single mode fiber coupler of the type shown in Figures 12-15, for example, the required center to-center spacing between the strands 45 and 46 at the center of the coupler as shown in Figure 14 is typically less than a few (e.g., 2-3) core diameters. Preferably, the strands are (1) identical to each other, (2) have the same radius of curvature at the interaction region 32, and (3) have an equal amount of fiber optic material removed therefrom to form their respective facing surfaces 78A and 78B. Thus, the fibers 45 and 46 are symmetrical, through the interaction region 72, in the plane of the facing surfaces 78, so that the facing surfaces 78 are coextensive if superimposed. This ensures that the two fibers 45 and 46 will have the same propagation characteristics at the interaction region 72, and thereby avoids coupling attenuation associated with dissimilar propagation characteristics. The blocks or bases 66A and 66B may be fabricated of any suitable rigid material. In one presently preferred embodiment, the bases comprise generally rectangular blocks of fused quartz glass approximately one inch long, one inch wide, and 0.4 inch thick. In this embodiment, the fiber optic strands 45 and 46 are secured in the slots 63 by suitable cement 79, such as epoxy glue. One advantage of the fused quartz blocks 66 is that they have a coefficient of thermal expansion similar to that of glass fibers, and this advantage is particularly important if the blocks 66 and fibers 45 and 46 are subjected to any heat treatment during the manufacturing process. Another suitable material for the block 66 is silicon, which also has excellent thermal properties for this application. The coupler includes four ports labeled A, B, C, and D, in Figure 12. When viewed from the perspective of Figure 12, ports A and D, which correspond to strands 45 and 46, respectively, are on the lefthand side of the coupler, while the ports B and C, which correspond to the strands 45 and 46, respectively, are on the righthand side of the coupler. For the purposes of discussion, it will be assumed that input light is applied to port A. This light passes through the coupler and is output at port C and/or port B, depending upon the amount of power that is coupled between the strands 45 and 46. In this regard, the term "normalized coupled power" is defined as the ratio of the coupled power to the total output power. In the above example, the normalized coupled power would be equal to the ratio of the power at port B to the sum of the power output at ports B and C. This ratio is also referred to as the "coupling efficiency" and when so used is typically expressed as a percent. Thus, when the term "normalized coupled power" is used herein, it should be understood that the corresponding coupling efficiency is equal to the normalized coupled power times 100. In this regard, tests have shown that the coupler of the type shown in Figure 12 has a coupling efficiency of up to 100%. However, the coupler may be "tuned" to adjust the coupling efficiency to any desired value between zero -and the maximum of 100% power coupling, by offsetting the facing surfaces of the blocks 16A and 16B. Tuning the coupler changes the coupling efficiency and changes the coupling and transmission operators r, p, T and t. That is, when the coupling efficiency is lowered, less power is coupled from part A to part B in Figure 12. That means that 5 and p are decreased because the coupler is symmetric and that t and X are increased since less energy leaving either fiber for the other means more energy remains in the original fiber and is transmitted through the coupler by conservation of energy. Such tuning is preferably accomplished by sliding the blocks 66A and 66B laterally relative to each other in the direction of the arrow in Figure 14. The coupler is sensitive to displacements of the fibers in a direction which laterally offsets the planar faces such as the direction of the arrow in Figure 14. However, the coupler is less sensitive to displacements which longitudinally offset the planar faces, i.e., in a direction perpendicular to he arrow in Figure 14 and coming out of the page in orthogonal fashion. The coupler is relatively insensitive to displacement of the fibers which rotationally offsets the faces. The sensitivity of the coupling operators to displacement of the fibers depends upon the spacing of the cores of the fibers when the fibers are superimposed. The coupler is highly directional, with substantially all of the power applied at one side of the coupler being delivered to the other side of the coupler. That is, substantially all of the light applied to input port A is delivered to the output ports B and C, without contradirectional coupling to port D. Likewise, substantially all of the light applied to input port D is delivered to the output ports B and C. Further, this directivity is symmetrical. Thus, light supplied to either input port C or input port B is delivered to the output ports D or A, respectively, and light supplied to either port A or port D is defined either to the port B or C respectively. Moreover, the coupler is essentially nondiscriminatory with respect to light polarizations, and preserves the polarization of the coupled light during the power transfer. Thus, for example, if a light beam having a vertical polarization is input to port A, the light coupled from port A to port B as well as the light passing straight through from port A to port C will remain vertically polarized. Referring to Figure 17-19 there is shown the construction for a fiber optic tapped delay line which could be used to implement the arrays depicted in Figures 10 and 11. Two of the constructions shown in Figure 17 optically coupled together at the taps could implement the arrays of Figures 10 and 11 as will be apparent from the following discussion. In Figure 17, a single element of optical fiber 45 is used, beginning at an input end 80 which is supplied with a light input signal from a light source 82, and ending at an output end 84. The optical fiber 45 is wound around a chip 86 with V-grooves 90a-90y formed therein. The chip 86 is a thin slice of silicon with grooves 90a-90y photolithographically etched therein and will be described in more detail later. The first portion of the fiber on the chip is designated the first winding 86a, and the second portion of the fiber 45 mounted on the chip 86 is designated 86b, and so on. At a lateral line 88 normal to the longitudinal axes of the fiber segments 86a-86n, taps are constructed so that each revolution of the optical fiber 45 ' is tapped at the lateral line 88. The construction of the chip 86 and the V-grooves and the manner by which the optical fiber 45 is laid in the V-grooves in the chip 86 is described in more detail in co-pending U.S. patent application Serial No. 323,038 filed November 19, 1981 for "Tapped Optical Fiber Delay Line". Standard photolithographic etching techniques known in the semiconductor industry can be used to form the V-grooves in the chip 86. There is a need for great precision in the construction of the V-grooves such that they all are identical in width and depth since the fiber segments of the fiber 45 in the grooves must be coplanar. Any technique which will not meet that criterion can be used such as by laser or other chemical or mechanical machining. It has been found it is satisfactory to use 100 oriented silicon for the chip 86 with chemical etching by photolithographic techniques as is well known in the semiconductor manufacturing art. Silicon of the 100 orientation yields a V-groove with walls at an angle of 54.74 degrees. The first step in forming the V-grooves is photolithographically etching flat grooves with the width of the flat grooves determined by the depth needed of the V-groove. The depth of the V-groove needed depends upon the size of the fiber being used. Referring to Figure 17, the preferred way to construct an optical tap is to have the optical fiber surface mounted in a curved configuration so that a flat portion of the optical fiber may be lapped to form a planar face to provide a tap of the light traveling within the fiber. To provide this curved configuration, the silicon chip 86 is mounted on a block of quartz 87 which has a curved upper surface. It has been found that a silicon chip of standard thickness (0.25 millimeter) and about three-centimeter length can be bent without breaking around a twelve-inch radius. An adhesive substance such as wax is used to hold the silicon chip 86 on the quartz block 87 in the curved configuration shown in Figure 17. The optical fiber 45 may now be mounted on silicon chip 85. Before the optical fiber 45 can be mounted in the Vgrooves in the silicon chip 85, the portions of the optical fiber 45 which are to be mounted in the V-grooves preferably have the protective jacket removed. ITT type monomode fiber has a plastic jacket which may be removed by dipping it in sulfuric acid. The resiliency of the plastic jacket prevents precision in the lapping operation, so it should be removed. Corning type fiber has a lacquer jacket which may be removed by dipping it in acetone. Since the lacquer jacket is more solid than the plastic jacket, its removal is preferential rather than mandatory. The installation of the fiber 45 in the V-grooves of the silicon chip 85 is best shown in Figure 18 which shows a cross-sectional view along the line 18-18 in Figure 17. Figure 19 shows a cross-section of the first three grooves in more detail. A portion of the optical fiber 86a near the input end 80 of the fiber is mounted in the second V-groove 90a of the silicon chip 85. It should be noted that there is a first V-groove 90x which is not used to receive the optical fiber 45, but rather is used for alignment purposes. As shown in Figure 19, before the fiber is mounted in the V-groove 90a, an adhesive substance 92 is placed in the bottom of the V-groove 90a. Therefore, when the portion 86a of the optical fiber 45 is placed in the V-groove 90a and the optical fiber 45 bottoms out against the sides of the V-groove 90a, it will be permanently retained there by the adhesive 92. Following the placement of fiber portion 86a in the first V-groove 90a, a length L of the optical fiber is left between the center of the fiber portion 86a and the center of the second fiber portion 86b of the optical fiber 45, which is to be mounted in the second V-groove 86b. This length L is the length of optical fiber shown as one of the fibers forming the loop of fiber 45 in Figure 17. It provides a delay time equal to the period of the desired fundamental frequency of the transversal filter or the desired loop delay for the matrix-vector multiplier to be constructed using the structure of Figure 17. It can be seen from Figures 17-19 that the optical fiber 45 is wound around the silicon chip 86 so that upon each successive revolution it is fitted into the next succeeding V-groove and secured there by the adhesive 92. When the last portion 86n of the optical fiber 45 has been fitted into the last V-groove 90n of the silicon chip, the optical fiber 45 terminates at the end 84 as shown in Figure 17. The next step is to mechanically lap the upper surface of the portions 86 of the optical fiber 45 at the lateral line 88. The portions 86 of the optical fiber 45, being mechanically mounted in the silicon chip by the adhesive 92, are stable enough to have portions of the cladding removed by lapping. This lapping operation will remove a portion of the cladding 92 to form a planar face.similar to the face 78b, shown in Figure 15. It is important to note that not all of the cladding material 92 (92a-c in Figure 19) around the core 94 (94a-c in Figure 19) of the optical fiber is to be removed. The distance between each core 94 and the lapped surface 96 of the fiber segments 86 in the V-grooves depends on the amountof light which is to be removed from the fiber at each tap. When small amounts of light are being extracted, the lapped surface 96 should be further from the core 94 of the fiber segments 86. Since it is desirable to have a high number of taps for certain applications, only a small amount of light can be removed at each tap. Therefore, between approximately five and ten microns of cladding will be left between the lapped surface 96 and the core 94 of each of the fiber segments 86. To implement the arrays of Figures 10 and 11, two structures such as shown in Figure 17 must be used which are optically coupled at the lapped portions of the fiber segments 86 at the line 88. This is illustrated in Figures 20 and 21. Figure 20 shows the combined structure representing the structure of either Figure 10 or Figure 11 with the number of couplers equal to the number of turns of the fibers 45 and 46 in the V-grooves. whether the structure of Figure 20 represents the structure of Figure 10 or Figure 11 depends upon the direction of the winding of the fiber 46. That is, if the fiber 46 is wound so as to carry the coupled light back to the next preceding tap, i.e., in the direction from which the light in the input fiber 45 came, then feedback or backward coupling is present and the structure can function as a lattice filter. If the winding direction is opposite, a transversal or matched filter will be implemented. Figure 21 shows a cross-section of the structure of Figure 20 taken along the view line 22-22 in Figure 20 corresponding to the line 88 in Figures 17 and 20. The structure is simply two chips 86a and 86b with V-grooves therein and supported by curved quartz blocks 87a and 87b affixed together such that the V-grooves 90a-90n in the chip 86a are in predetermined alignment with the V-grooves 90a'-90n' in the chip 85b. Alignment grooves 100 and 100' and 102 and 102' at the opposite ends of the chips 86a and 86b contain alignment beads 104 and 106. These alignment beads 104 and 106, and their corresponding alignment grooves, establish fixed reference points from which each of the V-grooves 90a-90n and 90a'-90n' can be precisely located. If it is desired that each coupler formed by a pair of V-grooves have the same coupling operators r and p as each of the other couplers, then each pair of grooves forming a coupler should be located the same distance from the alignment grooves plus a selected differential offset of one groove in the pair relative to he other groove so that each fiber pair has the same relative offset as each other pair. In some applications of lattice or transversal filtering this equal weighting of taps will be desirable. It is also possible to form couplers with unequal coupling at each tap using the structure of Figures 20 and 21. In such applications the relative offsets of each of the fiber pairs in the opposing grooves can be established by varying the distance of one of the opposing grooves from the alignment groove versus the distance to the alignment groove for the opposite V-groove. Since the photolithographic operation described above can be controlled to within reasonable tolerances, such a method of offsetting the V-grooves can give filters with weighted taps. Of course the weights can all be simultaneously changed by moving the blocks 87a and 87b relative to each other, but all the couplers will have their fiber pair offsets equally affected by the same amount which will result in new weights determined by the original weights plus the common offset. No individual control of the coupling efficiencies will be possible. Of course for certain applications, such a non-adjustable coupler situation is satisfactory such as in filters requiring fixed pole and zero locations in the transfer function. For individual control of the coupling efficiencies of each coupler in the array, the embodiments of Figures 10 and 11 must be used. The advantage of the embodiment of Figures 20 and 21 is that many couplers can be inexpensively built to implement very complicated transfer functions and to precisely tailor the pass and stop bands of the lattice and transversal filters by many different tap weights. The structure of Figures 20 and 21, as will be seen below, can also be used to perform matrix-vector multiplication operations. The advantage of the structure of Figures 20 and 21, as will become apparent from the discussion below, is that very large matrices with many coefficients can be handled in a very fast systolic array using pipeline concepts. Turning to Figure 22, there is shown a 2 X -2 Toeplitz matrix 110, multiplied by an input vector xl 112, to give an output vector y. Figures 22-24 will be used to illustrate how the arrays of Figures 10, 11 or 20 may be used to perform matrix-vector multiplication on Toeplitz matrices. If the matrix 110 is a Toeplitz matrix, the coefficients all and a22 will be equal because they are on the same diagonal. The elements Y1 and y2 of the output vector are equal to: Y1 = all xl + awl2 X2 (22) and Y2 = a2 xl + a22 X2 (23) Figure 23 represents the array of fiber optic couplers which can be used to perform the matrix-vector multiplication of Figure 22. As noted above, each of the couplers 114-116 can be described by transmission and coupling operators r, t, p and T. Therefore, each of the couplers 114-116 can be approximately characterized in terms of its input and output light signals Lump, Rup, Ldown and Rdown and the operators t, r, p and T per equations (15) and (16). Since weak coupling operators r and p are assumed for matrix-vector multiplication, only the transmission and coupling operators t, r and X are considered since, as described above, the effects of p on the input optical fiber 45 are negligible for weak coupling. To perform the mathematical operation represented by Figure 22, each of the couplers 114-116 operates as an inner product step processor and each is characterized by the equations (19) and (20). To perform the mathematical operation represented by Figure 22, the coupler 114 is tuned so that its coupling operator rl equals the matrix coefficient a12. The coupler 115 has its coupling operator r2 tuned to the matrix coefficients all and a221 and the coupler 116 has its coupling operator r3 tuned to the matrix coefficient a21 a21. In the example illustrated in Figure 23 a12 = 1/8 all = a22 = 1/4 and 21 = 1/2. The operation of the couplers 114-116 in performing the matrix-vector multiplication is illustrated in Figures 24(A)-(D). The operation begins, as shown in Figure 24(A), with the serial introduction into the input optical fiber 45 of the two light signals which represent the elements of the input vector x, i.e., the signals xl and x2. Time is increasing to the right in all of Figures 24(A)-(D). Therefore, the signal xl arrives at the coupler 114 on the fiber 45 earlier than the signal x2. The signals xl and x2 are traveling in the fiber 45 from left to right in Figure 23. The coupler 114 operates on the signals xl and x2 such that a signal al2xl is generated in the output optical fiber 46 since rl = al2. This signal al2xl leaves the coupler 114 first in time. Symbolically, the signals in Figure 24(B) can be thought of as emerging from the coupler 114 moving from right to left on the output fiber 46 with the signal al2xl emerging first. In reality the output signals pass through the couplers through the couplers in the same direction as the input signals. The signals allxl and a21x1 are coupled into the output fiber 46 as the signal xl passes through the couplers 115 and 116, respectively. Figure 24(C) shows the signals that are generated in the output fiber 46 as the input signal x2 passes through the couplers 114-116. These signals must be summed with the signals generated from the input signal xl because of equations (22) and (23) above. Thus, the signal al2x2 must be coupled into the output fiber 46 just as the signal allxl is arriving at the coupler 114. The time spacing of introduction of the input signals xl and x2 must therefore be equal to the round trip propagation time Td of a light pulse from one coupler to the next coupler and back to the preceding coupler. Only the backward feedback can be used for matrixvector multiplication in embodiments such as shown in Figure 9 and Figure 10 because of the requirement for proper interception of input light signals and matrix coefficients and the need to sum the output signals. Because of the time spacing Td between input pulses, the signals allxl and a12x2 are optically summed in the output fiber 46 as are the signals a21x1 and a22x2. Figure 24(D) shows the resulting output on the output fiber 46. Since only the middle two pulses Y1 and y2 define the output vector y, the pulses al2xl and a21x2 are discarded. This can be done electronically by selecting from the output of a detector only the signals during the time window shown in Figure 24(D). This can be done in any conventional manner. The structure used to do it is not critical to the invention but one way to do it would be to establish the time base and spacing of the input pulses with a counter. The time window would then correspond to a series of numbers in the count. Two decoders could be coupled to the output of the counter to determine when the first number in the series marking the time tl occurred. This decoder would turn on or open the gate on the output of the detector at time t1. The second decoder, coupled to the output of the counter, would determine when the count corresponding to t2 occurred and turn off or close the gate on the output of the detector at that time. By using the time window technique, it may be possible to use larger coupling operators r and p and not ignore the effects of p. However, since the p operator in each coupler causes recirculations between the couplers 114116, some of these recirculations may fall within the time window and introduce errors. However, it is possible under some circumstances to adjust the coupling of the couplers 114-116 such that the coupling operators r are other than exactly equal to the matrix coefficients so that the couplers can compensate for some or all of the errors introduced by recirculation. Turning to Figure 25, there is shown an apparatus for performing the matrix-vector multiplication illustrated in Figures 22-24. A pulse generator 118 generates an electrical pulse. This pulse is split into the number of elements in the input vector by a splitter means represented by the splitter 120. The splitter 120 in Figure 25 can be any conventional design. The two pulses from the splitter 120 are coupled into the inputs of conventional attenuators 122 and 124 which serve to attenuate the two pulses to the levels of the pulses xl and x2. A delay line 128 serves to delay the pulse x2 for the period Td to achieve the proper pulse spacing. A conventional mixer 130 then recombines the pulses on the conductors 132 and 134 onto the conductor 126 where they are coupled to the input of a laser diode 136. There they are converted to light pulses on the fiber 45. The fiber 45 then passes through the couplers 114-116 which couple varying amounts of power into the output fiber 46 as previously described regarding Figures 2224. The output fiber 46 is coupled to the input of a photodetector 138 which reconverts the pulses to electrical pulses on the line 140. The pulses are amplified in an amplifier 142 and coupled to the input of an oscilloscope 144 where they are displayed. The embodiment of Figure 25 does not use a time window gating circuit, depending instead upon manual selection and measurement of the middle two pulses on the scope display. Figure 26 illustrates a matrix-vector multiplication example which was actually used with the physical system depicted in Figure 25 to verify the correct operation of the system. Figure 27 illustrates the light pulses actually observed at the input to the system of Figure 25 and the light pulses actually observed at the output. Note that the input pulses xl and x2 are equal because both elements of the input vector x are 1 in Figure 26. The first output pulse al2 xl represents lxl = 1. The second output pulse all xl + al2 x2 represents (lxl) + (lxl) = 2. The third output pulse a21 xl + a22 X2 represents (Oxl) + (lxl) = 1. The fourth output pulse a21 x2 does not exist because its amplitude is Oxl = O. Similar analysis applies to Figures 28 and 29 which show the same things as Figures 26 and 27 except for a different set of coefficients in the matrix and a different input vector. Any N x N size matrix can be handled with the arrays of Figures 10 and 20. It is only necessary to have 2N-1 couplers corresponding to the 2N-1 main and offdiagonals of the matrix. The components of the input vector enter the couplers progressively in such a way that each coupler sees matrix elements from a single main or offdiagonal. In the future when couplers become available where the coupling and transmission operators can be rapidly changed, it will be possible to handle the general, non Toeplitz matrix. Until then only Toeplitz matrices can be handled if the high inherent bandwidth of the fiber optic processor array is to be fully utilized. In the general NxN Toeplitz matrix case, the N components of the output vector will appear on the output fiber 46 following the (N-1) the output pulse. Recirculations and loop losses have been neglected in the multiplier analysis given so far. This comes from ignoring the p coupling operator. Proper operation of the multiplier array illustrated in Figures 10, 20 and 25 depends only on the device impulse response rather than on the individual coupling ratios and loop losses. That is, the overall transfer function of the array is the critical factor in achieving accurate results rather than exact matching of the coupling operators to the matrix coefficients and accounting for loop losses. Thus, for a given NxN Toeplitz matrix in aij, the 2N-1 couplers can be properly adjusted to yield an impulse response, i.e., an overall transfer function, which gives pulse heights in the output vector proportional to alNI a2N-lt ... aiN-l+l' ... aNl respectively. In such cases, the weak coupling requirement can be removed. That is, the weak coupling requirement can possibly be removed if the couplers can be adjusted to properly account for the resulting recirculations and give the correct overall transfer function to get a correct output vector. Removal of the weak coupling requirement results in a lower data rate however, since a sequence of delayed pulses resulting from recirculations between couplers may follow and possibly overlap, the time window for the output vector. The next input vector therefore must wait for these recirculation pulses to die down or be squelched before it may be coupled into the input fiber. This results in a reduced data rate unless squelching can be rapidl-y--accomplished. A major advantage of the processor array described herein is the single fiber nature of the output. This enables the use of a very small and, therefore, very fast detector without sacrificing light collection efficiency. The factors that determine the ultimate accuracy of the multiplier are the settings of the couplers to program the impulse response, the time delay between the input pulses, the loop delays, and the residual recirculation and frequency bandwidth of the electronic components. With smaller components and a closely packed geometry, the delays can be reduced to the order of 0.1 n s allowing a 10 Ghz data rate. Similar or higher data rates could be obtained if the systolic array were implemented using integrated optics techniques. wraith sufficient recirculation the fiber optic signal processor arrays of Figures 10 and 20 can serve as feedback lattice filter with an infinite impulse response as opposed to the finite impulse response of the tapped delay line and a programmable transfer function. This lattice type filter has the advantage that it has both poles and zeroes compared to only zeroes in tapped delay line transversal filters. This offers more flexibility to a designer that needs a transfer function with poles in it. The order of the system, i.e., the number of poles, depends upon the number of loops between couplers. A dual feed forward lattice filter can also be implemented by replacing the scattering couplers by forward couplers which operate on Lup and Ldown to produce Rup and Rdown The ability of this last forward transfer structure to perform matched filtering, has already been analyzed and demonstrated using multimode fibers on non-tunable couples by E. Marom, supra. While the invention has been described with reference to specific embodiments and applications, the description is illustrative of the invention and not limiting the invention. Various modifications and applications may occur to those skilled in the art without departing from the true spirit and scope of the invention as defined by the appended claims.

Claims: CLAIMS 1. A signal processor comprising: first (48) and second (49) couplers; a first waveguide (45) for guiding energy from said first (48) to said second (49) coupler; and a second waveguide (46) for receiving energy coupled from said first waveguide (45) in said second coupler (49) and guiding said coupled energy back to said first coupler (48). 2. An apparatus as defined in Claim 1 wherein said first (45) and second (46) waveguides are monomode optical fibers, and said first (48) and second (49) couplers comprise: first and second strands of fiber optic material comprising said first (45) and second (46) waveguides having core portions (94) said strands comprising said first (45) and second (46) waveguides; and blocks (66) for accurately positioning said strands (45 and 46) together to form a region of interaction (72) in which guided modes of light in the strands interact to cause light to be transferred between the core portions (94) of the strands. 3. An apparatus as defined in Claim 2 wherein said core portions (94) are spaced apart in the region of interaction (72) by a distance such that each core is in the evanescent field (74) created by the light traveling in the other core when coupling of power is desired. 4. An apparatus as defined in Claim 2 or 3 wherein said blocks (66) for positioning permits variation in the mutual orientation of said strands (45 and 46) and out of the critical zone to vary the amount of light transferred between said strands (45 and 46). 5. An apparatus as defined in any of Claims 1 to 4 wherein said first coupler (48) couples energy from said second waveguide (46) back into said first (45) waveguide. 6. An apparatus as defined in any of Claims 1 to 5 wherein each coupler (48 and 49) is adjusted to couple a selected amount of energy from each waveguide (45, 46) passing therethrough into the other waveguide. 7. An apparatus as defined in any of Claims 1 to 6 wherein the length of fiber optic waveguide between each coupler (48, 49) is selected to program the transfer function of the signal processor to have selected characteristics. 8. An apparatus as defined in any of Claims I to 7 wherein the amount of coupling in each coupler (48, 49) is selected to cause the signal processor to have a transfer function with selected characteristics. 9. An apparatus as defined in any of Claims 1 to 8 wherein said first and second waveguides (45, 46) are monomode optical fibers. 10. A method of matrix-vector multiplication of an input vector (112) by a matrix (110) to derive an output vector (114) in an array of first and second tunable fiber optic couplers (114, 115) which couple light energy between a first waveguide (45) and a second waveguide (46) said second waveguide (46) for receiving energy coupled from said first waveguide (45) in said second coupler (115) and guiding said coupled energy back to said first coupler (114) comprising the steps of: : introducing a plurality of light pulses (x1 and x2) representing the elements of said input vector into said first (45) waveguides; coupling an amount of power related to a coefficient in said matrix from said first waveguide (45) into said second waveguide (46); guiding said coupled power in said second waveguide (46) each input pulse (xl and x2) to another coupler in said array for summing with coupled power from other input pulses; and detecting said output vector as the intensity of the light pulses (Y1 and Y2) which emerge from said array (114, 115) on said second waveguide (46). 11. A method of matrix-vector multiplication comprising the steps of: introducing a plurality of light signals (xl and x2) into an array of fiber optic couplers (114, 115, 116); coupling a predetermined amount of power from each signal (X1 X2) into an output waveguide (46); summing selected groups of signals in said output waveguide (46); and detecting the selected groups of summed signals in said output waveguide (46). 12. A method as defined in Claim 10 or 11 wherein each said coupler (114, 115 and 116) is tuned to have a coupling operator which is equal to a coefficient in said matrix. 13. A method as defined in any of Claims 10-12 further comprising the step of determining the intensities of light signals emerging on said output waveguide (46) only during a predetermined time window (tl and t2). 14. A method as defined in any of Claims 10-13 wherein said matrix is NxN and said array comprises 2N-1 couplers (114, 115, 116), and further comprising the step of tuning each coupler (114, 115, 116) such that it has a coupling operator which is equal to the coefficients on one of the 2N-1 main or offdiagonals of said matrix. 15. A method as defined in any of Claims 10-14 wherein said matrix is a Toeplitz matrix and each said coupler (114, 115, 116) is tuned to the single value of the coefficients on one of the 2N-1 diagonals in said matrix. 16. A method as defined in any of Claims 10-15 wherein said time window (t and t2) starts following the (N-l)TH output signal. 17. A method of filtering in an array of fiber optic tunable couplers (48, 49, 50, 51) for coupling power between a first (45) and a second (46) fiber optic waveguides where said second waveguide (46) receives energy coupled from said first waveguide (45) in said second coupler (49) and guides said coupled energy back to said first coupler (48) comprising the steps of: adjusting said first and second couplers (48, 49) to obtain the desired transfer function; introducing an input signal into said input waveguide (45); and detecting the signal emerging from said output waveguide (46). 18. The method of Claim 17 further comprising adjusting said couplers such that feedback recirculation occurs between said first and second couplers (48, 49) to obtain the desired location for poles in said transfer function. 19. The method of Claim 17 or 18 further comprising adjusting the length of said first waveguide (45) and said second waveguide (46) between said first and second couplers (48, 49) to obtain a selected transfer function. 20. The method of claims 10-19 accomplished using the apparatus of any of Claims 2-9. 21. The method of Claim 11 accomplished using the apparatus of Claim 1.

Inventors: BOWERS, JOHN E., GOODMAN, JOSEPH W., MOSLEHI, BEHZAD, SHAW, HERBERT JOHN, TUR, MOSHE
Applicants: THE BOARD OF TRUSTEES OF THE LELAND STANFORD JUNIOR UNIVERSITY
Application year: 1983
Main classification: G06E3
IPC codes: G02B6, H04B10, G06E3