METHOD FOR OPTIMIZING ERROR CORRECTIONS FOR BINARY LOGIC COMPONENTS

Abstract: Error correction values for binary logic components used in providing a phase shift to an RF signal are optimized to provide improved overall performance. Initially, each component is adjusted to minimize the overall phase error while the other components are in an inactive state. After the initial adjustment, statistical methods based on Tables of Contrasts and Yates' Algorithm are used to determine full-factorial main effects. A full-factorial analysis is a statistical analysis in which the responses of all possible binary logic states are compared. The full-factorial analysis is used to quantify the main effects which are the error contributions of each of the individual binary logic components. These main effects are then used as error correction or adjustment values for the binary logic components.

Description: METHOD FOR OPTIMIZING ERROR CORRECTIONS FOR BINARY LOGIC COMPONENTS Background on the Invention Field of the Invention: The present invention relations to a method for optimizing error corrections, more specifically it relations to optimizing error corrections for binary logic components. Description of the Related Art: A binary logic component is a component that has two states. The first state is an active state in which the component performs a desired function. The second state is an inactive state in which the component does not perform the desired function. The desired function can be digital or analog in nature. It can involve filtering such as low pass filtering, band pass filtering or high pass filtering and may include adjustable cutoff frequencies and band widths. The function can also be a phase shift function where the amount of the electrical phase may be adjustable. The component can also perform an attenuation or amplification function where the amount of attenuation or the amount of amplification may be adjustable. Other types of signal processing functions are also possible. In some applications, binary logic components interact in a fashion that makes it difficult to adjust a component to minimize the overall error produced by several binary logic components acting together. An example of such a situation relates to binary logic components used in microwave applications. In this situation, factors such as impedance mismatches make it difficult to adjust the binary logic components in a fashion that minimizes the overall error produced by a group of binary logic components acting together. The adjustment is difficult because the way in which the binary logic components interact is a function of what combination of components are in their active states. In the past, this problem was approached using a trial and error method. The procedure involved minimizing the error by making an initial adjustment to each binary logic component while the other binary logic components were in an inactive state. Unfortunately, when the other components where activated, the resulting error for the group of components acting together was not minimized. In addition, the resulting error varied depending on which of the other binary logic components were active. This problem was addressed by a trial and error method of individually readjusting each ofthe binary logic components in a effort to minimize the overall error produced by the group of components acting together. This procedure was time consuming and inefficient. Summary of the Invention The present invention relates to a method for optimizing error corrections for a plurality of binary logic components. The method involves adjusting each binary logic component to minimize a difference between an actual performance and a desired performance while the other binary logic components are in an inactive state. After this initial adjustment, a plurality of performance errors are determined by calculating a difference between a desired performance and an actual performance for a plurality of combinations of states of the plurality of binary logic components. An error difference associated with a binary logic component is determined by comparing a first performance error and a second performance error. The first performance error corresponds to a first combination of states of the plurality of binary logic components, and the second performance error corresponds to a second combination of states of the plurality of binary logic components. The first and second combination of states differ only by a state of the binary logic component. The error difference associated with the binary logic component is then used to readjust the binary logic component. The present invention uses statistical methods based on Tables of Contrasts and Yates' Algorithm to determine full-factorial main effects. A full- factorial analysis is a statistical analysis in which the responses of all possible binary logic states are compared. The full-factorial analysis is used to quantify the main effects which are the error contributions of each of the individual binary logic components. These main effects are then used as adjustment values for each binary logic component, so that an overall improvement in performance is achieved without involving time consuming and inefficient methods such as trial and error. Brief Description of the Drawings Figure 1 illustrates a group of binary logic components comprising a six bit phase shifter; Figure 2 illustrates phase error as a function of a hexadecimal control value; Figure 3 is an example of a three-variable table of contrasts; Figure 4 illustrates the resulting phase error as a function of a hexadecimal control value after optimizing the error correction values for the phase shifters; Figures 5A, 5B, 5C and 5D comprise a table illustrating the use of Yates' algorithm; and Figure 6 is a block diagram illustrating an automated set up for obtaining the error correction values for the phase shifters. Description of the Preferred Embodiments Figure l illustrates a six bit variable phase shifter block diagram comprising six phase shifters that are binary logic components. Each phase shifter is controlled by a driver which places the phase shifter in either an active or inactive state. When in an active state, the phase shifter produces a desired phase shift, and when in an inactive state, the phase shifter produces no phase shift and passes a signal from its input to output. The RF input to the six bit variable phase shifter is received by phase shifter 10 which introduces a 180 degree phase shift when it is active and no phase shift when inactive. The output from phase shifter 10 is received by phase shifter 12 which introduces a 90 degree phase shift when active and no phase shift when inactive. The output of phase shifter 12 is received by phase shifter 14 which introduces a 45 degree phase shift when active and no phase shift when inactive. Phase shifter 16 receives the output from phase shifter 14 and introduces a 22.5 degree phase shift when activate and no phase shift when inactive. Phase shifter 18 receives the output from phase shifter 16 and introduces a 11.2 degree phase shift when active and no phase shift when inactive, and phase shifter 20 receives the output from phase shifter 18 and introduces a 5.6 degree phase shift when active and no phase shift when inactive. Phase shifters 10, 12, 14, 16, 18 and 20 are controlled by drivers 30, 32, 34, 36, 38 and 40 respectively. Drivers 30, 32, 34, 36, 38 and 40 are controlled using control lines 42, 44, 46, 48, 50 and 52 respectively. When a driver receives a logic l on its control line, it places its associated phase shifter in an active state, and when the driver receives a logic 0 on its control line, it places its associated phase shifter in an inactive state. For example, if all the control lines receive a value of logic 0, the RF input into the six bit variable phase shifter will be passed to the output of the six bit phase shifter without receiving a phase shift. If control line 48 is set equal to logic 1 and the remaining control lines are set equal to logic 0, the six.bit phase shifter will provide a total phase shift of 22.5 degrees. Table 1 illustrates the differing amounts of phase shift that can be obtained for the different combinations of logic 0 and logic 1 supplied to the control lines. Table 1 also assigns a hexadecimal value to each of the combinations. TABLE 1 TABLE 1 cont. The first step in optimizing the error corrections for each of the phase shifters involves adjusting each phase shifter for its desired phase shift while the other phase shifters are inactive. For example, phase shifter 20 is adjusted to produce a 5.6 degree phase shift while the control lines receive a hexadecimal value of 1. A hexadecimal value of 1 places phase shifters 10, 12, 14, 16 and 18 in an inactive state and places phase shifter 20 in an active state. Phase shifter 18 is then adjusted to produce an 11.2 degree phase shift while the control lines receive a hexadecimal value of 2. A value of 2 places phase shifters 10, 12, 14, 16 and 20 in an inactive state while phase shifter 18 remains in an active state. The remaining phase shifters are adjusted in a similar fashion to produce a desired phase shift. Unfortunately, when more than one phase shifter is placed in an active state, the phase shifters produce an error which results from factors such as impedance mismatching. Figure 2 illustrates an example of a phase error that results from different combinations of active phase shifters as shown by the hexadecimal settings on the horizontal axis. The errors are relatively small for hexadecimal values corresponding to only one phase shifter being active, however, the errors are relatively large for hexadecimal values corresponding to several phase shifters being in an active state simultaneously. The performance of the six bit phase shifter is improved by adjusting each phase shifter so that the overall error produced by the plurality of phase shifters is decreased. The optimum error correction values for each of the phase shifters is obtained by calculating the main error effects of each binary phase shifter. These main error effects are determined by performing a statistical full-factorial analysis on averaged readings of phase errors. Figure 3 is a table illustrating the above referenced technique for a three bit variable phase shifter. The column of binary numbers corresponds to the control lines for phase shifters A, B and C. Whenever a bit has a value of 1, the corresponding phase shifter is placed in an active state, and whenever a bit has a value of 0, the corresponding phase shifter is placed in an inactive state. The phase error or performance error column corresponds to the difference between a desired and measured phase shift produced by the three bit phase shifter for each of the possible combinations of phase shifter states. The phase error differences associated with phase shifter A are obtained by substracting the phase errors for several pairs of measurements. The pairs of measurements are chosen so that only the state of phase shifter A changes while the state of the other phase shifters remain unchanged. The resulting phase error differences are then averaged to obtain an average phase error difference or a main error effect associated with phase shifter A. Phase shifter A is then readjusted, while the other phase shifters are inactive, to compensate for the main error effect. The main error effect for phase shifter B is obtained in a similar way. As with phase shifter A, the phase error differences are calculated by subtracting the phase errors for several pairs of measurements. The pairs are chosen so that the state of phase shifter B changes while the states of the other phase shifters remain constant. The phase error differences associated with phase shifter B are obtained by taking the differences D3-D1, D4-D2, D7-D5 and D8-D6. The phase error differences are then summed and divided by 4 to obtain a main error effect which is compensated for by readjusting phase shifter B while the other phase shifters are inactive. Phase shifter C is treated in a similar fashion. The subtractions carried out in this situation are D5- Dl, D6-D2, D7-D3 and D8-D4. These error differences are then summed and divided by 4 to produce a main error effect. Phase shifter C is then readjusted, while the other phase shifters are inactive, to compensate for this main error effect. The following equations summarize the above described calculations. A MAIN ERROR EFFECT = [CD2-D1)+(D4-D3)+(D6-D5)+(D8-D7)]/4 B MAIN ERROR EFFECT = [(D3-D1)+(D4-D2)+(D7-D5)- D8-D6)]/4 C MAIN ERROR EFFECT = [(D5-D1)+(D6-D2)+(D7-D3)+(D8-D4) ] /4 By readjusting each of the phase shifters as described above, the overall error for a three bit phase shifter is reduced. The overall error for a six bit phase shifter can be minimized in a similar fashion. Figure 4 illustrates an example of a phase shift error for the six bit phase shifter of figure 1 after each phase shifter has been readjusted using the method described with the respect to the three bit phase shifter. The figure illustrates that the phase error does not exceed approximately 3.5 degrees. This is an improvement over the situation illustrated in figure 2 where the maximum error was nearly 8 degrees. The present invention makes use of Yates' algorithm to categorize and quantify the sources of errors in a system comprising binary logic components. The error sources comprise main error effects and interactive error effects. Main error effects are errors caused by individual binary logic components, and interactive error effects are errors caused by the combined effects of two or more binary logic components. The main error effects can be corrected by adjusting a particular binary logic component. Figures 5A, 5B, 5C and 5D comprise a table that illustrates an example of using Yates' algorithm to categorize and quantify the above referenced error contributions. In this illustration the table refers to the six bit phase shifter shown in figure 1. Column 70 lists the hexadecimal settings corresponding to the control line values of the drivers in figure l. Column 72 refers to the measured performance or the phase measured at the output of the six bit phase shifter for each hexadecimal setting. Before these measurements are taken, each of the phase shifters is adjusted to produce minimal error while the remaining phase shifters are inactive. Column 74 refers to the performance error or phase error measured for each of the hexadecimal settings; the phase error is equal to the difference between the actual phase measurement of column 72 and the desired phase shift. For each hexadecimal setting, it is preferable to calculate a plurality of phase errors, and then average them before entering them into column 74. The noise related portion of the phase error is filtered out by taking the average. Next to column 74 are variable columns 76, 78, 80, 82, 84 and 86. One variable column is provided for each variable or binary logic component comprising the system being analyzed. In this illustration, six variable columns are provided for the six phase shifters. The values in column 76 are obtained using the sums and differences of the values contained in column 74. For the sake of convenience, the values in each column will be referenced with respect to the hexadecimal values in the corresponding row of column 70. The value in row 0 of column 76 is obtained by adding the values in row 0 and row l of column 74. The value in row 1 of column 76 is obtained by adding the values in row 2 and row 3 of column 74. The value in row 3 of column 76 is obtained by adding the values in row 4 and row 5 of column 74. This type of operation is continued until the value in row IF of column 76 is obtained by adding the values in row 3E and row 3F of column 74. The remaining values of column 76 are obtained by taking the difference between values contained in column 74. The value in row 20 of column 76 is obtaining by subtracting, the value in row 0 of column 74 from the value in row 1 of column 74. The value in row 21 of column 76 is obtained by subtracting the value in row 2 of column 74 from the value in row 3 of column 74. The value in row 22 of column 76 is obtained by subtracting the value in row 4 of column 74 from the value in row 5 of column 74. The value in row 23 of column 76 is obtained by subtracting the value in row 6 of column 74 from the value in row 7 of column 74. This type of operation continues until column 76 is completed by obtaining the value in row 3F of column 76 by subtracting the value in row 3E of column 74 from the value in row 3F of column 74. Columns 78, 80, 82, 84, and 86 are completed in a similar fashion. Column 78 is completed by taking the sums and differences of the values in column 76 in the same fashion as column 76 was completed by talking the sums and differences of the values in column 74. Column 80 is completed by taking the sums and differences of the values in column 78 in the same fashion as column 76 was completed by taking the sums and differences of the values in column 74. Column 82 is completed by taking the sums and differences of the values in column 80 in the same fashion as column 76 was completed by taking the sums and differences of the values in column 74. Column 84 is completed by taking the sums and differences of the values in column 82 in the same fashion as column 76 was completed by taking the sums and differences of the values in column 74. Column 86 is completed by taking the sums and differences of the values in column 84 in the same fashion as column 76 was completed by taking the sums and differences of the values in column 74. Column 88 quantifies each of the error effects. Column 88 is completed by dividing the value in column 86 by 32. In situations that use more or less than six binary logic components, there will be more or less than six columns between columns 74 and 88. In those cases, the value in column 88 is calculated by dividing the value in the column immediately preceding column 88 by 2 n_1 , where n is the number of binary logic components in the system. Values are provided for column 88 beginning with row l and continuing through row 3F. The value in row 1 of column 88 is obtained by dividing the value in row 1 of column 86 by 32. The value in row 2 of column 88 is obtained by dividing the value in row 2 of column 86 by 32. This type of operation continues until column 88 is completed by obtaining the value in row 3F of column 88 by dividing the value in row 3F of column 86 by 32. Column 90 categorizes each error effect identified in column 88. The binary numbers in column 90 indicate the source of the errors. Each digit of a binary number corresponds to a binary logic component. The right most digit corresponds to the binary logic component that is controlled by the least significant bit of the hexadecimal settings of column 70. The second digit from the right in a binary number corresponds to the binary logic component that is controlled by the second least significant bit of the hexadecimal settings. The third digit from the right in the binary number corresponds to the binary logic component that is controlled by the third least significant bit of the hexadecimal settings. The fourth digit from the right in the binary number corresponds to the binary logic component that is controlled by the fourth least significant bit of the hexadecimal settings. The fifth digit from the right in the binary number corresponds to the binary logic component that is controlled by the fifth least significant bit of the hexadecimal settings. The sixth digit from the right in the binary number corresponds to the binary logic component that is controlled by the sixth least significant bit of the hexadecimal settings. When only one digit in the binary number contains a "1", it indicates that the error effect in the corresponding row of column 88 is associated with the binary logic component or phase shifter corresponding to the digit. When multiple digits in the binary numbers in column 90 contain a "1", it indicates that the corresponding error effect in column 88 results from interactive error effects of the binary logic components or phase shifters corresponding to the digits in the binary number containing a "1". The values in column 88 that are associated with a single binary logic component or phase shifter result from main error effects, and are the values that are used by the present invention to minimize the overall error produced by the six bit phase shifter of figure 1. The binary numbers in column 90 indicate that rows 1, 2, 4, 8, 10 and 20 are the rows corresponding to a single binary logic component. The value in row l of column 88 corresponds to phase shifter 20 and is compensated for by readjusting phase shifter 20 when the control lines are equal to hexadecimal 1. The value in row 2 of column 88 corresponds to phase shifter 18 and is compensated for by readjusting phase shifter 18 when the control lines are equal to hexadecimal 2. The value in row 4 of column 88 corresponds to phase shifter 16 and is compensated for by readjusting phase shifter 16 when the control lines are equal to hexadecimal 4. The value in row 8 of column 88 corresponds to phase shifter 14 and is compensated for by readjusting phase shifter 14 when the control lines are equal to hexadecimal 8. The value in row 10 of column 88 corresponds to phase shifter 12 and is compensated for by readjusting phase shifter 12 when the control lines are equal to hexadecimal 10. The value in row 20 of column 88 corresponds to phase shifter 10 and is compensated for by readjusting phase shifter 10 when the control lines are equal to hexadecimal 20. The phase shifters are readjusted to compensate for the corresponding value in column 88 by adjusting their phase shift so that it is equal to the original phase shift plus the value in column 88. For example, phase shifter 20 is normally adjusted to 5.6 degrees. Row l of column 88 contains a value of i.3 degrees. In order to compensate for the 1.3 degrees, phase shifter 20 is readjusted to provide a shift of 6.9 degrees rather than 5.6 degrees. The other phase shifters are adjusted in similar fashion. By using the above described method, optimized error correction value can be obtained for a group of binary logic components. This method applies to a group containing any number of binary logic components and to binary logic components performing any function. Some typical applications that use binary logic components are phase shifters, attenuators, amplifiers, filters, and any other type of application in which binary logic components are used. Figure 8 illustrates an automated set up for gathering the data necessary to obtain the optimized error correction values. Unit under test 110 is the device containing the binary logic components. In this example, unit 110 is the six bit variable phase shifter of figure 1. Vector network analyzer 112 provides an input to unit 110 and receives the output from unit 110. It is preferable to use a Hewlett Packard 8753C vector network analyzer. The network analyzer provides the input to unit 110 and compares the input with the output received from unit 110 to determine the resulting phase shift. Computer 114 is used to control network analyzer 112. Computer 114 also controls the states of the individual phase shifters by providing a hexadecimal values to unit 110. Computer 114 can be any type computer that is convenient for controlling network analyzer 112 and controlling the switching of the binary logic components within unit 110, however, it is preferable to use a desk top computer. Computer 114 selects which of the phase shifters will be placed in a active state by transferring the appropriate hexadecimal value to unit 110. Computer 114 then obtains data regarding the phase shift produced by unit 110 using analyzer 112. When unit 112 measures the phase shift, it is preferable that unit 112 average a plurality of measurements to remove phase jitter that results from noise. Computer 114 continues this process for all possible phase shifter states. Computer 114 uses this information to complete an above described table and thereby produces the optimized error correction values for each phase shifter or binary logic component. Computer 114 can be programmed using any convenient programming language to facilitate producing an above described table.

Claims: I claim: 1. A method for optimizing error corrections for a plurality of binary logic components, comprising the steps of: (a) adjusting each binary logic component to minimize a difference between an actual performance and a desired performance while another binary logic component is in an inactive state; (b) determining a plurality of performance errors by calculating a difference between a desired performance and an actual performance for a plurality of combinations of states of said plurality of binary logic components; (c) determining an error difference associated with a binary logic component by comparing a first and a second performance error, said first performance error corresponding to a first combination of states of said plurality of binary logic components and said second performance error corresponding to a second combination of states of said plurality of binary logic components, said first and said second combination of states differing .pnly by a state of said binary logic component; and (d) adjusting said binary logic component based on said error difference associated with said binary logic component. 2. The method of claim 1, wherein the step of adjusting each binary logic component to minimize a difference between an actual performance and a desired performance is performed while a plurality of other binary logic components are in an inactive state. 3. The method of claim 1, wherein the step of determining an error difference associated with a binary logic component comprises determining a plurality of error differences associated with said binary logic component. 4. The method of claim 3, further comprising the step of averaging said plurality of error differences. 5. The method of claim 1, wherein the step of determining an error difference associated with a binary logic component comprises determining an error difference associated with each of said plurality of binary logic components. 6. The method of claim 5, further comprising the step of adjusting each of said plurality of binary logic components based on said error differernce associated with each of said plurality of binary logic components 7. The method of claim 6, wherein the step of determining an error difference associated with a binary logic component comprises determining a plurality of error differences associated with each of said plurality of binary logic components. 8. The method of claim 7, further comprising the step of averaging said plurality of error differences associated with each of said plurality of binary logic components. • 9. The method of claim 1, wherein the step of adjusting each binary logic component to minimize a difference between an actual performance and a desired performance comprises adjusting a phase shift produced by said binary logic component. 10. A method for optimizing error corrections for a plurality of binary logic components, comprising the steps of: (a) adjusting a phase shift introduced by each binary logic component to minimize a difference between an actual performance and a desired performance while a plurality of other binary logic components are in an inactive state; (b) determining a plurality of phase errors by calculating a difference between a desired phase shift and an actual phase shift for a plurality of combinations of states of said plurality of binary logic components; (c) determining a plurality of phase error differences associated with each of said plurality of binary logic components, a phase error difference associated with a binary logic component being determined by comparing a first and a second phase error, said first phase error corresponding to a first combination of states of said plurality of binary logic components and said second phase error corresponding to a second combination of states of said plurality of binary logic components, said first and said second combination of states differing only by a state of said associated binary logic component; (d) averaging said plurality of phase error differences associated with each of said plurality of binary logic components; and (e) adjusting each of said plurality of binary logic components based on an average phase error difference associated with each of said plurality of binary logic components.

Inventors: KOMAREK STEFAN R, KOMAREK, STEFAN, R.
Applicants: ALLIED SIGNAL INC, ALLIED-SIGNAL INC.
Application year: 1992
Main classification: G01R35
IPC codes: G06F17, H01P1, H01Q3, H03M1