Диссертации - Проектирование системы безопасности объекта на основе геопозиционирования с возможностью удаленного контроля в режиме реального временинного контроля в режиме реального времени

РАЗРАБОТКА МОДЕЛИ ОБНАРУЖИТЕЛЯ СПУТНИКОВЫХ СИГНАЛОВ ДЛЯ ПОДКОНТРОЛЬНОГО ОБЪЕКТА - Построение модели обнаружителя сигналов навигационной спутниковой системы GPS и его программная реализация в соответствии с построенным алгоритмом

Для качественной проверки работы обнаружителя, реализованного непосредственно на FPGA, необходимо создать его модель в среде Matlab. Результат моделирования процесса обнаружения необходимо сравнить с результатами тестирования реально созданного обнаружителя на FPGA, при подаче на FPGA генератора реального сигнала, построенного на основе C/A–кода. В качестве тестового воздействия в модели используется тот же в вариант C/A–кода.

Выбранный для проверки C/A–код преобразуется из бинарного вида в биполярный, т.е. «1» переходит в «-1», а «0» в «1». Полученную таким образом последовательность будем использовать в качестве вещественной компоненты комплексной огибающей сигнала.

Для примера приведены графики последовательности в бинарном виде на рисунке 3.1 и в биполярном виде на рисунке 3.2.

Рисунок 3.1 – Бинарный вид C/A–кода

Рисунок 3.2 – Биполярный вид C/A–кода

Сама модель таким образом состоит из следующих частей – схема формирования тестового сигнала, непосредственно сам обнаружитель и модуль, формирующий вывод результатов в виде графиков. Структурная схема приведена на рисунке 3.3.

Рисунок 3.3 – Структурная схема тестовой модели

На рисунке 3.4 приводится функциональная схема блока, отвечающего за формирование тестового воздействия. Sвх соответствует входному сигналу, представляющему смесь полезного сигнала с шумом. Для теста выбран Гауссовский шум, как наиболее характерный для спутниковых каналов связи, характеризущийся равномерной, то есть одинаковой на всех частотах спектральной плотностью мощности, нормально распределенными временными значениями и аддитивным способом воздействия на сигнал [14]. Sоп соответствует формируемому в обнаружителе опорному сигналу, фактически должен входить в состав обнаружителя, но для наглядности вынесен именно в данный блок.

 

Рисунок 3.4 – Функциональная схема формирования тестового воздействия

Обнаружитель С\А–кода, как было сказано выше реализуется в виде согласованного фильтра и включает в свой состав решающее устройство, принимающее решении об обнаружении. Функциональная схема обнаружителя приведена на рисунке 3.5.

Рисунок 3.5 – Функциональная схема обнаружителя

На рисунке 3.6 приведена блок-схема данного алгоритма.

Рисунок 3.6 – Блок-схема алгоритма обнаружителя в среде Matlab

Полученная модель использована для тестирования прошивки, полученной для FPGA. Критериями сравнения являются ширина пика, соответствующего максимуму, а также отношение значения этого пика к уровню окружающих значений.

На вход фильтра подается некоторая реализация, представляющая сумму биполярного С\А–кода и аддитивного Гауссовского шума в полосе сигнала.

Фильтр осуществляет быструю свертку поступившей реализации с псевдослучайной последовательностью. Затем находится пик результата быстрой свертки и принимается решение о принятой реализации: содержит или нет, она исходную псевдослучайную последовательность.

Входная реализация процесса задается как периодически повторяющаяся псевдослучайная последовательность с шумом. Результат работы программы продемонстрирован на рисунке 3.7. Приведены иллюстрации для ситуаций, когда:

  • С\А–коды приходящего и опорного сигналов совпадают,

  • С\А–коды приходящего и опорного сигналов не совпадают.

Рисунок 3.7 – Результат моделирования обнаружителя в среде Matlab

Прежде чем приступить к реализации модели обнаружителя на языке VHDL в среде HDLdesigner, необходимо определится со структурой обнаружителя. Для этого в первую очередь необходимо определить механизм поиска по доплеровской добавке к частоте и кодовому смещению.

Можно представить некое пространство, имеющее свою координатную сетку, характеризующее эти параметры. Иллюстрация приведена на рисунке 3.9.

 

Рисунок 3.9 – Координатная сетка пространства D-F

Ось D соответствует кодовому сдвигу, а величина шага по ней определяется количеством отсчетов на один чип псевдослучайной последовательности. Как правило, выбирают либо 2, либо 4 отсчета на чип. Увеличение числа отсчетов до 4 позволяет достичь большей точности, но при этом увеличивает объем вычислений, что приведет либо к увеличению требуемого числа ресурсов, либо к увеличению затрачиваемого на расчеты времени. С учетом этого выбран вариант с 2-мя отсчетами на элемент кода. А чтобы сохранить точность, после превышения порога проводится дополнительный поиск в пределах 3-х чипов в обе стороны от найденной позиции.

Вторая ось (F) отвечает за доплеровскую добавку по частоте. Как правило, для пользовательского навигационного устройства эта величина не превышает ±5 кГц. Для обеспечения достаточной точности выбирается шаг 100 Гц.

Переходим к выбору схемы перебора этих параметров. В случае отказа от использования параллельного подхода общее время перебора всей сетки используем выражение 3.1

(3.1)

где M – число чипов в последовательности,

N – число возможных сдвигов по частоте,

TC – время на обработку одного чипа.

С учетом двух отсчетов на чип общее время увеличится в 4 раза. Схема перебора с последовательно-параллельной обработкой различны смещений приводит к уменьшению Т в К раз согласно выражению 3.2.

(3.2)

где К – кол-во одновременно обрабатываемых чипов.

В случае использования схемы с диапазонным полосовым фильтром (ДПФ) в качестве «гетеродина» параметр К будет соответствовать длине ДПФ.

С учетом создания требований к гибкости конечного устройства предпочтение отдается первому варианту схемы, т.к. изменение длины ДПФ во втором случае жестко связано с сеткой доплеровских смещений. Уменьшение длины ДПФ приведет к увеличению шага и потери точности, а увеличение – к чрезмерному уменьшению шага, а значит и повысит время, необходимое для полного сканирования.

Кроме того, длина ПСП является достаточной для получения преимущества от применения так называемой быстрой свертки, основанной так же на ДПФ. Алгоритм быстрой свертки дает выигрыш по числу используемых операций для получения результата круговой свертки, с помощью которой может быть выражен результат перебора по всем возможным смещениям ПСП.

На рисунке 3.10 приведена принципиальная схема обнаружителя, полученная с помощью среды HDLdesigner.

Рисунок 3.10 – Принципиальная схема обнаружителя в среде HDLdesigner

При разработке в среде HDLdesigner для FFT, IFFT и комплексного умножения использовались готовые ядра от компании Xilinx. Они позволяют добиться требуемой функциональности с меньшими затратами ресурсов. Кроме того, с помощью синтезатора проведена следующая оценка требуемых ресурсов.

Результат оценки приведен в виде снимка экрана главного окна программы. Этот результат можно посмотреть на рисунке 3.11.

Без использования ядер, а также при отказе от использования метода быстрой свертки, потребление ресурсов возрастает на несколько порядков. Цифры приведены после двухэтапной оптимизации: с помощью синтезатора и вручную.

Полученные данные анализа требуемых ресурсов показывают, что для реализации ПНУ можно использовать FPGA фирмы Xilinx XSV5465TFFF или более старшие модели.

Рисунок 3.11 – Оценка использования ресурсов

В листинге 3.1 приводится код на языке VHDL, реализующие основные функции по управлению одним логическим каналом.

control: process(Clk)
begin
if (clk'event and clk = '1') then
if (Rst = '1') then
read <= '0'; write <= '1';
read_cnt <= 0; write_cnt <= 0;
stage_cnt <= 0; global_stage_cnt <= 0;
t_cnt <= 0; t <= '0';
end if

-- period checking
if (Nd = '1') then

if (t_cnt = 4091) then
t_cnt <= 0; t <= '0';
else
t_cnt <= t_cnt + 1;
end if;
if (t_cnt = 4090) then
t <= '1';
end if;
end if;
if (read = '0' and write = '0') then
if (t = '1') then
write <= '1';
end if;
end if;
-- writing
if (write = '1') then
if (Nd = '1') then
if (write_cnt = 4091) then
goto <= '1';
addra <= conv_std_logic_vector(write_cnt,12);
else
write_cnt <= write_cnt + 1; wea <= "1";
addra <= conv_std_logic_vector

write_cnt,12);
end if;
end if;
end if;
-- reading

if (read = '1') then
if (read_cnt = 2048) then
read_cnt <= 0;
if (stage_cnt = 5) then
stage_cnt <= 0;
if (global_stage_cnt) = 3 then
global_stage_cnt <= 0; read <= '0';

else
global_stage_cnt <= global_stage_cnt + 1;
end if;
else
stage_cnt <= stage_cnt + 1;

end if;
else
read_cnt <= read_cnt + 1;
end if;
if (read_cnt < 2048) then
enb <= '1';
addrb <= conv_std_logic_vector((read_cnt*4) + global_stage_cnt,12);
addra1 <= conv_std_logic_vector(read_cnt,12);
else
enb <= '0';
end if;
end if;
-- FFT start/stop
if (read_cnt = 1) then
start <= '1';
end if;
if (read_cnt = 2) then
start <= '0';
end if;
-- iFFt start/stop
if (fft_done = '1') then
start1 <= '1'; st1_en <= '1';
end if;
if (st1_en = '1') then
start1 <= '0'; st1_en <= '0';
end if;
end process;
-- FFT/iFFT settings

fwd_inv <= '1';
fwd_inv1 <= '0';
fwd_inv_we <= '1';
scale_sch_we <= '1';
scale_sch <= "000000000000";
scale_sch1 <= "000000000000";

Первый этап работы обнаружителя заключается в накоплении двух периодов входной ПСП с учетом числа символов на чип. Затем наступает второй этап – непосредственно реализация быстрой свертки и обработка полученных результатов. После завершения, если необходимо происходит перестройка частоты на величину выбранного шага.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться