Nguyên lý hoạt động của hệ thống định vị GNSS: Từ tín hiệu vệ tinh đến tính toán vị trí chính xác

Từ tín hiệu vệ tinh đến định vị chính xác: Phân tích toàn diện quá trình trích xuất giá trị quan trắc và giải pháp định vị GNSS

Giới thiệu

Trong lĩnh vực định vị vệ tinh, quá trình trích xuất giá trị quan trắc từ tín hiệu thô và thực hiện định vị chính xác là một quy trình phức tạp và tinh vi. Bài viết này sẽ thông qua kết quả thực nghiệm, phân tích sâu về nguyên lý cốt lõi của xử lý tín hiệu GNSS. Hình trên minh họa các bước chính trong xử lý tín hiệu vệ tinh, từ tín hiệu I/Q thô đến việc trích xuất giá trị quan trắc pha sóng mang và mã, mỗi bước đều chứa đựng những nguyên lý toán học và vật lý tinh vi.

I. Cấu trúc tín hiệu GNSS và nền tảng giá trị quan trắc

1.1 Giá trị quan trắc khoảng ảo

Giá trị quan trắc khoảng ảo là nền tảng của định vị GNSS, nó đo chênh lệch thời gian từ khi vệ tinh phát đến khi máy thu nhận nhân với tốc độ ánh sáng:

Khoảng ảo ρ = c × (t_nhan -t_phat) + sai_số

Trong đó:

  • c: tốc độ ánh sáng
  • t_nhan: thời gian máy thu nhận tín hiệu
  • t_phat: thời gian vệ tinh phát tín hiệu

1.2 Giá trị quan trắc pha sóng mang

Giá trị quan trắc pha sóng mang có độ chính xác cao hơn (milimét), nhưng tồn tại vấn đề độ mờ tuần hoàn:

Pha sóng mang φ = N × λ + Δφ

Trong đó N là độ mờ tuần hoàn, λ là bước sóng của sóng mang. Hình dưới đây là kết quả thực nghiệm của tác giả dựa trên một đoạn tín hiệu vệ tinh thực tế.

II. Theo dõi tín hiệu: Tiền đề để trích xuất giá trị quan trắc

2.1 Phân tích tín hiệu rời rạc (hình con trên bên trái)

Biểu đồ phân tán thời gian rời rạc cho thấy đầu ra của bộ tương quan tức thời trên hai nhánh I và Q:

I = A·D·R(τ)·sinc(Δf·T)·cos(Δφ) + n_I
Q = A·D·R(τ)·sinc(Δf·T)·sin(Δφ) + n_Q

Trong đó:

  • A: biên độ tín hiệu
  • D: bit dữ liệu thông điệp dẫn đường
  • R(τ): hàm tương quan tự mã
  • Δf: sai số tần số
  • Δφ: sai số pha

Trong trạng thái theo dõi tín lý tưởng, đầu ra nhánh I đạt giá trị lớn nhất, đầu ra nhánh Q gần bằng không, biểu đồ phân tán nên tập trung gần trục hoành.

2.2 Phục hồi bit thông điệp dẫn đường (hình con trên bên phải)

Các bit của thông điệp dẫn đường cho thấy các bit thông điệp được trích xuất từ nhánh I. Điểm chuyển đổi của bit (0→1 hoặc 1→0) là điểm tham quan trọng cho việc theo dõi pha, vì tại các điểm này pha sóng mang sẽ đảo ngược 180°.

III. Nguyên lý theo dõi Vòng khóa pha (PLL)

3.1 Bộ nhận dạng tần số thô PLL (hàng thứ hai bên trái)

Bộ nhận dạng tần số thô PLL cho thấy kết quả kiểm tra sai số pha chưa qua lọc. Các thuật toán bộ nhận dạng pha PLL phổ biến bao gồm:

1. Phản tan hai phần tư: Δφ = atan2(Q, I)
2. Bộ nhận dạng Costa: Δφ = sign(I)·Q

Trong thực nghiệm của tôi, tôi sử dụng bộ nhận dạng pha dựa trên hàm atan2 hai phần tư, phạm vi đầu ra là [-π, π], có ưu điểm là phạm vi tuyến tính lớn và ít nhạy cảm với thay đổi biên độ.

3.2 Bộ nhận dạng tần số PLL đã lọc (hàng thứ ba bên trái)

Bộ nhận dạng tần số PLL đã lọc cho thấy sai số pha sau khi được làm mịn bằng bộ lọc vòng. Hàm truyền của PLL bậc hai là:

H(s) = (2ζω_n s + ω_n²) / (s² + 2ζω_n s + ω_n²)

Trong đó:

  • ω_n: tần số tự nhiên
  • ζ: tỷ số giảm xóc

Lựa chọn băng thông vòng cần cân bằng giữa ứng động và độ chính xác theo dõi:

  • Môi trường đô thị: đề xuất băng thông 10-15Hz
  • Môi trường rộng mở: đề xuất băng thông 5-10Hz

IV. Nguyên lý theo dõi Vòng khóa trễ (DLL)

3.3 Kết quả tương quan (hàng thứ hai bên phải)

Kết quả tương quan cho thấy đầu ra của ba bộ tương quan sớm, trễ và tức thời. Sai số pha mã được tính bằng phương pháp năng lượng sớm-trễ:

Sai số pha mã Δτ = (S - T) / (S + T - 2I)

Trong đó S, T, I lần lượt là công suất đầu ra của các bộ tương quan sớm, trễ và tức thời.

3.4 Bộ nhận dạng tần số thô DLL (hàng thứ ba giữa)

Bộ nhận dạng tần số thô DLL cho thấy giá trị đo lường thô của sai số pha mã. Trong trạng thái theo dõi lý tưởng, sai số này nên dao động quanh điểm không.

3.5 Bộ nhận dạng tần số DLL đã lọc (hàng thứ ba bên phải)

Bộ nhận dạng tần số DLL đã lọc cho thấy sai số pha mã sau khi được làm mịn bằng bộ lọc vòng. Băng thông điển hình của DLL là 1-2Hz, nhỏ nhiều so với băng thông PLL,这是因为 mã pha ít nhạy ứng với ứng động.

V. Trích xuất giá trị quan trắc khoảng ảo và pha sóng mang

5.1 Trích xuất giá trị quan trắc khoảng ảo

Từ trạng thái theo dõi của DLL, chúng ta có thể trích xuất giá trị quan trắc pha mã:

function khoangAo = trichXuatKhoangAo(ketQuaTheoDoi, kenh, caiDat)
    % Lấy pha mã (đơn vị là mã)
    phaMa = ketQuaTheoDoi(kenh).phaMa;
    
    % Lấy đếm mili giây nguyên
    soMsNguyen = ketQuaTheoDoi(kenh).mauTuyetDoi / mauTrenMa;
    
    % Tính tổng thời gian truyền (mili giây)
    thoiGianTruyenMs = soMsNguyen + phaMa/1023;  % mã C/A GPS dài 1023 mã
    
    % Chuyển đổi thành khoảng cách
    khoangAo = thoiGianTruyenMs * (caiDat.c / 1000);
end

5.2 Trích xuất giá trị quan trắc pha sóng mang

Từ NCO (dao điều khiển số) của PLL trích xuất pha sóng mang:

function phaSongMang = trichXuatPhaSongMang(ketQuaTheoDoi, kenh, caiDat)
    % Lấy pha sóng mang tích lũy (đơn vị vòng)
    phaTichLuy = ketQuaTheoDoi(kenh).phaSongMang;
    
    % Xử lý đếm vòng nguyên
    soVongNguyen = floor(phaTichLuy / (2*pi));
    phaPhanThap = mod(phaTichLuy, 2*pi) / (2*pi);
    
    % Tính pha sóng mang theo đơn vị vòng
    phaSongMang = soVongNguyen + phaPhanThap;
end

VI. Nguyên lý giải pháp định vị

6.1 Phương trình quan trắc

Với vệ tinh thứ i, phương trình quan trắc khoảng ảo là:

ρ_i = √((x_i-x)² + (y_i-y)² + (z_i-z)²) + c·δt_m - c·δt_v^i + ε_i

Trong đó:

  • (x, y, z): vị trí máy thu (chưa biết)
  • (x_i, y_i, z_i): vị trí vệ tinh (đã biết)
  • δt_m: sai số đồng hồ máy thu (chưa biết)
  • δt_v^i: sai số đồng hồ vệ tinh (đã biết, lấy từ thông điệp dẫn đường)
  • ε_i: các sai số khác (điện ly, đối lưu, đa đường v.v.)

6.2 Xử lý tuyến tính

Đưa phương trình quan trắc phi tuyến tính về dạng tuyến tính tại vị trí xấp xỉ (x₀, y₀, z₀) bằng khai triển Taylor:

ρ_i = ρ_i⁰ + a_i1·Δx + a_i2·Δy + a_i3·Δz + c·δt_m + v_i

Trong đó:

  • ρ_i⁰: khoảng lý tính tại vị trí xấp xỉ
  • a_i1, a_i2, a_i3: cosin chỉ phương (thành phần của vector quan sát theo hướng x,y,z)
  • Δx, Δy, Δz: số sửa vị trí
  • v_i: dư số

6.3 Giải pháp bình phương tối thiểu

Viết phương trình quan trắc của m vệ tinh dưới dạng ma trận:

y = A·x + v

Trong đó:

  • y = [ρ₁-ρ₁⁰, ρ₂-ρ₂⁰, ..., ρ_m-ρ_m⁰]ᵀ
  • A: ma trận thiết kế, kích thước m×4
  • x = [Δx, Δy, Δz, c·δt_m]ᵀ

Giải pháp bình phương tối thiểu là:

x = (Aᵀ·A)⁻¹·Aᵀ·y

6.4 Giải pháp lặp lại

Vì tuyến tính chỉ có hiệu quả gần vị trí xấp xỉ, cần giải pháp lặp:

function [viTri, saiSoDongHo] = viTriBinhPhuongToiThieu(viTinhVeTinh, khoangAo, viTriKhoi)
    viTri = viTriKhoi;
    soLapToiDa = 10;
    dungKhoi = 1e-3;
    
    for lap = 1:soLapToiDa
        % Tính khoảng cách hình học
        khoangCachHocHinh = sqrt(sum((viTinhVeTinh - viTri).^2, 2));
        
        % Tính vector quan sát
        vectorQuanSat = (viTinhVeTinh - viTri) ./ khoangCachHocHinh;
        
        % Xây dựng ma trận thiết kế A
        A = [vectorQuanSat, ones(size(vectorQuanSat, 1), 1)];
        
        % Tính dư số
        soDu = khoangAo - khoangCachHocHinh;
        
        % Giải bình phương tối thiểu
        dx = (A' * A) \ (A' * soDu);
        
        % Cập nhật vị trí và sai số đồng hồ
        viTri = viTri + dx(1:3)';
        saiSoDongHo = dx(4) / 299792458;  % Chuyển đổi thành giây
        
        % Kiểm tra hội tụ
        if norm(dx(1:3)) < dungKhoi
            break;
        end
    end
end

VII. Phân tích kết quả thực nghiệm

Từ kết quả thực nghiệm có thể thấy:

  1. Đánh giá chất lượng tín hiệu: Biểu đồ phân tán thời gian rời rạc cho thấy sự phân ly tốt giữa nhánh I/Q, cho thấy theo dõi sóng mang ổn định.
  2. Hiệu suất PLL: Đầu ra bộ nhận dạng tần số PLL đã lọc dao động nhỏ, cho thấy bộ lọc vòng đã ức chế nhiễu hiệu quả.
  3. Hiệu suất DLL: Tính đối xứng tốt của các bộ tương quan sớm-trễ, sai số pha mã dao quanh điểm không, cho thấy theo dõi mã bình thường.
  4. Thông điệp dẫn đường: Các bit thông điệp rõ ràng, không xảy ra lỗi đồng bộ bit.

VIII. Phân tích sai số và cải tiến

8.1 Các nguồn sai số chính

  1. Độ trễ điện ly: Liên quan đến tần số, có thể loại bỏ bằng giá trị quan trắc tần số kép
  2. Độ trễ đối lưu: Liên quan đến góc cao độ, có thể sửa bằng mô hình
  3. Hiệu ứng đa đường: Có thể ức chế bằng công nghệ tương quan hẹp và ước tính đa đường
  4. Nhiễu máy thu: Liên quan đến băng thông đầu vào và thời gian tích hợp

8.2 Công nghệ nâng cao độ chính xác

  1. Làm mịn khoảng ảo bằng pha sóng mang: Sử dụng giá trị quan trắc pha sóng mang chính xác cao để làm mịn giá trị quan trắc khoảng ảo
  2. Định vị sai phân: Sửa chữa sai số chung thông qua trạm cơ sở
  3. Định vị điểm đơn chính xác: Sử dụng sản phẩm lịch tinh và sai số đồng hồ chính xác

Kết luận

Công nghệ định vị GNSS là một hệ thống phức tạp liên quan đến xử lý tín hiệu, mô hình hóa sai số và tính toán số học. Trích xuất giá trị quan trắc chất lượng cao từ tín hiệu thô là tiền đề để định vị chính xác. Bài viết này thông qua thực nghiệm đã thể hiện toàn bộ quá trình theo dõi tín hiệu, và phân tích chi tiết chuỗi nguyên lý hoàn chỉnh từ trích xuất giá trị quan trắc đến giải pháp định vị. Với sự phát triển của công nghệ đa tần số đa hệ thống, định vị điểm đơn chính xác, công nghệ định vị GNSS đang không ngừng tiến tới độ chính xác cao và độ tin cậy cao hơn.

Thẻ: GNSS định vị vệ tinh xử lý tín hiệu PLL dll

Đăng vào ngày 20 tháng 9 lúc 16:10