Method and apparatus for segmented code correlation
First Claim
Patent Images
1. A parallel correlator comprising:
- a data memory having a sample-sequential input and a sample-parallel output, said data memory organizing the sample-sequential input into blocks of n sequential samples and providing each of said blocks cyclically to said sample-parallel output;
a segmented code register organized to receive a code sequence as an plurality of input samples, said segmented code register organizing the input samples into N segments of L length, wherein N is less than n and greater than one;
the segmented code register configured to register the input samples in their order of input and to one of forward-shift or backward-shift the registered samples on each clock cycle prior to parallel output, said forward-shift shifting the registered samples by one sample position and the backward-shift shifting the registered samples by one segment of samples;
said segmented code register having a sample parallel output; and
an inner product calculator having at least two sample-parallel inputs, said inner product calculator having one output representing the inner product of the two sample-parallel inputs;
wherein a first of said N segments is provided to the inner product calculator for processing with each of said blocks prior to providing a second of said N segments to the inner product calculator for processing with any of said blocks.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and an apparatus is disclosed for efficient cross correlation of a plurality of signal vectors. Incoming data is partitioned into several segments and processed according to an algorithm where data rotation is a function of post-correlation memory size.
38 Citations
54 Claims
-
1. A parallel correlator comprising:
-
a data memory having a sample-sequential input and a sample-parallel output, said data memory organizing the sample-sequential input into blocks of n sequential samples and providing each of said blocks cyclically to said sample-parallel output; a segmented code register organized to receive a code sequence as an plurality of input samples, said segmented code register organizing the input samples into N segments of L length, wherein N is less than n and greater than one;
the segmented code register configured to register the input samples in their order of input and to one of forward-shift or backward-shift the registered samples on each clock cycle prior to parallel output, said forward-shift shifting the registered samples by one sample position and the backward-shift shifting the registered samples by one segment of samples;
said segmented code register having a sample parallel output; andan inner product calculator having at least two sample-parallel inputs, said inner product calculator having one output representing the inner product of the two sample-parallel inputs;
wherein a first of said N segments is provided to the inner product calculator for processing with each of said blocks prior to providing a second of said N segments to the inner product calculator for processing with any of said blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A parallel correlator comprising:
-
a data memory having a sample-sequential input and a sample-parallel output, said data memory organizing the sample-sequential input into blocks of n sequential samples and providing each of said blocks cyclically to said sample-parallel output; a Doppler memory having a sample-sequential input and a sample-parallel output, said Doppler memory organizing the sample-sequential input into blocks of n sequential samples and providing each of said Doppler memory blocks cyclically to said sample-parallel output; a segmented code register organized to receive a code sequence as a plurality of input samples, said segmented code register organizing the input samples into N segments of L length, wherein N is less than n and greater than one;
the segmented code register configured to store the input samples in their order of input and to forward shift or backward shift the registered samples on each clock cycle prior to parallel output, said forward shift shifting the registered samples by one sample position and the backward shift shifting the registered samples by one segment of samples;
said segmented code register having a sample parallel output; andan inner product calculator having three sample-parallel inputs, said inner product calculator having one output representing the inner product of the three sample-parallel inputs, wherein a first of said N segments is provided to the inner product calculator for processing with each of said blocks and Doppler memory blocks prior to providing a second of said N segments to the inner product calculator for processing with any of said blocks or Doppler memory blocks. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method of segmented correlation comprising:
-
providing a data memory for receiving a sample-sequential input and providing a sample-parallel output, the data memory organizing the sample serial input into blocks of n sequential samples and providing each of said blocks cyclically to said sample-parallel output; providing a segmented code register organized to receive a code sequence as a plurality of input samples said segmented code register organizing the input samples into N segments of L length, wherein N is less than n and greater than one, the segmented code register storing the input samples in an order of input and one of forward- or backward-shifting the registered samples on each clock cycle prior to parallel output, the forward-shifting shifting the registered samples by one sample position and the backward-shifting shifting the register samples by one segment of samples per clock cycle;
said segmented code register having a sample parallel output; andcorrelating the output from the segmented code register with the sample serial output from the data memory to provide a correlation result representing the inner product of the data memory and the segmented code register;
wherein a first of said N segments is correlated with each of said blocks prior to correlating a second of said N segments with any of said blocks. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method for segmented correlation, comprising:
-
providing a data memory for receiving a sample-sequential input and providing a sample-parallel output, the data memory organizing the sample serial input into blocks of n sequential samples and providing each of said blocks cyclically to said sample-parallel output; providing a Doppler memory for receiving a sample-sequential input and providing a sample-parallel output, the Doppler memory organizing the sample serial input into blocks of n sequential samples; providing a segmented code register organized to receive a code sequence as a plurality of input samples, said segmented code register organizing the input samples into N segments of L length, wherein N is less than n and greater than one, the segmented code register storing the input samples in an order of input and one of forward- or backward-shifting the registered samples on each clock cycle prior to parallel output, the forward-shifting shifting the registered samples by one sample position and the backward-shifting shifting the register samples by one segment of samples per clock cycle;
said segmented code register having a sample parallel output andcorrelating the segmented sample output from the segmented code register with the sample serial output from the data memory and the Doppler memory to provide a an inner product result;
wherein a first of said N segments is correlated with each of said blocks and Doppler memory blocks prior to correlating a second of said N segments with any of said blocks and Doppler memory blocks. - View Dependent Claims (33, 34, 35, 36, 37, 38)
-
-
39. A machine-readable medium having stored thereon a plurality of executable instructions to be executed by a processor to conduct segmented correlation method, the method comprising:
-
receiving a first signal and organizing sampled elements representing said first signal into a plurality of blocks each having n sequential first samples; receiving a second signal and organizing sampled elements representing said second signal as N segments of L length, wherein N is less than n and greater than one; cross-correlating the n sequential first samples with a first of said N segments at first clock cycle; circularly forward-shifting the first N segment by one sample and cross-correlating the shifted first N segment with n sequential first samples at second clock cycle; repeating the step of circularly forward-shifting the first N segment for P clock cycles; and circularly backward-shifting the first N segment by L elements after P+1 clock cycles; wherein the first N segment is cross-correlated with the n sequential first samples of each of the plurality of blocks prior to cross-correlating another of the N segments with any of the plurality of blocks. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
Specification