The following experiment takes an arbitrary GoldSequence and correlates that sequence with every other GoldSequence of GPS. There seems to be something special with sequence #37. It shows 2 peaks!

The java-program (with very little comments):

	public void fillArray16() {
		// correlation experiments
		// construct a test-input with 1200 samples of Gold26 + noise
		// find the match-point with all other possible sequences
		// display peak in 3d
		int shift = 0; // display only most interesting part
		int inplen = 2500;
		double[] testinput = new double[inplen];
		double[] bins = new double[inplen];
		int prns = 37; // # PRN sequences
		double[][] plotData3d = new double[1268][prns];
		Random r = new Random();
		int noise = 3;
		GoldSequence gold26;
		gold26 = new GoldSequence(37); // find correlation with prn37 
		for (int i = 0; i < testinput.length; i++) {
			testinput[i] = gold26.nextan() + noise * r.nextGaussian();
		}
		//implementation of a correlator
		for (int prn = 1; prn <= prns; prn++) {
			GoldSequence ref = new GoldSequence(prn);
			for (int i = 0; i < 1268; i++) {
				double acc = 0;
				for (int j = 0; j < 1023; j++) {
					if ((i + j) < inplen) {
						acc = acc + testinput[i + j] * ref.nextan();
					}
				}
				bins[i] = acc;
			}
			for (int i = 0; i < 1268; i++) {
				plotData3d[i][prn - 1] = (bins[i + shift]) / 10.0;
			}
		}
		int id = 1;
		ShowPlot3d myPlot = new ShowPlot3d(id, plotData3d, "correlator");
		myPlot.showFigure();
	}

The output shows 2 peaks:

correlator (66K)

I expect 2 peaks at the utmost (last) row. The test-pattern is #37, the very last PRN-sequence. However there are 2 more peaks. The explanation is in the numbers for the taps in GoldSequence: A snippet of the coding:

	private int[][] magnum = 
		{	{2,6}, {3,7}, {4,8}, {5,9}, {1,9}, {2,10}, {1,8},
			{2,9}, {3,10},{2,3}, {3,4}, {5,6}, {6,7},  {7,8},
			{8,9}, {9,10},{1,4}, {2,5}, {3,6}, {4,7},  {5,8},
			{6,9}, {1,3}, {4,6}, {5,7}, {6,8}, {7,9},  {8,10},
			{1,6}, {2,7}, {3,8}, {4,9}, {5,10},{4,10}, {1,7},
			{2,8}, {4,10}
		};

There are two pairs {4,10}. I don't know yet if that is perhaps an error in the book "a software defined gps and galileo receiver". Note: I asked the author and the pointed me to the original doc. This is intended.