Uploaded by vanchez_kireev

Модель цифрового знакового коррелятора в MATLAB

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ
ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ»
(ФГБОУ ВО «ВГТУ», ВГТУ)
Факультет радиотехники и электроники
Кафедра радиотехники
КУРСОВАЯ РАБОТА
по дисциплине «Техническая диагностика и скрытность»
Тема «Разработка модели цифрового коррелятора в Matlab»
Расчетно-пояснительная записка
Разработал студент гр. мРТ-191
Подпись, дата
Гойко Н.А.
Инициалы, фамилия
Литвиненко В.П.
Инициалы, фамилия
Подпись, дата
Инициалы, фамилия
Подпись, дата
Инициалы, фамилия
Подпись, дата
Инициалы, фамилия
Подпись, дата
Руководитель
Члены комиссии
Нормоконтролер
Защищена ________________Оценка __________________________________
дата
Воронеж 2019
Замечания руководителя
2
СОДЕРЖАНИЕ
ВВЕДЕНИЕ .............................................................................................................. 4
1 Общие сведения об устройствах корреляции и ЛЧМ модуляции .................. 5
2 Результаты моделирования знакового ЛЧМ коррелятора ............................... 7
ЗАКЛЮЧЕНИЕ ..................................................................................................... 11
СПИСОК ЛИТЕРАТУРЫ..................................................................................... 11
Приложение А ....................................................................................................... 13
3
ВВЕДЕНИЕ
В ходе данной курсовой работы будет предложена модель цифрового
коррелятора ЛЧМ сигналов. Данная модель реализована в среде Matlab и
представляет из себя программу, написанную на языке данного пакета.
Особенностью данной модели является наглядность полученных результатов
и возможность их дальнейшей интерпретации для аппаратной реализации,
например, в ПЛИС.
4
1 Общие сведения об устройствах корреляции и ЛЧМ модуляции
Коррелятором принято называть устройство, способное вычислять
корреляционные функции сигналов. В случае, когда речь идет о взаимной
корреляции,
двух
сигналов
корреляционная
функция
определяется
следующим видом:
(1)
𝐵(𝜏) = ∫ 𝑠2 (𝜏) ∙ 𝑠1 (𝑡 − 𝜏) 𝑑𝜏
Данный интеграл показывает схожесть двух сигналов во времени, один
из которых имеет задержку по времени. Пример корреляционной функции
приведен на рис. 1.
Рисунок 1 – Пример корреляции функций
В
данной
курсовой
работе разрабатывается
модель
знакового
коррелятора ЛЧМ сигнала, структурная схема которого приведена на рис. 2.
Рисунок 2 – Структурная схема коррелятора ЛЧМ сигналов
5
ЛЧМ сигналом принято называть такой вид частотной модуляции, при
котором частота несущего колебания изменяется по линейному закону так, как
это показано на рис. 3.
Рисунок 3
Особенностью
данного
типа
сигналов
является
высокая
помехоустойчивость, так как сигналы подобного рода подчиняются
следующему условию:
𝐵 = 𝑇𝑐 ∙ ∆𝐹𝑐 ≫ 1,
(2)
где 𝐵 – база сигнала; 𝑇𝑐 – длительность импульса; ∆𝐹𝑐 – ширина спектра
сигнала.
Аналитически ЛЧМ сигнал представляется в виде:
𝑡2
𝑡и
𝑠(𝑡) = 𝑆𝑚 cos (𝜔0 𝑡 + 𝛽 ) , |𝑡| ≤ ,
2
2
(3)
где 𝑆𝑚 – амплитуда радиоимпульса, 𝜔0 – круговая частота несущей, 𝛽 =
2𝜋∆𝑓/𝑇𝑐 – скорость изменения частоты внутри импульса ∆𝑓 – девиация.
Энергетический спектр ЛЧМ сигнала приведен на рис. 4.
Рисунок 4 – Спектр ЛЧМ сигнала
6
2 Результаты моделирования ЛЧМ коррелятора
Результаты данного моделирования дают ответы на вопросы наилучшей
совместимости частоты дискретизации сигнала с полосой частот, в которой
формируется сигнал, в случае если дискретизация проводится в полосе
формируемых частот.
В качестве рассматриваемого сигнала возьмем сигнал в полосе частот
71..79 кГц, занимающий полосу 8 кГц. Тогда, согласно теореме Котельникова,
частота дискретизации обязана быть не менее 16 кГц.
Модель ЛЧМ сигнала приведена на рис. 5.
Рисунок 5 – ЛЧМ сигнал
Фрагмент кода, формирующий ЛЧМ приведен в таблице 1.
Таблица 1
% формируем временной массив
tch_lf = tch1:tch_dt:(tch2-tch_dt);
% количество выборок в модели
tm = length(tch_lf);
fprintf('Количество дискретов за время существ. моделей 13 мсек
%d\n', tm);
% Формирование ЛЧМ сигнала
y_t1 = zeros(1,tm);
y_t2 = zeros(1,tm);
y_lf = chirp(tch_lf,f_begin,tch2,f_end, 'li', pi);
y = cat(2,y_t1,y_lf,y_t2);
tst = length(y);
7
Каждый шаг в цикле выполняется логическая свертка сигнала со своей
косинусной и синусной моделью, иначе говоря, происходит подсчет
логических совпадений (и не совпадений) сигнала с синусной и косинусной
моделью.
На рис. 6 приведена временная корреляционная диаграмма ЛЧМ сигнала
и косинусной модели.
Рисунок 6 – свертка с косинусом
На рис. 7 приведена временная корреляционная диаграмма ЛЧМ сигнала
и синусной модели.
Рисунок 7 – свертка с синусом
8
В таблице 2 приведен фрагмент кода, формирующий синус и косинус, а
также преобразование их в двоичную форму.
Таблица 2
% косинусная модель
x_cos = chirp(tch_lf,f_begin,tch2,f_end);
% синусная модель
x_sin = imag(hilbert(x_cos));
% модель cos в логике
x_log_cos = dec2bin(reshape( x_cos > 0, [], 1 ));
% модель sin в логике
x_log_sin = dec2bin(reshape( x_sin > 0, [], 1 ));
% сигнал в логике
y_log = dec2bin( reshape( y > 0, [], 1 ));
fprintf('Модель cos %s', x_log_cos);
fprintf('\n');
По окончанию моделирования получаем результат в виде диаграммы с
максимумом совпадений, приведенной на рис. 8.
Рисунок 8 – Корреляционная функция
9
В таблице 3 приведен код программы, осуществляющий вычисление
корреляции.
Таблица 3
for tm_mod = 1:(2*tm)
% побитовая XOR в матрицу xy_cos
xy_cos = bitxor(y_bit(tm_mod:(tm_mod+(tm-1))), x_bit_cos);
% побитовая XOR в матрицу xy_sin
xy_sin = bitxor(y_bit(tm_mod:(tm_mod+(tm-1))), x_bit_sin);
% подсчет совпадений
z(tm_mod) = (tm/2 - length(find(xy_cos))) + (tm/2 length(find(xy_sin)));
end
% максимальное значение в свертке
fprintf('Максимум в свертке %d\n', max(z(:,1)));
В данном конкретном случае изменение частоты дискретизации в
сторону существенного отклонения от целочисленной кратности верхней
частоте ЛЧМ сигнала (79 кГц) приводит к ухудшению качества свертки и
уменьшению количества совпадений сигнала с моделями в максимуме.
Особенностью написанной программы является то, что модель
позволяет получать так называемые HEX файлы, которые содержат код
моделей, для использования их в ПЛИС при реализации знакового
квадратурного коррелятора, загружая их в ядро.
Код написанной программы полностью приведен в приложении А.
10
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсовой работы были получены навыки работы в
пакете компьютерной математики Matlab. Реализована модель коррелятора,
рассматриваются перспективы реализации данного цифрового устройства на
современной аппаратной платформе ПЛИС на основе изложенного алгоритма.
СПИСОК ЛИТЕРАТУРЫ
11
1) Полушин П.А., Самойлов А.Г., Самойлов С.А. Импульсные виды
модуляции: Учеб. пособие / Владим. гос. ун-т – Владимир, 2004.
2) Методические указания к выполнению цикла лабораторных работ по
дисциплинам
"Технологии
беспроводного
доступа
в
телекоммуникационных системах" для студентов направления 11.03.01
"Радиотехника" (профиль "Радиотехнические средства передачи,
приема и обработки сигналов") и «Технологии телекоммуникационных
систем» для студентов специальности 11.05.01 «Радиоэлектронные
системы и комплексы» / ФГБОУ ВО «Воронежский государственный
технический университет» сост. В.В. Жилин. – Воронеж, 2017. – 50 с.
3) Глинченко, А. С. Г54 Цифровая обработка сигналов. Версия 1.0
[Электронный ресурс]: курс – Красноярск: ИПК СФУ, 2008.
4) Дьяконов В. П. MATLAB. Полный самоучитель. – М.: ДМК Пресс, 2012.
– 768 с.: ил.
12
Приложение А
clc;
clear all;
f_begin = 71000;
f_end = 79000;
f_dt = 39700;
tch_begin = 0;
tch1 = 0;
tch2 = 13e-3;
tch_end = 3*tch2;
tch_dt = 1/f_dt;
%Nt = tch2*f_dt;
%
%
%
%
%
%
%
%
начальная частота 71 кГц
конечная частота 79 кГц
частота дискретизации Гц
начальное время моделирования
начальное время модели
конечное время модели
конечное время моделирования
время одного дискрета
%% моделирование
% формируем временной массив
tch_lf = tch1:tch_dt:(tch2-tch_dt);
% количество выборок в модели
tm = length(tch_lf);
fprintf('Количество дискретов за время существ. моделей 13 мсек
%d\n', tm);
% Формирование ЛЧМ сигнала на участке 39 мсек
y_t1 = zeros(1,tm);
y_t2 = zeros(1,tm);
y_lf = chirp(tch_lf,f_begin,tch2,f_end, 'li', pi);
y = cat(2,y_t1,y_lf,y_t2);
tst = length(y);
% fprintf('Количество дискретов за время моделирования 39 мсек
%d\n', tst);
% косинусная модель
x_cos = chirp(tch_lf,f_begin,tch2,f_end);
% синусная модель
x_sin = imag(hilbert(x_cos));
% сигнал в противофазе
%x_sin = x_cos.*x_cos;
% модель cos в логике
x_log_cos = dec2bin(reshape( x_cos > 0, [], 1 ));
% модель sin в логике
x_log_sin = dec2bin(reshape( x_sin > 0, [], 1 ));
% сигнал в логике
y_log = dec2bin( reshape( y > 0, [], 1 ));
fprintf('Модель cos %s', x_log_cos);
fprintf('\n');
fprintf('Модель sin %s', x_log_sin);
fprintf('\n');
fprintf('Сигнал %s', y_log);
fprintf('\n');
fprintf('\n');
13
% бинарный формат моделей и сигнала
x_bit_cos = reshape( x_cos > 0, [], 1 );
x_bit_sin = reshape( x_sin > 0, [], 1 );
y_bit = reshape( y > 0, [], 1 );
% распечатка HEX кода моделей если кол. дискр. моделей без
остатка /4
if (mod(tm,(4*round(tm/4))) == 0)
rsh_cos = reshape( x_cos > 0, [], tm/4 );
rsh_sin = reshape( x_sin > 0, [], tm/4 );
% модели в hex
x_hex_cos = dec2hex( bi2de(rsh_cos', 'left-msb'));
x_hex_sin = dec2hex( bi2de(rsh_sin', 'left-msb'));
% формат строки
formatSpec_x_cos_hex = 'Модель cos hex %s';
formatSpec_x_sin_hex = 'Модель sin hex %s';
% значения y_hex в hex виде
fprintf(formatSpec_x_cos_hex, x_hex_cos);
fprintf('\n');
fprintf(formatSpec_x_sin_hex, x_hex_sin);
fprintf('\n');
fprintf('\n');
% открытие файла на запись косинусной модели
fid = fopen('x_hex_cos.txt', 'wb');
% проверка корректности открытия
if fid == -1
error('File is not opened');
end
% запись в файл
fwrite(fid, x_hex_cos);
% закрытие файла
fclose(fid);
% открытие файла на запись синусной модели
fid = fopen('x_hex_sin.txt', 'wb');
% проверка корректности открытия
if fid == -1
error('File is not opened');
end
% запись в файл
fwrite(fid, x_hex_sin);
% закрытие файла
fclose(fid);
else
fprintf('Невозможно создать полный HEX код моделей\n')
fprintf('Количество дисретов моделей не делится без остатка
на 4\n');
fprintf('Необходимо изменить частоту дискретизации \n\n');
end
14
z_cos = zeros(3*tm);
z_sin = zeros(3*tm);
z = zeros(3*tm);
for tm_mod = 1:(2*tm)
% побитовая XOR в матрицу xy_cos
xy_cos = bitxor(y_bit(tm_mod:(tm_mod+(tm-1))), x_bit_cos);
% побитовая XOR в матрицу xy_sin
xy_sin = bitxor(y_bit(tm_mod:(tm_mod+(tm-1))), x_bit_sin);
% подсчет совпадений
z(tm_mod) = (tm/2 - length(find(xy_cos))) + (tm/2 length(find(xy_sin)));
end
% максимальное значение в свертке
fprintf('Максимум в свертке %d\n', max(z(:,1)));
fprintf('\n');
%% графика
figure
tr = 1:tst;
plot(tr/f_dt, y), grid;
xlabel('Время мсек');
title('ЛЧМ сигнал');
zoom xon;
figure
plot(tch_lf, x_cos), grid;
xlabel('Время (в сек)');
title('ЛЧМ модель cos');
zoom xon;
figure
plot(tch_lf, x_sin), grid;
xlabel('Время (в сек)');
title('ЛЧМ модель sin');
zoom xon;
figure
tl = 1:(3*tm);
plot(tl, z), grid;
xlabel('Дискреты');
title('Знаковый коррелятор');
zoom xon;
15
Download