Methods, systems, and computer program products for parallel correlation and applications thereof
First Claim
1. A method for correlating an encoded data word (X0-XM−
- 1) with encoding coefficients (C0-CM−
1), wherein each of (X0-XM−
1) is represented by one or more bits and each said coefficient is represented by one or more bits, wherein each said coefficient has k possible states, wherein M is greater than 1, comprising;
(1) receiving the encoded data word (X0-XM−
1);
(2) multiplying X0 with states C0(0) through C0(K−
1) of said coefficient C0, thereby generating results X0C0(0) through X0C0(K−
1);
(3) repeating step (1) for data bits (X1-XM−
1) and corresponding said coefficients (C1-CM−
1), respectively;
(4) grouping said results of steps (2) and (3) into N groups and summing combinations within each of said N groups, thereby generating a first layer of correlation results;
(5) grouping the results of step (4) and summing combinations of results within each group to generate one or more additional layers of results, and repeating this process until a final layer of results includes a correlation output for states of the set of coefficients (C0-CM−
1);
(6) comparing magnitudes output of said correlation outputs, thereby identifying a most likely code encoded on said data word; and
(7) outputting the most likely code.
1 Assignment
0 Petitions
Accused Products
Abstract
A fast correlator transform (FCT) algorithm and methods and systems for implementing same, correlate an encoded data word (X0-XM−1) with encoding coefficients (C0-CM−1), wherein each of (X0-XM−1) is represented by one or more bits and each said coefficient is represented by one or more bits, wherein each coefficient has k possible states, and wherein M is greater than 1. X0 is multiplied by each state (C0(0) through C0(k−1)) of the coefficient C0, thereby generating results X0C0(0) through X0C0(k−1). This is repeated for data bits (X1-XM−1) and corresponding coefficients (C1-CM−1), respectively. The results are grouped into N groups. Members of each of the N groups are added to one another, thereby generating a first layer of correlation results. The first layer of results is grouped and the members of each group are summed with one another to generate a second layer of results. This process is repeated until a final layer of results is generated. The final layer of results includes a separate correlation output for each possible state of the complete set of coefficients (C0-CM−1). The final layer of results is compared to identify a most likely code encoded on the data word. The summations can be optimized to exclude summations that would result in invalid combinations of the encoding coefficients (C0-CM−1). Substantially the same hardware can be utilized for processing in-phase and quadrature phase components of the data word (X0-XM−1). The coefficients (C0-CM−1) can represent real numbers and/or complex numbers. The coefficients (C0-CM−1) can be represented with a single bit or with multiple bits (e.g., magnitude). The coefficients (C0-CM−1) represent, for example, a cyclic code keying (“CCK”) code set substantially in accordance with IEEE 802.11 WLAN standard.
780 Citations
32 Claims
-
1. A method for correlating an encoded data word (X0-XM−
- 1) with encoding coefficients (C0-CM−
1), wherein each of (X0-XM−
1) is represented by one or more bits and each said coefficient is represented by one or more bits, wherein each said coefficient has k possible states, wherein M is greater than 1, comprising;(1) receiving the encoded data word (X0-XM−
1);(2) multiplying X0 with states C0(0) through C0(K−
1) of said coefficient C0, thereby generating results X0C0(0) through X0C0(K−
1);(3) repeating step (1) for data bits (X1-XM−
1) and corresponding said coefficients (C1-CM−
1), respectively;(4) grouping said results of steps (2) and (3) into N groups and summing combinations within each of said N groups, thereby generating a first layer of correlation results; (5) grouping the results of step (4) and summing combinations of results within each group to generate one or more additional layers of results, and repeating this process until a final layer of results includes a correlation output for states of the set of coefficients (C0-CM−
1);(6) comparing magnitudes output of said correlation outputs, thereby identifying a most likely code encoded on said data word; and (7) outputting the most likely code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
- 1) with encoding coefficients (C0-CM−
-
27. A system for correlating an encoded data word (X0-XM−
- 1) with encoding coefficients (C0-CM−
1), wherein each of (X0-XM−
1) is represented by one or more bits and each said coefficient is represented by one or more bits, wherein each said coefficient has k possible states, wherein M is greater than 1, comprising;inputs for each of (X0-XM−
1);a multiplier coupled to each said input; N summers, each coupled to a different group of outputs of said multipliers, whereby outputs of said N summers form a first layer of correlation results; one or more additional layers of summers, each said additional layer of summers coupled to outputs of a previous layer of correlation results, said one or more additional layers of summers including a final layer of summers having a final layer of results including a separate correlation output for each possible state of the complete set of coefficients (C0-CM−
1);a magnitude comparator coupled to said final layer of results; and means for selecting a state of the complete set of coefficients (C0-CM−
1) associated with a maximum correlation output.
- 1) with encoding coefficients (C0-CM−
-
28. A system for correlating an encoded data word (X0-XM−
- 1) with encoding coefficients (C0-CM−
1), wherein each of (X0-XM−
1) is represented by one or more bits and each said coefficient is represented by one or more bits, wherein each said coefficient has k possible states, wherein M is greater than 1, comprising;means for multiplying X0 with states C0(0) through C0(K−
1) of said coefficient C0, thereby generating results X0C0(0) through X0C0(K−
1);wherein said means for multiply includes means for multiplying X1-XM−
1 with corresponding coefficients (C1-CM−
1), respectively;first means for grouping results of said means for multiplying into N groups and for summing combinations within each of said N groups, thereby generating a first layer of correlation results; second means for grouping results of said first means for grouping and for summing combinations of results within each group to generate one or more additional layers of results, and repeating this process until a final layer of results includes a correlation output for states of said set of coefficients (C0-CM−
1); andmeans for comparing magnitudes output of said correlation outputs, thereby identifying a most likely code encoded on said data word.
- 1) with encoding coefficients (C0-CM−
-
29. A method for parallel correlation detection, comprising the steps of:
-
(1) receiving noisy input samples X0, X1, X2, X3, X4, X5, X6, and X7 from which a code is to be extracted; (2) forming four sets of sample pairs (X0, X1), (X2, X3), (X4, X5), and (X6, X7) from said input samples; (3) forming four correlation kernels (XiCi+XjCj), (—
XiCi+XjCj), (XiCi—
XjCj), and (—
XiCi—
XjCj) for each set of sample pairs formed in step (2), wherein Xi and Xj represent one of the four sample pairs formed in step (2) and wherein Ci and Cj represent predetermined weighting factors;(4) combining the correlation kernels formed in step (3) to form a fast correlation transform trellis with sixty-four eight-tuple options; (5) using the sixty-four eight-tuple options formed in step (4) to extract the code from the input samples received in step (1); and (6) outputting the extracted code.
-
-
30. A system for parallel correlation detection, comprising:
-
a first module that receives noisy input samples X0, X1, X2, X3, X4, X5, X6, and X7 from which a code must be extracted; a second module that forms four sets of sample pairs (X0, X1), (X2, X3), (X4, X5), and (X6, X7) from said input samples; a third module that forms four correlation kernels (XiCi+XjCj), (−
XiCi+XjCj), (XiCi−
XjCj), and (—
XiCi—
XjCj) for each set of sample pairs formed in said second module, wherein Xi and Xj represent one of the four sample pairs formed in said second module and wherein Ci and Cj represent predetermined weighting factors;a fourth module that combines the correlation kernels formed in said third module to form a fast correlation transform trellis with sixty-four eight-tuple options; and a fifth module that compares magnitudes of outputs of said fast correlation transform trellis to identify a most likely code encoded in said noisy input samples.
-
-
31. A method for correlating an encoded data word (X0-XM−
- 1) with encoding coefficients (C0-CM−
1), wherein each of (X0-XM−
1) is represented by one or more bits and each said coefficient is represented by one or more bits, wherein each said coefficient has k possible states, wherein M is greater than 1, comprising;(1) receiving the encoded data word (X0-XM−
1);(2) multiplying X0 with states of said coefficient C0; (3) repeating step (2) for data bits (X1-XM−
1) and corresponding said coefficients, respectively;(4) grouping said results of steps (2) and (3) into N groups and summing combinations within each of said N groups, thereby generating a first layer of correlation results; (5) grouping the results of step (4) and summing combinations of results within each group to generate one or more additional layers of results, and repeating this process until a final layer of results includes a correlation output for each possible state of the set of coefficients; (6) comparing magnitudes output of said correlation outputs, thereby identifying a most likely code encoded on said data word; and (7) outputting the most likely code.
- 1) with encoding coefficients (C0-CM−
-
32. A method for parallel correlation detection, comprising the steps of:
-
(1) receiving noisy input samples from which a code must be extracted; (2) forming at least four sets of sample pairs from said input samples; (3) forming at least four correlation kernels for each set of sample pairs formed in step (2), wherein Xi and Xj represent one of the sample pairs formed in step (2) and wherein Ci and Cj represent predetermined weighting factors; (4) combining the correlation kernels formed in step (3) to form a fast correlation transform trellis with at least sixty-four eight-tuple options; (5) using the at least sixty-four eight-tuple options formed in step (4) to extract the code from the input samples received in step (1); and (6) outputting the extracted code.
-
Specification