1461151074-c65794d0-1b23-4d55-8e20-437aa2fa5d61

What is claimed is:

1. A method for extracting Dppler-error components from digitized signal samples transmitted by a satellite, said method comprising the steps of:
receiving and digitizing said signals to produce digitized samples;
squaring said digitized signal samples to produce squared samples;
decimating said squared samples;
auto-correlating said squared samples to produce an auto-correlate; and
transforming said auto-correlate to the frequency domain.
2. The method of claim 1 comprising the further steps of:
obtaining the significant frequency components of said auto-correlate; and
scaling said frequency components for actual offset frequencies.
3. The method of claim 1 wherein said step of decimating the squared samples includes:
applying said squared samples to a low-pass filter, creating narrow-band samples, said narrow-band samples having a plurality of sinusoidal components, wherein said low-pass filter reduces the signal and noise bandwidth of said squared samples and reduces the number of narrow-band samples to be Fourier transformed.
4. A computer useable medium having stored therein instructions for causing a processing unit to execute the following method:
receiving and digitizing said satellite signals to produce digitized signal samples;
squaring said digitized signal samples to produce squared samples;
decimating said squared samples;
auto-correlating said squared samples to produce an auto-correlate; and
transforming said auto-correlate to the frequency domain.
5. A machine having a memory which contains data representing auto-correlates, said auto-correlates generated by the following method:
receiving and digitizing said satellite signals to produce digitized signal samples;
squaring said digitized signal samples to produce squared samples;
decimating said squared samples;
auto-correlating said squared samples to produce an auto-correlate; and
transforming said auto-correlate to the frequency domain.
6. A method of noise-filtering the digitized signal samples of said signals received from said satellites, said signals from satellites containing noise-energy, said method comprising the steps of:
receiving and digitizing said noisy signals to produce digitized signal samples, said digitized signal samples having been squared;
auto-correlating said squared samples to emphasize the sinusoidal components in said squared samples, wherein said auto-correlation produces an auto-correlate that concentrates said noise-energy of said squared samples in a zero-time-shift component; and
removing said zero-time-shift component from the auto-correlate.
7. The method of claim 6 comprising the further steps of:
transforming said auto-correlate to the frequency domain; and
examining the resulting spectrum of said auto-correlate to obtain the frequency-offset components of said auto-correlate; and
scaling said frequency-offset components to yield actual offset frequencies.
8. The method of claim 7 comprising the further steps of:
using an actual offset frequency to compensate said digitized signal samples for a frequency-offset; and
determining the satellite identification code from said compensated digitized signal samples.
9. The method of claim 7 comprising the further steps of:
using the actual offset frequencies to compensate the digitize signal samples for the frequency-offsets; and
determining the pseudorange timing to said satellite from said compensated digitized signal samples.
10. A computer useable medium having stored therein instructions for causing a processing unit to execute the following method:
receiving and digitizing signals from satellites, said digitized signals having been squared, said signals from satellites containing noise-energy;
auto-correlating said squared samples of digitized signals received from said satellite signals to emphasize the sinusoidal components in said squared samples, wherein said auto-correlation produces an auto-correlate that concentrates said noise-energy of said squared samples in a zero-time-shift component; and
removing said component from the auto-correlate.
11. A machine having a memory which contains data representing digitized samples of satellite signals, said samples of satellite signals produced by the following method:
receiving and digitizing signals from satellites, said digitized signals having been squared, said signals from satellites containing noise;
auto-correlating said squared samples of digitized signals received from said satellite signals to emphasize the sinusoidal components in said squared samples, wherein said auto-correlation produces an auto-correlate that concentrates said noise-energy of said squared samples in a zero-time-shift component; and
removing said component from the auto-correlate.
12. A method for extracting frequency-offset components for compensating for the frequency-offsets contained in the digitized signal samples of signals transmitted by a satellite, said method comprising the steps of:
receiving and digitizing said digitized signal signals to produce digitized signal samples;
squaring said digitized signal samples to produce squared samples;
decimating said squared samples;
auto-correlating said squared samples to produce an auto-correlate;
transforming said auto-correlate to the frequency domain;
examining the resulting spectrum of said auto-correlate to obtain the frequency-offset components of said auto-correlate;
scaling said frequency-offset components to yield actual offset frequencies; and
using said actual offset frequencies to compensate for said frequency-offsets of said digitized signal samples.
13. The method of claim 12 further comprising the additional step of using one of said actual offset frequencies to obtain a unique identifier for said satellite transmitting said signal.
14. The method of claim 12 including the further steps of computing satellite ID and pseudorange information and transmitting said Satellite ID and pseudorange information to an operations center.
15. A computer useable medium having stored therein instructions for causing a processing unit to execute the following method:
receiving and digitizing signals from satellites to produce digitized samples;
squaring said digitized signal samples to produce squared samples;
auto-correlating said squared samples to produce an auto-correlate;
transforming said auto-correlate to the frequency domain;
examining the resulting spectrum of said squared samples to obtain the frequency-offset components of said auto-correlate;
scaling said frequency-offset components to yield actual offset frequencies; and
using said actual offset frequencies to compensate for said frequencyoffsets components of said digitized signal samples.
16. A device for extracting carrier components from digitized signal samples of signals transmitted by a satellite, comprising:
means for receiving and digitizing said signals to produce digitized samples;
means for squaring said digitized samples to produce squared samples;
means for auto-correlating said squared samples to produce an auto-correlate;
17. The device of claim 16 further comprising:
means for obtaining frequency-offset components of said auto-correlate; and
means for scaling said frequency-offset components to yield the actual offset frequencies.
18. The device of claim 16 further including means for decimating the squared samples includes means for low-pass filtering said squared samples to create narrow-band samples, said narrow-band samples having a plurality of sinusoidal components, wherein said low-pass filter reduces the signal and noise bandwidth of said squared samples.
19. The device of claims 16, 17 or 18 wherein said device is an integral portion of a two-way wireless device.
20. The device of claims 16, 17 or 18 wherein said device is included in an attachment, said attachment being coupled to a two-way wireless device.
21. A device for filtering digitized samples of signals received from a satellite, said device comprising:
means for receiving a digitized signal from said satellite, said signal containing noise-energy;
means for digitizing the signal, to provide digitized samples;
means for squaring said digitized signal samples, to provide a squared sample of signals from said satellite;
means for auto-correlating said squared samples of signals received from said satellite, to produce a signal sample that emphasizes the sinusoidal components in said squared sample, whereby said auto-correlation produces an auto-correlate that concentrates said noise-energy of said squared samples in a zero-time-shift component; and
means for removing said zero-time-shift component from the autocorrelate.
22. The device of claim 21 further comprising:
means for transforming said auto-correlate to the frequency domain;
means for examining the resulting spectrum of said auto-correlate to obtain the frequency-offset components of said auto-correlate; and
means for scaling said frequency-offset components to yield actual offset frequencies.
23. The device of claim 21 further comprising:
means for compensating for the Dppler-errors to enable determining the unique satellite identification code.
24. The device of claims 21, 22 or 23 wherein said device is an integral portion of a two-way wireless device.
25. The device of claims 21, 22 or 23 wherein said device is included in an attachment, said attachment being coupled to a two-way wireless device.
26. A wireless device comprising:
an antenna that receives and transmits full-duplex wireless signals to and from a user;
processing means, coupled to said antenna, for processing said wireless signals to produce audio signals and communicating said audio signals to said user;
a GPS antenna to receive GPS signals, said GPS signal containing noise-energy;
means for digitizing said GPS signals into digitized signal samples;
means for squaring said digitized signal samples to produce squared samples;
means for decimating said squared samples;
auto-correlation means for auto-correlating said squared samples to produce an auto-correlate; and
means for transforming said auto-correlate to the frequency domain.
27. The wireless device of claim 26 wherein said auto-correlation means comprises:
means for emphasizing the sinusoidal components of said squared signal samples;
means for concentrating said noise-energy of said squared sample in a zero-time-shift component; and
means for removing said zero-time-shift component from said autocorrelate.
28. A wireless device attachment comprising:
means for receiving GPS signals, said GPS signals containing noise energy;
means for digitizing said GPS signals into digitized signal samples;
means for squaring said digitized signal samples to produce squared samples;
means for decimating said squared samples;
means for auto-correlating squared sample to produce an auto-correlate; and
means for transforming said auto-correlate to the frequency domain.
29. The wireless device attachment of claim 28 further comprising:
means for emphasizing the sinusoidal components in said squared samples,
means for concentrating said noise-energy in said squared samples in a zero-time-shift component; and
means for removing said zero-time-shift component from said auto correlate.
30. A method for extracting Dppler-errors from a set of digitized samples of signals transmitted by a satellite, said method comprising the steps of:
receiving and capturing a set of digitized signal samples of said signals;
squaring said digitized signal samples to produce a set of squared samples;
auto-correlating said set of squared samples to produce an auto-correlate; and
transforming said auto-correlate to the frequency domain.
31. The method of claim 30 comprising the further steps of:
obtaining frequency-offset components of said auto-correlate; and
scaling said frequency-offset components to yield actual offset frequencies.
32. A computer useable medium having stored therein instructions for causing a processing unit to execute the following method:
receiving and capturing a set of digitized samples of signals from satellites;
squaring said digitized signal samples to produce a set of squared samples;
auto-correlating said set of squared samples to produce an auto-correlate; and
transforming said auto-correlate to the frequency domain.
33. A method for extracting carrier components from a set of digitized samples of signals transmitted by a satellite, said method comprising the steps of:
receiving and capturing a set of digitized samples of said signals from satellites;
squaring said digitized samples to produce a set of squared samples;
auto-correlating said set of squared samples to produce an auto-correlate; and
transforming said auto-correlate to the frequency domain.
34. The method of claim 33 comprising the further steps of:
obtaining the frequency-offset components of said squared auto-correlate; and
scaling said frequency-offset components to yield actual offset frequencies.
35. The method of claim 33 wherein said step of decimating the squared samples includes:
applying said squared samples to a low-pass filter and creating a plurality of narrow-band samples, said narrow-band signals having a plurality of sinusoidal components, wherein said low-pass filter reduces the signal and noise bandwidth of said samples.
36. A computer useable medium having stored therein instructions for causing a processing unit to execute the following method:
receiving and capturing a set of digitized signal samples of signals from satellites;
squaring said digitized samples to produce a set of squared samples;
decimating said squared samples; and
transforming said squared samples to the frequency domain.
37. A method for extracting frequency-offset components to compensate for the time shifts caused by the frequency-offsets contained in the digitized samples of signals transmitted by a satellite, said method comprising the steps of:
receiving and digitizing said signals to produce digitized signal samples;
squaring said digitized signal samples to produce squared samples;
decimating said squared samples;
auto-correlating said squared samples to produce an auto-correlate;
transforming said auto-correlate to the frequency domain;
examining the resulting spectrum of said auto-correlate to obtain the frequency-offset components of said auto-correlate;
scaling said frequency-offset components to yield actual offset frequencies; and
using said actual offset frequencies to compensate for the Dppler-time shift related to the said frequency-offsets components of said auto-correlate.
38. The method of claim 37 further comprising the additional step of using said actual offset frequencies to obtain a unique identifier for said satellite transmitting said signal.
39. The method of claim 37 including the further steps of computing satellite ID and pseudorange information and transmitting said satellite ID and pseudorange information to an operations center.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method for booting a computer system having multiple Central Processing Units (CPUs), comprising:
initializing at least two CPUs of the multiple CPUs at start of a booting process;
selecting, by each of the at least two initialized CPUs, a task according to a task description chart (TDC) stored in the computer system, wherein the TDC includes information of a plurality of tasks of the booting process and selection information of the tasks; and
executing, by the at least two initialized CPUs, the selected tasks at least partially in parallel.
2. The method according to claim 1, wherein the TDC is accessed by each of the at least two initialized CPUs, and when a first CPU of the at least two initialized CPUs accesses the TDC, the first CPU locks the TDC, and the locked TDC is not accessible by CPUs other than the first CPU.
3. The method according to claim 2, wherein the selection information of the tasks further comprises a priority field indicating a priority of each of the tasks, and a task with a highest priority is first selected by the first CPU.
4. The method according to claim 2, wherein the selection information further comprises a dependency field indicating a dependency of a first task from a second task, and the first task is selectable when the second task is marked as completed.
5. The method according to claim 2, wherein after the first CPU selects a third task according to the selection information, the first CPU marks a lock field of the third task as locked, and wherein the third task being marked as locked is not selectable by the initialized CPUs other than the first CPU.
6. The method according to claim 2, wherein the selection information further comprises a status field indicating whether any of the tasks is completed, and wherein after completing an execution of a task, the CPU executing the task marks in the status field of the task as completed, and wherein the task being marked as completed is not selectable by the initialized CPUs.
7. A computer system, comprising:
a memory configured to store a task description chart (TDC) and a first instruction, wherein the TDC includes information of a plurality of tasks of a booting process of the computer system and selection information of the tasks; and
multiple Central Processing Units (CPUs) coupled with the memory, wherein at least two CPUs of the multiple CPUs are initialized at a start of the booting process, wherein by executing the first instruction, each of the at least two initialized CPUs is configured to select a task according to the TDC, and wherein the at least two initialized CPUs execute the selected tasks at least partially in parallel.
8. The computer system according to claim 7, wherein the TDC is accessed by each of the at least two initialized CPUs, and a first CPU of the initialized CPUs is configured to lock the TDC after accessing the TDC according to the first instruction, and the locked TDC is not accessible by CPUs other than the first CPU.
9. The computer system according to claim 8, wherein the selection information of the tasks further comprises a priority field indicating a priority of each of the tasks, and the first CPU is configured select a task with a highest priority among the tasks in the TDC.
10. The computer system according to claim 8, wherein the selection information further comprises a dependency field indicating a dependency of a first task from a second task, and the first task is selectable when the second task is marked as completed.
11. The computer system according to claim 8, wherein the first CPU is further configured to mark a lock field of a third task after the first CPU selects the third task, and wherein the third task being marked as locked is not selectable by the initialized CPUs other than the first CPU.
12. The computer system according to claim 8, wherein the selection information further comprises a status field indicating whether any of the tasks is completed, and wherein after completing an execution of a task, the CPU executing the task is configured to mark in the status field of the task as completed, and wherein the task being marked as completed is not selectable by the initialized CPUs.
13. The computer system according to claim 7, further comprising:
an initializing circuit configured to initialize a CPU of the multiple CPUs as a boot CPU, wherein the boot CPU is configured to initialize the at least two initialized CPUs of the multiple CPUs according to a second instruction stored in the memory.
14. The computer system according to claim 7, wherein the booting process includes multiple tasks executable in parallel by the at least two initialized CPUs, and the booting process of the computer system is a computer program stored in the memory that includes a basic input output system (BIOS) module, a boot loader module and a kernel module.
15. The computer system according to claim 14, wherein steps from the BIOS module, the boot loader module and the kernel module are modularized into steps including independent or asynchronous steps, and the modularized steps are separated out to form tasks of the booting process.
16. The computer system according to claim 15, wherein peripheral devices initialization steps in the BIOS module are divided into initialization steps for initializing a device other than modifying a configuration register and register steps for modifying the configuration register based on the initialization steps, and the initialization steps and the register steps are separated out to form different tasks of the at least two tasks.
17. The computer system according to claim 8, wherein the selection information further comprise a size field indicating a size of each of the tasks, and
wherein the first CPU is further configured to determine whether to execute a task according to an available memory for executing tasks and size of the task.
18. The computer system according to claim 7, wherein the at least two initialized CPUs are configured to continue to select and execute the tasks according to the TDC until all tasks whose information is in the TDC are executed.
19. A non-transitory computer readable medium storing computer executable program codes for booting a computer system having multiple Central Processing Units (CPUs), wherein at least two CPUs of the multiple CPUs are initialized at start of the booting process and executes the program codes which includes instructions for:
selecting, by each of the at least two initialized CPUs, a task according to a task description chart (TDC) stored in the computer system, wherein the TDC includes information of a plurality of tasks of the booting process and selection information of the tasks; and
executing, by the at least two initialized CPUs, the selected tasks at least partially in parallel.
20. The non-transitory computer readable medium according to claim 19, wherein the TDC is accessed by each of the at least two initialized CPUs, and when a first CPU of the initialized CPUs accesses the TDC, the first CPU locks the TDC, and the locked TDC is not accessible by CPUs other than the first CPU.