There are 1025 different Gold codes of length 1023 bits, but only 32 are used. These Gold codes are quite often referred to as "pseudo-random noise" since they contain no data. However, this may be misleading since they are actually deterministic sequences.
If the almanac information has previously been acquired, the receiver picks which satellites to listen for by their PRN numbers. If the almanac information is not in memory, the receiver enters a search mode and cycles through the PRN numbers until a lock is obtained on one of the satellites. To obtain a lock, it is necessary that there be an unobstructed line of sight from the receiver to the satellite. The receiver can then acquire the almanac and determine the satellites it should listen for. As it detects each satellite's signal, it identifies it by its distinct C/A code pattern, then measures the received time for each satellite. To do this, the receiver produces an identical C/A sequence using the same PRN number as depicted in the diagram, referenced to its local clock, starting at the same time the satellite sent it. It then computes the offset to the local clock that generates the maximum correlation. This offset is the time delay from the satellite to the receiver, as told by the receiver's clock. Since the PRN repeats every millisecond, this offset is precise but ambiguous, and the ambiguity is resolved by looking at the data bits, which are sent at 50 Hz (20 ms/bit) and aligned with the PRN code.