Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет НИР_Боронин_6_М.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
546 Кб
Скачать
☆

Литература

1. Яценков В.С. Основы спутниковой навигации. – Москва: Горячая линия – Телеком, 2005.

2. Введение в GPS (Глобальная Навигационная Система). – Швейцария, Leica Geosystems AG, 2001.

3. Каи Бор Прикладный и численный гармонический анализ. Программируемый приемник GPS и GALILEO. Одночастотный подход. - Брикхаузер Бостон, 2007.

4. http://www.satlines.info/shop/firms/GPS.html.

5. Ж.Макс Методика и техника обработки сигналов при физических измерениях. – Москва: Мир, 1983.

6. М.В.Синьков Быстрая свертка на основе БПФ – Украина, Киев: Институт проблем регистрации информации НАН Украины, 2005.

7. Л.А.Мироновский, К.Ю. Петрова Введение в MATLAB – Санкт-Петербург, 2005.

8. А.А.Геннике, Г.Г Побединский Глобальные спутниковые системы определения местоположения и их применение в геодезии – Москва: Картгеоцентр, 2004.

9. Блейхут Р. Быстрые алгоритмы цифровой обработки сигналов – Москва: Мир, 1989.

Приложение а

Файл MyMain.m

% demCorGPS.m %

% Created on: 02:07:13

% Author: Melihova

% Editor: Boronin

% *********************

%

%%

clc;

clear all;

%% creating the constants %%

bitDuration = 20; %% длина бита

sfDuration = 300; %% длина подкадра

caLen = 1023; %% длительность СА кода %% standart length of CA - code in a form (I,Q)

periods = 10;

sample = 2; %% количество самплов на элемент СА кода %% the number of sampls for one bit

signal_length = sample*caLen*(periods + 1); %%

deltaT = 2*pi*10^(-3)/( sample * caLen ); %%

threshold = 3*10^4;

preambula = [1; -1; -1; -1; 1; -1; 1; 1];

tr = 0.75;

position = zeros(32,1);

sputnum = zeros(32,1);

dop = zeros(32,1);

ListCor = zeros(32,caLen*sample);

quality = zeros(32,10);

val = zeros(1,10);

data = zeros(2046,10);

coherency = 2; % 1 если складываем некогерентно, 2 - когерентно

%% creating the variables %%

signal = zeros(signal_length, 1); %% signal consists of in - fase "I" and quadrature - fase "Q"

res_dop = zeros(signal_length, 1); %% complex signal with dopler shifting

template = zeros(caLen*sample, 1);

%% reading the file %%

%bin = fopen('GpsSignal.sas');

bin = fopen('rawData.dat');

B = fread(bin, signal_length*2, 'int16');

fclose(bin);

%% doppler identification with the presizion 100 Hz

lim = 4e3; %% в герцах

precision = 10; %% в герцах

% преобразуем входной массив I и Q в комплексный сигнал

signal(:) = B(1:2:end) + 1i*B(2:2:end);

Visible_Sv_Count = 0;

for sv = 1:10

sv

rawDoppler = doppler_ident(signal, sv, sample, lim, precision);

phase = deltaT * rawDoppler(1, 1) * (0:signal_length-1);

res_dop(:, 1) = signal(:, 1).*exp(1i*phase).';

CA_sv = CAgen(sv);

for i = 1:sample

template(i:sample:end, 1) = CA_sv(:);

end

cor = Correlation( res_dop, template );

[pos, val, data] = searchSput(cor, tr, caLen, sample, coherency);

if pos ~= 0

Visible_Sv_Count = Visible_Sv_Count + 1;

position(Visible_Sv_Count) = pos;

sputnum(Visible_Sv_Count) = sv;

dop(Visible_Sv_Count) = rawDoppler(1,1); %% вернул назад в герцы

ListCor(1:caLen*sample,Visible_Sv_Count) = data(1:caLen*sample,1);

quality(Visible_Sv_Count,:) = val;

end

end

if Visible_Sv_Count > 0

sputnum = sputnum(1:Visible_Sv_Count);

position = position(1:Visible_Sv_Count);

ListCor = ListCor(1:caLen*sample,1:Visible_Sv_Count);

dop = dop(1:Visible_Sv_Count);

quality = quality(1:Visible_Sv_Count,1:10);

inf = [sputnum dop position];

disp('номера спутников | допплеровский сдвиг, Гц | позиция максимума');

inf

quality

D = ceil(sqrt(Visible_Sv_Count));

for i = 1:(Visible_Sv_Count)

figure (1);

subplot(D,ceil(Visible_Sv_Count/D),i);

plot(abs(ListCor(1:caLen*sample,i)));

xlabel(sputnum(i));

grid on;

figure (2);

subplot(D,ceil(Visible_Sv_Count/D),i);

plot(quality(i,:));

xlabel(sputnum(i));

grid on;

end

else

disp('Спутники не найдены');

end