SoftGPS project

This page is no longer maintained!
The page contents was moved. Please visit the new page instead:
http://gfix.dk/matlab-gnss-sdr-book/matlab-code-fixes/

Known issues

  • Functions deg2dms and dms2mat cannot be found by Matlab.
    These functions are part of the Mapping toolbox for Matlab. Here are substitute functions: deg2dms.m, dms2mat.m. It is recommended to place these functions in the folder GNSS_SDR/geoFunctions.
  • Functions fxcorr, fxcorrBOC11, codephase, multipathBOC and acf_boc are missing.
    These functions are inside of the files Scurve.m and multEnvBOC.m respectively.
  • Function PRNgen.m is missing.
    Use generateCAcode.m instead (from GNSS_SDR/include folder).
  • Functions R.m and R_BL.m cannot be found by Matlab.
    Here are the download links for the missing functions: R.m, R_BL.m.
  • Setting "Number of bytes to skip" is not set properly in settings GUI.
    A variable is misspelled at line 180 in file setSettings.m. Text settings.skipNuberOfBytes should be corrected to: settings.skipNumberOfBytes.
  • Software falls into an infinite loop after tracking, when 4 channels are selected.
    The problem occurs in one of the functions for coordinate transformations - cart2geo.m. For some reason the function fails to approximate height precise enough. Further investigations are needed. At the moment a quick fix would be to modify the function cart2geo.m as shown here (starting at line 30):
    h = 0.1; oldh = 0;
    iterations = 0;
    while abs(h-oldh) > 1.e-12
       oldh = h;
       N = c/sqrt(1+ex2*cos(phi)^2);
       phi = atan(Z/((sqrt(X^2+Y^2)*(1-(2-f(i))*f(i)*N/(N+h)))));
       h = sqrt(X^2+Y^2)/cos(phi)-N;
    
       iterations = iterations + 1;
       if iterations > 100
           fprintf('Failed to approximate h with desired precision. h-oldh: %e.\n', h-oldh);
           break;
       end
    end
    

Project is developed by the Danish GPS Center