系统与基础设施holmea.demon.co.uk
自制 GPS 接收器
Homemade GPS Receiver
2011 — 2013,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是一位业余爱好者从零打造GPS接收机的完整项目记录:从射频前端硬件、信号捕获与跟踪,到卫星坐标解算、地球自转校正和电离层延迟补偿,全部亲手实现,并公开了原理图、PCB和代码。页面还穿插了大量调试过程和技术细节,是少有的端到端GPS实现教材。
为什么经久不衰:它证明了一个人凭业余条件也能完整复现卫星导航接收技术,是真正想理解GPS底层原理的人的绝佳材料,因此十多年间被反复推荐。
HN 评论精选
推荐了另一个把GPS理论讲得最清楚的经典项目页面。
另外,这篇文章引用了一个更早的项目,它(对我而言)是对GPS原理最清晰的描述:http://lea.hamradio.si/~s53mv/navsats/theory.html
samlittlewood查看英文原文
Also, this article references an older project that has (for me) the clearest description of the theory of GPS: http://lea.hamradio.si/~s53mv/navsats/theory.html
纠正原文说法:只有扩频部分低于噪声底,载波本身其实高于噪声底,但整体仍是了不起的成果。
L1载波分布在2MHz带宽内,到达地面强度为-130 dBm,而同带宽热噪声功率为-111 dBm,所以天线收到的GPS信号比噪声底低约20 dB。这说法略有误导:整个扩频信号的带宽是2MHz(1MHz码片速率),但载波本身的带宽窄得多——通常高出噪声底约15到50 dBHz,用频谱仪很容易看到。扩频部分确实远低于噪声底。撇开这个小瑕疵,这是一个人端到端完成的非常了不起的工作。
zb查看英文原文
The L1 carrier is spread over a 2 MHz bandwidth and its strength at the Earth's surface is -130 dBm. Thermal noise power in the same bandwidth is -111 dBm, so a GPS signal at the receiving antenna is ~ 20 dB below the noise floor. This is slightly misleading; the bandwidth of the entire signal is 2MHz (it's a 1MHz chip). The bandwidth of the carrier is much narrower - it is above the noise floor typically by somewhere between about 15 and 50dBHz (you can see this quite easily on a spectrum analyser). The spread-spectrum part of the signal is indeed well below the noise floor. That minor quibble aside, this is a pretty awesome effort for one guy to do end-to-end.
这是很好的GPS教学材料,但并非唯一开源方案;纯软件方案耗CPU,FPGA方案在低性能设备上即可运行。
我也要来说这个页面(存在已久,最近刚更新)确实令人印象深刻,是所有想真正理解GPS工作原理的人的极佳教材。不过它并非唯一的"开源GPS"尝试,只是其中很好的一个:至少还有 http://www.gnss-sdr.org/ 这个更偏软件的方案,可配合不同接收机前端;我还刚发现了另一个FPGA项目 http://www.witchnav.cz/。纯软件方案的相关器会烧掉大量CPU,需要多GHz的机器,而FPGA接收机(如链接中这个)在性能很低的树莓派上就能轻松运行。
cnvogel查看英文原文
I have to join in to say that this page (which exists since some time, only has recently be updated) is really impressive, and a very good educational material for everyone wanting to really understand the workings of GPS. Nevertheless it's not the only attempt, bug a very good one, at "open source GPS" projects. There's at least http://www.gnss-sdr.org/ which is a more software-centric approach being able to work with different receiver frontends. And I've just found another FPGA project at http://www.witchnav.cz/. Naturally the software-only solution will burn a lot of CPU in the correlators, so I'd expect a software solution to require a multi-GHz machine, whereas the GPS receiveres with FPGA (such as the one linked to) works easily on a pretty low-performing Raspberry-Pi.
惊叹于从零造GPS接收机的难度,并引用原文细节展示项目涉及的复杂程度。
这个页面太棒了。有人能从零造出GPS接收机,还写出解析GPS信号的代码,难度令人难以置信!页面里有些话稍稍透露了其中的复杂度:"起初,由于没有把卫星位置从地心地固(ECEF)坐标系转换到地心惯性(ECI)坐标系,我实际上忽略了信号在空中传播的60到80毫秒里地球的自转。""上面的解算没有用第4子帧第18页的参数补偿电离层传播延迟——单频接收机本应做此补偿,电离层折射会增大用户与卫星间的路径长度。"
joosters查看英文原文
That page is amazing. I'm astounded that someone can build a GPS receiver from scratch, not to mention writing the code that interprets the GPS signals. The difficulty is mind-boggling! There's some wonderful quotes in the page that just hint at the complexity involved: "Originally, by not transforming satellite positions from earth-centred-earth-fixed (ECEF) to earth-centred-inertial (ECI) coordinates, I was effectively ignoring Earth's rotation during the 60 to 80 ms that signals were in flight." "The above solutions were generated without compensating for ionospheric propagation delays using parameters in page 18 of subframe 4 which should be applied because this is a single frequency receiver. Ionospheric refraction increases path lengths between users and satellites." !
历次讨论
同类还值得读
TTY 揭秘(2008)
The TTY demystified (2008)
经典文章深入剖析了 Unix/Linux 中 TTY 子系统的工作原理,包括线路规程、终端驱动、信号与控制字符等机制。
系统与基础设施上首页 11 次 · 2009–2025linusakesson.net编辑精选为什么 GNU grep 这么快
Why GNU grep is Fast
FreeBSD 邮件列表上一篇广为流传的帖子,解释 GNU grep 为什么快:核心在于 Boyer-Moore 字符串搜索算法配合精心优化的内部循环和 I/O,让程序在搜索时“…
系统与基础设施上首页 9 次 · 2010–2022lists.freebsd.orgXplain:为普通人讲解 X11
Xplain – Explaining X11 for the rest of us
《Xplain》是作者(HN 用户 Jasper_)写的一系列 X11 长文,用他在浏览器中重建的 X11 绘图模型做交互演示,讲解 X11 的绘图模型与窗口系统设计。
系统与基础设施上首页 6 次 · 2013–2020magcius.github.io编辑精选旋风教程:为 Linux 创建极小 ELF 可执行文件(1999)
A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (1999)
breadbox 写于 1999 年的经典教程,主题是如何为 Linux 手工构造并裁剪出体积极小的 ELF 可执行文件。
系统与基础设施上首页 6 次 · 2007–2025muppetlabs.comPostgreSQL 内部原理
The internals of PostgreSQL
《The Internals of PostgreSQL》是一本免费在线书籍,系统讲解 PostgreSQL 的内部实现,包括查询处理、并发控制、WAL、缓冲区管理等核心机制。
系统与基础设施上首页 5 次 · 2017–2025interdb.jp编辑精选