gps는 사실 두개의 부분으로 이루어져있는데 신호를 track/acqusition하는 부분과 위치를 계산하는 부분으로 이루어져있습니다. BB는 사실 cdma모뎀과 큰 차이가없습니다만 위성신호가 매우약하기때문에 쉽게 신호를 잃어버립니다. 4개이상 위성을 잡으면 좋고 그로부터 자신이 원하는 신호 C/A신호를 찾아서 이에 대한 정보를 위치계산 루틴에 주면 거기서 칼만필터나 비선형 행렬 연산 알고리즘을 이용해서 내위치를 찾습니다. sw하는 부분을 hw로 많이 해서 신호를 빠른시간안에 찾아내면 처음에 gps를 on할때 빨리 부팅/동작하는것이고요 성능은 얼마나 제대로 오차를 줄이게 연산을 하느냐에 달려있습니다. 요즘은 오차를 줄이기위해 cdma네트웍이나 센서등을 이용하기도 합니다. 가령 중력/위치/속도/기울기 센서같은것을 말이죠..
아 그리고 민간용으로 사용하는 전파는 공짜입니다 군수용은 어차피 PN코드가 다르기때문에 사용할수도 없습니다