Bài 2 · Vận dụng · 20 phút
Chòm vệ tinh & tín hiệu
Biên soạn bởi Nguyễn Anh Tuấn
Vệ tinh GPS bay ở quỹ đạo tầm trung (MEO, ~20.200 km): mỗi vệ tinh phát thời gian từ đồng hồ nguyên tử (atomic clock), vị trí (ephemeris) và mã PRN.
Ở bài trước ta biết GPS định vị nhờ vệ tinh. Giờ soi kỹ chính các vệ tinh đó. Chúng bay ở quỹ đạo tầm trung (MEO), cao khoảng 20.200 km - tức cao hơn máy bay cả nghìn lần. Cả chòm được xếp trên 6 mặt phẳng quỹ đạo sao cho từ bất kỳ đâu trên Trái Đất, lúc nào ngẩng lên cũng thấy đủ vệ tinh.
Bay cao chừng đó thì một vòng mất bao lâu? Có công thức vật lý, cứ để máy bấm hộ:
chu-ky-quy-dao.py - mot vong GPS mat bao lau?
import math
# Ban kinh Trai Dat + do cao ve tinh GPS -> ban kinh quy dao
R_dat = 6371 # km
do_cao = 20200 # km, quy dao tam trung (MEO)
a = (R_dat + do_cao) * 1000 # doi sang met
mu = 3.986e14 # hang so hap dan Trai Dat (m^3/s^2)
T = 2 * math.pi * math.sqrt(a**3 / mu) # chu ky mot vong (giay)
print(f"Mot vong quy dao mat: {T/3600:.2f} gio") Kết quả khi chạy
Mot vong quy dao mat: 11.97 gio
- ▸Vệ tinh GPS ở quỹ đạo tầm trung (MEO), cao ~20.200 km.
- ▸Một vòng quanh Trái Đất mất ~12 giờ.
- ▸Sắp trên 6 mặt phẳng quỹ đạo để luôn có đủ vệ tinh trên đầu bạn.
Đây là trái tim của cả khoá. Mỗi vệ tinh không ngừng phát xuống một thông điệp gồm hai phần:
- ▸TÔI ĐANG Ở ĐÂY: vị trí chính xác của vệ tinh trên quỹ đạo (gọi là ephemeris).
- ▸BÂY GIỜ LÀ MẤY GIỜ: thời điểm cực chuẩn lúc gửi thông điệp đi.
Hình dung vệ tinh như một ngọn hải đăng biết nói, cứ vài mili-giây lại hô: “Tôi là vệ tinh số 7, đang ở toạ độ này, và bây giờ đúng là 10 giờ 00 phút 00 giây 000000123.” Máy thu dưới đất nghe nhiều ngọn hải đăng như vậy cùng lúc. Vì sao biết vị trí và thời gian lại đủ để tìm ra chỗ mình đứng? Đó là chuyện của hai bài kế tiếp.
Phần “bây giờ là mấy giờ” phải chuẩn tới mức kinh khủng, nên mỗi vệ tinh mang theo đồng hồ nguyên tử (atomic clock) - đếm nhịp dao động đều tăm tắp của nguyên tử cesium hay rubidium, sai chừng 1 giây sau hàng triệu năm.
Vì sao cần chuẩn tới vậy? Vì sắp tới ta sẽ tính khoảng cách từ thời gian: tín hiệu chạy bằng tốc độ ánh sáng, nên lệch đồng hồ một nhịp tí xíu là khoảng cách sai cả trăm mét. Con số cụ thể nằm ở Bài 3 (Đo khoảng cách bằng tốc độ ánh sáng).
Trung thực
Lạ ở chỗ: gần như mọi vệ tinh GPS phát trên cùng một tần số. Vậy máy thu làm sao tách ra tín hiệu của từng vệ tinh? Bí quyết là mỗi vệ tinh kèm một mã giả ngẫu nhiên (PRN - pseudo-random noise) riêng. Máy thu so tín hiệu nhận được với mã nó đang tìm bằng phép tương quan (correlation): khớp đúng mã thì kết quả vọt lên rất lớn, sai mã thì gần như bằng 0.
ma-prn.py - nhan ra dung ve tinh giua mot mo tin hieu
import random
random.seed(42)
def ma_prn(n=1023): # ma gia ngau nhien dai n: gom +1 / -1
return [random.choice([1, -1]) for _ in range(n)]
def tuong_quan(a, b): # do "giong nhau": cong tich tung cap
return sum(x * y for x, y in zip(a, b))
ve_tinh_A = ma_prn()
ve_tinh_B = ma_prn()
nhieu = ma_prn() # tin hieu lan tap
print("A khop chinh no:", tuong_quan(ve_tinh_A, ve_tinh_A))
print("A so voi B: ", tuong_quan(ve_tinh_A, ve_tinh_B))
print("A so voi nhieu: ", tuong_quan(ve_tinh_A, nhieu)) Kết quả khi chạy
A khop chinh no: 1023 A so voi B: 17 A so voi nhieu: -1
Đúng mã cho 1023 (mọi cặp cùng dấu, cộng dồn), còn mã khác hay nhiễu chỉ cho 17 và -1 (dấu lẫn lộn, triệt tiêu nhau). Nhờ vậy, nhiều vệ tinh dùng chung một tần số mà máy thu vẫn nhận ra từng cái - kỹ thuật này tên là CDMA.
Trung thực
Một tần số là đủ để định vị, nhưng GPS phát trên vài băng tần - quen tên là L1, L2, L5. L1 là băng cũ ai cũng dùng; L2 và L5 mới hơn. Lợi ích lớn nhất của việc có từ hai tần số trở lên: tín hiệu các tần số khác nhau bị tầng khí quyển làm chậm khác nhau, nên máy thu đo được độ trễ đó và trừ bớt sai số.
- ▸L1 - băng cổ điển, mọi máy thu đều bắt; L2/L5 - mới hơn, mạnh và chống nhiễu tốt hơn.
- ▸Hai tần số trở lên giúp đo và bù phần tín hiệu bị tầng điện ly làm chậm.
- ▸Điện thoại đời mới ngày càng hỗ trợ hai tần số để định vị chuẩn hơn.
Vì sao tầng khí quyển lại gây sai số, và còn những “thủ phạm” nào nữa, để dành cho Bài 5 (Sai số & hiệu chỉnh).
Gom cả bài: mỗi vệ tinh GPS bay ở MEO, mang đồng hồ nguyên tử, liên tục phát một thông điệp “Tôi đang ở đây, và bây giờ đúng là giờ này”; tất cả chia nhau cùng một tần số nhưng phân biệt được nhờ mã PRN. Máy thu của mèo con chỉ việc lắng nghe nhiều vệ tinh như thế.
Bước tiếp theo
Câu hỏi thường gặp
Nó liên tục “rơi” về phía Trái Đất, nhưng vì bay ngang đủ nhanh nên cứ trượt vòng quanh mà không chạm đất - đó chính là quỹ đạo. Lực hấp dẫn cân với quán tính, nên về cơ bản không cần đốt nhiên liệu để giữ vòng (chỉ thỉnh thoảng chỉnh nhẹ).
Hệ GPS thiết kế tối thiểu 24 vệ tinh để phủ toàn cầu; thực tế thường có khoảng 31 vệ tinh đang hoạt động (dự phòng cho chắc). Cộng cả GLONASS, Galileo, BeiDou… thì trên trời có hơn trăm vệ tinh định vị.
Nó đếm nhịp dao động cực đều của nguyên tử (thường là cesium hoặc rubidium) thay vì rung của thạch anh. Chuẩn tới mức sai chừng 1 giây sau hàng triệu năm - cần thế vì cả phép định vị dựng trên thời gian.
Không, nhờ mỗi vệ tinh có một “mã” riêng (PRN). Máy thu dùng phép tương quan để lọc ra đúng tín hiệu của từng vệ tinh - giống như trong phòng đông người, bạn vẫn nghe ra bạn mình vì nhận ra giọng riêng. Cách này tên là CDMA.
Tick những điều em tự tin làm được. Càng lên cao, em càng hiểu sâu.
Trả lời vài câu để chắc rằng em đã nắm bài.
Mỗi vệ tinh GPS liên tục phát xuống những gì?
- 1
Quỹ đạo càng cao càng chậm
Mở đoạn code chu-ky-quy-dao.py ở Bước 1, đổi do_cao thành 35786 (km) - độ cao vệ tinh địa tĩnh. Chu kỳ ra bao nhiêu, và điều đó nói lên gì?
Hoàn thành khi: Khoảng 24 giờ (23,93h) - gần đúng một ngày, nên vệ tinh địa tĩnh trông như “đứng yên” trên cùng một điểm bầu trời.
- 2
Thông điệp của vệ tinh
Mỗi vệ tinh phát ra HAI thông tin gì? Bằng lời của mèo con, viết một “câu” mà vệ tinh đang hô xuống.
Hoàn thành khi: Hai thứ: vị trí của nó (ephemeris) và thời điểm gửi. Ví dụ câu: “Tôi là vệ tinh số 7, đang ở toạ độ (x, y, z), và bây giờ đúng là 10:00:00,000000123”.
- 3
Vì sao phải là đồng hồ nguyên tử?
Nêu 2 lý do vệ tinh dùng đồng hồ nguyên tử thay vì đồng hồ thạch anh thường.
Hoàn thành khi: Vì vị trí sẽ được tính TỪ thời gian, lệch một tí ti là sai vị trí rất xa; và đồng hồ thường trôi nhịp nhiều theo nhiệt độ/thời gian, không đủ chuẩn.
- 4
Đọc kết quả mã PRN
Chạy ma-prn.py ở Bước 4. Vì sao “A khớp chính nó” ra số rất lớn, còn “A so với B” lại gần 0?
Hoàn thành khi: Cùng một mã thì mọi cặp tích cùng dấu, cộng dồn lại thành số lớn (1023); khác mã thì dấu lẫn lộn, cộng vào triệt tiêu nhau nên gần 0.
- 5
Đếm vệ tinh
Hệ GPS thiết kế tối thiểu bao nhiêu vệ tinh để phủ toàn cầu, và thực tế khoảng bao nhiêu cái đang chạy?
Hoàn thành khi: Thiết kế tối thiểu 24; thực tế thường khoảng 31 vệ tinh đang hoạt động.
- 6
Nối sang Bài 3
Vệ tinh đã cho biết “thời điểm gửi”. Máy thu còn cần biết thêm gì để tính ra KHOẢNG CÁCH tới vệ tinh?
Hoàn thành khi: Cần biết thời điểm NHẬN được tín hiệu; lấy hiệu hai thời điểm ra thời gian bay, nhân với tốc độ ánh sáng thành khoảng cách - đúng nội dung Bài 3.