1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu giải pháp phầm mềm cho bộ thu GPS

90 201 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 90
Dung lượng 2,39 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - PHẠM VĂN QUYỀN NGHIÊN CỨU GIẢI PHÁP PHẦN MỀM CHO BỘ THU GPS Chuyên ngành: XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG LUẬN VĂN THẠC SĨ KHOA HỌC XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC : TS NGÔ HỒNG SƠN Hà Nội – 2010 Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  MỤC LỤC LỜI CAM ĐOAN………………….………………………………………….1 CÁC TỪ VIẾT TẮT……………….…………………………………………2 DANH MỤC HÌNH VẼ BẢNG BIỂU.………………………………………4 MỞ ĐẦU…………………………… ……………………………………….6 CHƯƠNG 1- HỆ THỐNG GNSS………….……………………………… 1.1 Giới thiệu…………………………………………………………… 1.2 Các hệ thống GNSS………………………………………………… 1.2.1 Hệ thống thông tin định vị toàn cầu GPS…………………………9 1.2.2 Hệ thống Galileo……………………………………………… 10 1.2.3 Glonass…………………………………….…………………….11 1.2.4 Compass (Beidou-2)…………….……………………………….13 1.2.5 Hệ thống QZSS Nhật….…………………………………….14 1.2.6 Hệ thống định vị vệ tinh Ấn Độ IRNSS…………………….15 CHƯƠNG 2- NGUYÊN LÝ CƠ BẢN CỦA GPS.………… …………….16 2.1 Hệ thống GPS………………………………………………………16 2.1.1 Các thành phần hệ thống……….……………………………16 2.1.2 Thành phần không gian………………………….………………16 2.1.3 Thành phần điều khiển………………….……………………….18 2.1.4 Thành phần người dùng………….………………………………19 2.2 Cấu trúc tín hiệu…………………………………………………….20 2.3 Mã CA………………………………………………………………22 2.3.1 Chức mã C/A……………….…………………………22 2.3.2 Hàm tự tương quan……………….…………………………… 23 2.3.3 Cách tạo mã C/A………………….…………………………….25 2.4 Hiệu ứng Doppler……… ………………………………………….27 Phạm Văn Quyền 1  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  2.5 Bản tin dẫn đường…………… …………………………………….29 2.6 Tính PVT (Position, Velocity, Time)… ……………………………31 2.6.1 Lý thuyết tính toán vị trí máy thu GPS………………… 31 2.6.2 Tính thời gian vận tốc máy thu……………………………….36 CHƯƠNG 3- NGUYÊN TẮC HOẠT ĐỘNG CỦA BỘ THU GPS……….38 3.1 Nguyên tắc hoạt động thu GPS…………………………… 38 3.2 Lý thuyết chung trình giải mã tin dẫn đường………… 39 3.3 Acquisition……….………………………………………………….41 3.3.1 Phương pháp tìm kiếm tuần tự………………………………… 43 3.3.2 Phương pháp tìm kiếm không gian tần số song song……………44 3.3.3 Phương pháp tìm kiếm pha mã song song……………………….46 3.3.4 Tối ưu tần số sóng mang……………………………………… 48 3.4 Tracking…………………………………………………………… 49 3.4.1 Vòng khóa pha………………………………………………… 50 3.4.2 Áp dụng vòng khóa pha vào bám mã pha sóng mang……… 54 3.4.3 Bám pha sóng mang…………………………………………… 56 3.4.4 Bám mã………………………………………………………….58 3.4.5 Khối bám tín hiệu hoàn thiện……………………………………60 CHƯƠNG 4- GIẢI PHÁP PHẦN MỀM CHO BỘ THU GPS…………… 63 4.1 Lựa chọn độ dài liệu phân tích ……….…………… ………….63 4.2 Lựa chọn bước tần số sóng mang acquisition …… .… …65 4.3 Thuật toán Acquisition……………… …….…….……………… 65 4.4 Thuật toán Tracking……………………… ………………………67 4.5 Kết thực chương trình……….…….…………………… 69 KẾT LUẬN…………………………………………………………………74 Kết đạt được……… ………………………………………………74 Thảo luận……………… ………………………………………………74 TÀI LIỆU THAM KHẢO …………………………………………………………75 Phạm Văn Quyền 2  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  PHỤ LỤC………………………………………………………………………… 77 Tạo mã C/A…………………… ………………………………………77 1.1 a Hàm tạo mã C/A …………………………………….……… 77 Hàm số hóa mã C/A…………………………….………… 77 Hàm Acquisition… ………………………………………………… 78 Hàm Tracking…………………………………………………………82 Phạm Văn Quyền 3  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  LỜI CAM ĐOAN Tôi xin cam đoan nội dung luận văn có từ trình nghiên cứu, tham khảo tài liệu hướng dẫn TS Ngô Hồng Sơn Không chép Tác giả luận văn Phạm Văn Quyền Phạm Văn Quyền 4  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ STT Từ viết tắt Giải nghĩa Differential Global Positioning System DGPS Hệ thống định vị toàn cầu vi sai GNSS Global Navigation Satellite System Hệ thống vệ tinh dẫn đường toàn cầu GPS Global Positioning System Hệ thống định vị toàn cầu Mỹ GLONASS Global Orbiting Navigation Setellite System Hệ thống vệ tinh dẫn đường quỹ đạo toàn cầu Nga IRNSS Indian Regional Navigation Satellite System Hệ thống vệ tinh dẫn đường khu vực Ấn Độ QZSS Quasi-Zenith Setellite System Hệ thống vệ tinh Nhật PVT Position, Velocity, Time Vị trí, vận tốc, thời gian C/A Coarse/Acquisition Mã trải phổ CA PRN PseudoRandom Noise Nhiễu giả ngẫu nhiên 10 PLL Phase Lock Loop Vòng khóa pha 11 DLL Delay Lock Loop Vòng khóa trễ 12 BPSK Binary Phase Shift Key Khóa dịch pha nhị phân Phạm Văn Quyền 5  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  13 FFT Fast Fourier Tranform Biến đổi Fourier nhanh 14 IF Intermediate Frequency Tần số trung tần 15 VCO Volt Control Oscilator Bộ tạo sóng mang cục 16 I Inphase Đồng pha 17 Q Quarature Trực pha 18 Acquisition Tìm kiếm vệ tinh thu nhận, xử lý, lấy thông số thô tần số sóng mang, mã, pha C/A ban đầu vệ tinh 19 Tracking Bám mã, pha mã C/A, tần số sóng mang, giải mã tín hiệu dẫn đường Phạm Văn Quyền 6  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  DANH MỤC HÌNH VẼ BẢNG BIỂU Hình 1.1 Hệ thống vệ tinh Glonass……………………………………………………….12 Hình 1.2 Sơ đồ tạo tín hiệu Glonass…………………………………………………….13 Hình 1.3 Vệ tinh Michibiki Nhật…………………………………………14 Hình 1.4 Hình minh họa hệ thống vệ tinh tương lai Ấn Độ………………….….15 Hình 2.1 Các thành phần hệ thống GPS………………………………………… 16 Hình 2.2 Quỹ đạo vệ tinh GPS…………………………………………………….…….17 Hình 2.3 Các thành phần chức vệ tinh GPS………………………….…….18 Hình 2.4 Chức thành phần điều khiển hệ thống GPS………….… 19 Hình 2.5 Sơ đồ khối chức thiết bị thu nhận tín hiệu GPS………………….… 20 Hình 2.6 Sơ đồ tạo tín hiệu GPS ……………………………………………………… 21 Hình 2.7 Tạo tín hiệu GPS ………………………………………………………….……21 Hình 2.8 Tự tương quan tương quan chéo mã C/A …………………….…….24 Hình 2.9 Tạo mã C/A………………………………………………………………….… 25 Bảng 2.10 Quy tắc tính modulo2 ………………………………………………….……25 Hình 2.11 Bảng đăng ký pha mã C/A ……………………………………………….….26 Hình 2.12 Tần số doppler gây chuyển động vệ tinh………………… ….27 Hình 2.13 Quan hệ vận tốc doppler góc θ……………………………………28 Hình 2.14 Cấu trúc khung tin dẫn đường…………………………….…30 Hình 2.15 Phương pháp định vị không gian…………………………….… 32,33 Hình 1.16 Hệ tọa độ Oxyz…………………………………………… ……… … …….34 Hình 2.17 Xác định khoảng cách sai số……………………………………….……35  Hình 2.18 Ước lượng vị trí người dùng………………………………….……… … 35 Hinh 3.1 Cấu trúc chung thu GPS……………………………………….…… 38 Hình 3.2 sơ đồ khối thuật toán phương pháp acquisition tuần tự…………… ……43 Hình 3.3 Tách mã C/A………………………………………………………….….…… 44 Hình 3.4 Sơ đồ khối phương pháp acquisition tần số song song………………… 45 Hình 3.5 Sơ đồ khối phương pháp acquisition pha, mã song song………… ….….47 Hình 3.6 Sơ đồ giải mã tin dẫn đường…… ………………………………….….50 Phạm Văn Quyền 7  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  Hình 3.7 Sơ đồ vòng khóa pha bản…………………………………………….….…51 Hình 3.8 Bộ lọc bậc hai vòng lặp………………………………………….…….54 Hình 3.9 Sơ đồ khối bám pha mã………………………………………….… …… 55 Hình 3.10 Vòng khóa pha sóng mang……………………………………….…….……56 Hình 3.11 Vòng Costas bám sóng mang……………………………………….…….…57 Hình 3.12 Sơ đồ khối vòng bám mã bản…………………………………….….… 58 Hình 3.13 Mô tả kết tương quan mã E, P, L ……………………………… ……59 Hình 3.14 Sơ đồ khối vòng bám mã với sáu tương quan ………………… …….60 Hình 3.15 Sơ đồ khối tổng hợp vòng bám mã, pha sóng mang………………… ….61 Hình 3.16 Sơ đồ khối kênh tracking GPS hoàn thiện………………… … 62 Hình 4.1 Quy trình xử lý phần mềm tín hiệu GPS số hóa kênh……….63 Hình 4.2 Sơ đồ khối phương pháp acquisition pha, mã song song………………….66 Hình 4.3 Sơ đồ khối kênh tracking GPS hoàn thiện…………………… …67 Hình 4.4 Kết acquisition ………………………………………………………… 70 Hình 4.5 Kết trình tracking với vệ tinh số 2…………………………… … 71 Hình 4.6 Kết trình tracking với vệ tinh số với β=50Hz………………….72 Hình 4.6 Kết trình tracking với vệ tinh số với β=5Hz…………….…… 72 Phạm Văn Quyền 8  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  MỞ ĐẦU Các hệ thống GNSS (Global Navigation Satellite System) ban đầu với mục đích phục vụ cho hoạt động quân với cạnh tranh Mỹ (với hệ thống GPS Global Positioning System) Nga (Liên Xô cũ) (với hệ thống Glonass - Global Orbiting Navigation Setellite System) Kể từ dịch vụ mở rộng cho hoạt động dân phát triển mạnh mẽ len lỏi vào lĩnh vực trở nên phổ biến toàn giới, đặc biệt hệ thống GPS Mỹ, có lợi liên tục nâng cấp hoạt động đầy đủ bao phủ phạm vi toàn cầu Với nhiều tác dụng có phạm vi ứng dụng rộng lớn nên nhiều nước khu vực tiến hành triển khai cho riêng hệ thống độc lập, đại Trung Quốc với Beidou, Châu Âu với Galileo, Nhật với QZSS, Ấn Độ với IRNSS Đặc biệt hệ thống Galileo Châu Âu tới vào hoạt động đầy đủ (2013) mang lại nhiều tiềm ứng dụng lớn (bởi hệ thống hoạt động phi trị, có nhiều loại hình dịch vụ, cung cấp độ xác cao) Ngay nước ta vừa qua thành lập trung tâm nghiên cứu GNSS với tài trợ liên minh Châu Âu, có sách đầu tư phát triển công nghệ liên quan đến lĩnh vực Lý chọn đề tài: Với đa dạng hệ thống GNSS, việc nghiên cứu phương pháp xử lý tín hiệu GNSS đóng vai trò quan trọng việc phát triển ứng dụng công nghệ Trong giải pháp tiếp cận xử lý tín hiệu GNSS phần mềm cho phép dễ dàng tìm hiểu phương pháp xử lý tín hiệu trước triển khai đại trà thu thông dụng, hay thiết kế trạm DGPS để tăng cường độ xác,…Với xu hướng với nhu cầu quan công tác, chọn hướng nghiên cứu vấn đề với đề tài “Nghiên cứu giải pháp phần mềm cho thu GPS” nhằm mục đích nắm bắt công nghệ xử lý tín hiệu GPS để có thông tin dẫn đường Lý chọn tín hiệu GPS là tín hiệu hệ thống hoạt động đầy đủ, hoàn thiện xử dụng rộng rãi Các hệ thống khác có nguyên lý hoạt động tương tự nên nắm cách thức xử lý tín hiệu hệ thống ta dễ dàng tiếp cận xử lý hệ thống khác tương lai Phạm Văn Quyền 9  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  Qua hai hình trên, với β=50Hz kết thu tín hiệu tin thay đổi, nhiên β=5Hz ta thấy tín hiệu tin không đạt Như kết chạy thuật toán bước đầu thành công với việc tìm vệ tinh tầm thu tín hiệu qua trình acquisition Khi thực tracking bám tín hiệu giải mã tín hiệu tin dẫn đường Phạm Văn Quyền 75  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  KẾT LUẬN Kết đạt Trong khuôn khổ luận văn thực đề tài “Nghiên cứu giải pháp phần mềm cho thu GPS” đạt kết là: Về mặt lý thuyết: - Đã đưa nhìn khái quát tình hình phát triển hệ thống GNSS giới, xu hướng phát triển tiềm ứng dụng hệ thống Cập nhật thông tin phát triển tương lai hệ thống GNSS giới - Nghiên cứu nguyên tắc hoạt động hệ thống GPS, lý thuyết cấu trúc tín hiệu GPS, mã trải phổ C/A, tác động hiệu ứng Doppler lên tín hiệu, tin dẫn đường, cách tính PVT - Nguyên tắc hoạt động thu GPS Khái quát hoạt động thu phần cứng, nguyên tắc hoạt động bô thu phần mềm, lý thuyết trình giải hai pha quan trọng thu GPS phần mềm acquisition tracking Về mặt thực nghiệm: - Giải cụ thể hai pha acquisition tracking, cài đặt thử nghiệm phần mềm Matlab đạt kết Thảo luận Toàn luận văn nêu khái quát hệ thống GNSS, nguyên lý hoạt động hệ thống GPS giải pháp cụ thể trình acquisition tracking Tuy nhiên luận văn dừng lại mức nghiên cứu lý thuyết thuật toán bước đầu để cài đặt thử nghiệm với tín hiệu thực Mục đích hướng tới giải toàn toán xử lý tín hiệu GPS phần mềm đưa giá trị vị trí, thời gian, vận tốc tối ưu thuật toán để đạt độ xác cao thời gian thực Phạm Văn Quyền 76  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  TÀI LIỆU THAM KHẢO [1] Akos, Denis (1997) “ A Software Radio Aproach to GNSS design”; Ohio University, Athens, OH [2] Best Roland E (2003), “ Phase Locked Loop: Design, simulation and Application”; McGraw-Hill, 5th edition, New York,NY [3] Elliott D Kaplan, Christopher J Hegarty, (2006) “Understanding GPS, Principles and Applications”, Artech House [4] James Bao, Yen Tsui,(2000) “Fundamentals of Global Positioning System Receivers, A software Approach”, John Wiley & Sons Inc., [5] Kai Borre, Dennis Akos et all ; (2007) “A Software-Defined GPS and Galileo receiver” ; Birkhauser, Boston-Basel-Berlin [6] Micheal S.Braach…(1999); “ GPS receiver architecture and measurements”, IEEE [7] NAVSTAR, 1995, 2nd Edition “Global positioning system standard positioning service signal specification” [8] P.F Lammertsma,(2005) “Satellite Navigation” [9] USA Department Of Defence,(2000) “Global Positioning System Standard Positioning Service Performance Standard”, [10] TS Nguyễn Phạm Anh Dũng (2000); “Lý thuyết trải phổ ứng dụng” NXB Bưu Điện [11] PGS TS Thái Hồng Nhị, 2008; “Hệ thống thông tin vệ tinh”, tập NXB Bưu Điện [12] PGS TS Thái Hồng Nhị, TS Phạm Minh Việt (2003) “Hệ thống viễn thông” tập 1,2” NXB Giáo dục Phạm Văn Quyền 77  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  [13] http://www.insidegnss.com/ [14] http://www.gps.gov/ [15] http://kom.aau.dk/project/softgps/ PHỤ LỤC Tạo mã C/A 4.1 Hàm tạo mã C/A Phạm Văn Quyền 78  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  function CAcode = generateCAcode(PRN) % CAcode: Gia tri ma C/A tuong ung voi ve tinh so PRN % Ham tao ma C/A cua mot 32 ve tinh chi boi PRN % Ma tran quy dinh ve tinh tuong ung phase=[2 6; 7; 8; 9; 9; 10; 8; 9; 10; 3; 4; 6; 7; 8; 9; 10; 4; 5; 6; 7; 8; 9; 3; 6; 7; 8; 9; 10; 6; 7; 8; 9]; G1=-1*ones(1,10);% Thanh ghi G1 G2=G1; % Thanh ghi G2 % Chon ve tinh tuong ung theo quy dinh s1=phase(PRN,1); s2=phase(PRN,2); tmp=0; % Thuc hien tao cac chip cua ma C/A for i=1:1023; G(i)=G2(s1)*G2(s2)*G1(10); tmp=G1(1); G1(1)=G1(3)*G1(10); G1(2:10)=[tmp G1(2:9)]; tmp=G2(1); G2(1)=G2(2)*G2(3)*G2(6)*G2(8)*G2(9)*G2(10); G2(2:10)=[tmp G2(2:9)]; end; CAcode=G; 4.2 Hàm số hóa mã C/A function caCodesTable = makeCaTable(settings) % Ham tao ma C/A cho ca 32 ve tinh sau so hoa chung % Moi bang la mot ma C/A tuong ung voi chi so hang la so ve tinh % - Tim so mau tren mot ma C/A -samplesPerCode = round(settings.samplingFreq / (settings.codeFreqBasis / settings.codeLength)); caCodesTable = zeros(32, samplesPerCode); ts = 1/settings.samplingFreq; % Chu ky lay mau tc = 1/settings.codeFreqBasis; % Chu ky chip ma C/A for PRN = 1:32 Phạm Văn Quyền 79  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  % - Tao ma C/A cho moi ve tinh caCode = generateCAcode(PRN); % So hoa ma C/A % Ham ceil tach moi chip C/A nhieu gia tri giong codeValueIndex = ceil((ts * (1:samplesPerCode)) / tc); codeValueIndex(end) = 1023; caCodesTable(PRN, :) = caCode(codeValueIndex); end Hàm Acquisition function acqResults = acquisition(longSignal, settings) % Ham acquisition thuc hien quyet tren toan bo 32 ve tinh, tinh tuong quan % voi ma C/A du lieu longSignal %acqResults = acquisition(longSignal, settings) % % Inputs: % longSignal - 11 ms du lieu tho gps da so hoa % settings - Cac tham so thiet lap ban dau % Outputs: % acqResults - Luu cac pha ma va tan so song mang cau truc % acqResult Truong carrFreq=0 tuc la khong co tin % hieu % So mau tren ma C/A samplesPerCode = round(settings.samplingFreq / (settings.codeFreqBasis / settings.codeLength)); % Lay tin hieu 1ms lien ke va mot tin hieu dai 10ms signal1 = longSignal(1 : samplesPerCode); signal2 = longSignal(samplesPerCode+1 : 2*samplesPerCode); signal0DC = longSignal - mean(longSignal); % chu ky lay mau ts = / settings.samplingFreq; % So pha cua song mang mot chu ky ma tuong ung phasePoints = (0 : (samplesPerCode-1)) * * pi * ts; % So khoang tan so song mang (voi buoc tan so la 500Hz ) Phạm Văn Quyền 80  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  numberOfFrqBins = round(settings.acqSearchBand * 2) + 1; % Lay mau ma C/A caCodesTable = makeCaTable(settings); % Tao mang results luu cac ket qua tuong quan % Moi hang tuong ung mot tan so song mang results = zeros(numberOfFrqBins, samplesPerCode); % Cac tan so song mang frqBins = zeros(1, numberOfFrqBins); % Luu cac tan so song mang phat hieu duoc acqResults.carrFreq = zeros(1, 32); % Pha ma C/A tuong ung acqResults.codePhase = zeros(1, 32); % Ti so dinh tuong quan acqResults.peakMetric = zeros(1, 32); fprintf('('); % Quet toan bo cac ve tinh for PRN = settings.acqSatelliteList %% Tuong quan ====================================================== % - Tinh DFT ma C/A -caCodeFreqDom = conj(fft(caCodesTable(PRN, :))); % - Tinh tuong quan cho tat ca cac tan so for frqBinIndex = 1:numberOfFrqBins % - Tao cac tan so song mang voi buoc tan so 500Hz frqBins(frqBinIndex) = settings.IF - (settings.acqSearchBand/2) * 1000 + 0.5e3 * (frqBinIndex - 1); % - Tao song mang cuc bo gom phan -sinCarr = sin(frqBins(frqBinIndex) * phasePoints); cosCarr = cos(frqBins(frqBinIndex) * phasePoints); Phạm Văn Quyền 81  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  % - Tach song mang tu tin hieu gps I1 = sinCarr * signal1; Q1 = cosCarr * signal1; I2 = sinCarr * signal2; Q2 = cosCarr * signal2; % - Chuyen sang mien tan so -IQfreqDom1 = fft(I1 + j*Q1); IQfreqDom2 = fft(I2 + j*Q2); % - Nhan voi ma C/A convCodeIQ1 = IQfreqDom1 * caCodeFreqDom; convCodeIQ2 = IQfreqDom2 * caCodeFreqDom; % - Bien doi nguoc Fourier -acqRes1 = abs(ifft(convCodeIQ1)) ^ 2; acqRes2 = abs(ifft(convCodeIQ2)) ^ 2; % - Kiem tra gia tri lon nhat khoi du lieu lien ke % Lay khoi du lieu de tinh tiep if (max(acqRes1) > max(acqRes2)) results(frqBinIndex, :) = acqRes1; else results(frqBinIndex, :) = acqRes2; end end % frqBinIndex = 1:numberOfFrqBins %% Tim cac dinh tuong quan ============================== % Tim dinh tuong quan thu nhat va so sanh voi dinh thu hai khoang % chip % - Tim dinh tuong quan va song mang -[peakSize frequencyBinIndex] = max(max(results, [], 2)); % - Tim pha ma dinh tuong quan tuong ung [peakSize codePhase] = max(max(results)); % - Find chip wide C/A code phase exclude range around the peak -samplesPerCodeChip = round(settings.samplingFreq / settings.codeFreqBasis); excludeRangeIndex1 = codePhase - samplesPerCodeChip; excludeRangeIndex2 = codePhase + samplesPerCodeChip; Phạm Văn Quyền 82  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  % - Correct C/A code phase exclude range if the range includes array %boundaries if excludeRangeIndex1 < codePhaseRange = excludeRangeIndex2 : (samplesPerCode + excludeRangeIndex1); elseif excludeRangeIndex2 >= samplesPerCode codePhaseRange = (excludeRangeIndex2 - samplesPerCode) : excludeRangeIndex1; else codePhaseRange = [1:excludeRangeIndex1, excludeRangeIndex2 : samplesPerCode]; end % - Tim dinh tuong quan thu secondPeakSize = max(results(frequencyBinIndex, codePhaseRange)); % - Luu ket qua ty so acqResults.peakMetric(PRN) = peakSize/secondPeakSize; % Neu ty so lon hon nguong thi xac dinh la co tin hieu % va ta tim tiep tan so toi uu tuong ung if (peakSize/secondPeakSize) > settings.acqThreshold %% Tim tan so toi uu ======================================= % - Hien thi so ve tinh thu duoc fprintf('%02d ', PRN); % - Tao chuoi 10ms ma C/A -caCode = generateCAcode(PRN); codeValueIndex = floor((ts * (1:10*samplesPerCode)) / (1/settings.codeFreqBasis)); longCaCode = caCode((rem(codeValueIndex, 1023) + 1)); % - Tach ma C/A voi pha ma cu the xCarrier = signal0DC(codePhase:(codePhase + 10*samplesPerCode-1)) * longCaCode; % - Tang so diem tinh fft -Phạm Văn Quyền 83  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  fftNumPts = 8*(2^(nextpow2(length(xCarrier)))); % - Tinh bien do, tim max fftxc = abs(fft(xCarrier, fftNumPts)); uniqFftPts = ceil((fftNumPts + 1) / 2); [fftMax, fftMaxIndex] = max(fftxc(5 : uniqFftPts-5)); fftFreqBins = (0 : uniqFftPts-1) * settings.samplingFreq/fftNumPts; % - Luu ket qua % acqResults.carrFreq(PRN) = fftFreqBins(fftMaxIndex); acqResults.codePhase(PRN) = codePhase; else % - In dau hieu bao ve tinh khong co tin hieu -fprintf(' '); end % if (peakSize/secondPeakSize) > settings.acqThreshold end % for PRN = satelliteList %=== Ket thuc qua trinh acquisition ========================================== fprintf(')\n'); Hàm Traking function [trackResults, channel]= tracking(fid, channel, settings) % Thuc hieen bam ma va pha tat ca cac kenh % %[trackResults, channel] = tracking(fid, channel, settings) % % Inputs: % fid - File du lieu % channel - chua thong tin ve PRN, tan so % settings - cac tham so ban dau % Outputs: % trackResults - Chua ket qua dau tracking % Channel status Phạm Văn Quyền 84  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  trackResults.status = '-'; % Khong bam duoc ma % The absolute sample in the record of the C/A code start: trackResults.absoluteSample = zeros(1, settings.msToProcess); % chua cac tan so ma tuong ung moi ms trackResults.codeFreq = inf(1, settings.msToProcess); % tan so song mang moi ms: trackResults.carrFreq = inf(1, settings.msToProcess); % Cac dau tuong quan dong pha: trackResults.I_P = zeros(1, settings.msToProcess); trackResults.I_E = zeros(1, settings.msToProcess); trackResults.I_L = zeros(1, settings.msToProcess); % Cac dau tuong quan truc pha: trackResults.Q_E = zeros(1, settings.msToProcess); trackResults.Q_P = zeros(1, settings.msToProcess); trackResults.Q_L = zeros(1, settings.msToProcess); % Bo tao dau vao hoi tiep cho cac vong lap trackResults.dllDiscr = inf(1, settings.msToProcess); trackResults.dllDiscrFilt = inf(1, settings.msToProcess); trackResults.pllDiscr = inf(1, settings.msToProcess); trackResults.pllDiscrFilt = inf(1, settings.msToProcess); % - tao cac ban cho tung kenh trackResults = repmat(trackResults, 1, settings.numberOfChannels); codePeriods = settings.msToProcess; % - cac tham so cua vong DLL -earlyLateSpc = settings.dllCorrelatorSpacing; PDIcode = 0.001; % cac he so cua vong lap ma C/A [tau1code, tau2code] = calcLoopCoef(settings.dllNoiseBandwidth, settings.dllDampingRatio, 1.0); % - Cac tham so vong PLL Phạm Văn Quyền 85  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  PDIcarr = 0.001; % cac he so vong PLL [tau1carr, tau2carr] = calcLoopCoef(settings.pllNoiseBandwidth, settings.pllDampingRatio, 0.25); hwb = waitbar(0,'Tracking '); %% Bat dau tracking ============================================== for channelNr = 1:settings.numberOfChannels if (channel(channelNr).PRN ~= 0) trackResults(channelNr).PRN = channel(channelNr).PRN; fseek(fid, settings.skipNumberOfBytes + channel(channelNr).codePhase-1, 'bof'); % Tao ma C/A caCode = generateCAcode(channel(channelNr).PRN); % Tao ma tre, som caCode = [caCode(1023) caCode caCode(1)]; codeFreq = settings.codeFreqBasis; % Pha ma du remCodePhase = 0.0; carrFreq = channel(channelNr).acquiredFreq; carrFreqBasis = channel(channelNr).acquiredFreq; % Pha song mang du remCarrPhase = 0.0; % Cac tham so vong DLL oldCodeNco = 0.0; oldCodeError = 0.0; % Cac tham so vong Costas song mang oldCarrNco = 0.0; oldCarrError = 0.0; %=== Xu ly moi ms ================= for loopCnt = 1:codePeriods %% cap nhat thong bao ket qua man hinh if (rem(loopCnt, 50) == 0) try waitbar(loopCnt/codePeriods, Phạm Văn Quyền 86  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  hwb, ['Tracking: Ch ', int2str(channelNr), ' of ', int2str(settings.numberOfChannels), '; PRN#', int2str(channel(channelNr).PRN), '; Completed ',int2str(loopCnt), ' of ', int2str(codePeriods), ' msec']); catch disp('Progress bar closed, exiting '); return end end %% Tham so du lieu codePhaseStep = codeFreq / settings.samplingFreq; blksize = ceil((settings.codeLength-remCodePhase) / codePhaseStep); [rawSignal, samplesRead] = fread(fid, blksize, settings.dataType); rawSignal = rawSignal'; if (samplesRead ~= blksize) disp('Not able to read the specified number of samples for tracking, exiting!') fclose(fid); return end %% Thiet lap cac thong tin ve pha ma % ma som tcode = (remCodePhase-earlyLateSpc) : codePhaseStep : ((blksize-1)*codePhaseStep+remCodePhase-earlyLateSpc); tcode2 = ceil(tcode) + 1; earlyCode = caCode(tcode2); % Ma tre tcode = (remCodePhase+earlyLateSpc) : codePhaseStep : ((blksize-1)*codePhaseStep+remCodePhase+earlyLateSpc); tcode2 = ceil(tcode) + 1; lateCode = caCode(tcode2); % Ma dung tcode = remCodePhase : codePhaseStep : Phạm Văn Quyền 87  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  ((blksize-1)*codePhaseStep+remCodePhase); tcode2 = ceil(tcode) + 1; promptCode = caCode(tcode2); remCodePhase = (tcode(blksize) + codePhaseStep) - 1023.0; %% Tao tan so song mang time = (0:blksize) / settings.samplingFreq; trigarg = ((carrFreq * 2.0 * pi) * time) + remCarrPhase; remCarrPhase = rem(trigarg(blksize+1), (2 * pi)); carrCos = cos(trigarg(1:blksize)); carrSin = sin(trigarg(1:blksize)); qBasebandSignal = carrCos * rawSignal; iBasebandSignal = carrSin * rawSignal; I_E = sum(earlyCode * iBasebandSignal); Q_E = sum(earlyCode * qBasebandSignal); I_P = sum(promptCode * iBasebandSignal); Q_P = sum(promptCode * qBasebandSignal); I_L = sum(lateCode * iBasebandSignal); Q_L = sum(lateCode * qBasebandSignal); %% Vong khoa pha costas -carrError = atan(Q_P / I_P) / (2.0 * pi); carrNco = oldCarrNco + (tau2carr/tau1carr) * (carrError - oldCarrError) + carrError * (PDIcarr/tau1carr); oldCarrNco = carrNco; oldCarrError = carrError; carrFreq = carrFreqBasis + carrNco; trackResults(channelNr).carrFreq(loopCnt) = carrFreq; %% vong khoa ma codeError = (sqrt(I_E * I_E + Q_E * Q_E) - sqrt(I_L * I_L + Q_L * Q_L)) / (sqrt(I_E * I_E + Q_E * Q_E) + sqrt(I_L * I_L + Q_L * Q_L)); codeNco = oldCodeNco + (tau2code/tau1code) * (codeError - oldCodeError) + codeError * (PDIcode/tau1code); oldCodeNco = codeNco; oldCodeError = codeError; codeFreq = settings.codeFreqBasis - codeNco; trackResults(channelNr).codeFreq(loopCnt) = codeFreq; %% Luu ket qua trackResults(channelNr).absoluteSample(loopCnt) = ftell(fid); Phạm Văn Quyền 88  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS  trackResults(channelNr).dllDiscr(loopCnt) = codeError; trackResults(channelNr).dllDiscrFilt(loopCnt) = codeNco; trackResults(channelNr).pllDiscr(loopCnt) = carrError; trackResults(channelNr).pllDiscrFilt(loopCnt) = carrNco; trackResults(channelNr).I_E(loopCnt) = I_E; trackResults(channelNr).I_P(loopCnt) = I_P; trackResults(channelNr).I_L(loopCnt) = I_L; trackResults(channelNr).Q_E(loopCnt) = Q_E; trackResults(channelNr).Q_P(loopCnt) = Q_P; trackResults(channelNr).Q_L(loopCnt) = Q_L; end % for loopCnt trackResults(channelNr).status = channel(channelNr).status; end % if a PRN is assigned end % for channelNr close(hwb) Phạm Văn Quyền 89  Xử lý thông tin & Truyền thông 2008-2010     ... Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS nghiệm thu t toán phần mềm Matlab, xử lý liệu GPS thực tế để đánh giá thu t toán Do điều kiện thời gian thiết bị phục vụ cho trình nghiên cứu kinh nghiệm nghiên. .. Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS Hình 2.8 Tự tương quan tương quan chéo mã C/A Phạm Văn Quyền 27  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS ... Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS Hình 2.11 Bảng đăng ký pha mã C/A 2.4 Hiệu ứng Doppler Phạm Văn Quyền 29  Xử lý thông tin & Truyền thông 2008-2010     Đề tài: Nghiên cứu giải pháp phần mềm cho bộ thu GPS

Ngày đăng: 27/07/2017, 20:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w