Xlabel('Время (с)');
ylabel('Y1(t)')
Результат представлен на 2-ом графике.
Теперь данный сигнал y1 мы посылаем на вход коррелятора:
Создаем задержку в дискретах(Создали цикл) и перемножаем
r = zeros(1,100);
for k = 1:100 %Задержка сигнала Nz=0:99
y = [y1(k:end) zeros(1,k-1)];
y = y.*y1;
r(k) = sum(y)/length(y1);
end
Создаем второй ФНЧкорр сотого порядка с частотой среза Wn=0,00001Гц и постоянной времени фильтра=100:
n = 100;%Постоянная времени фильтра ФНЧкорр(Апертура)=100дискрет
Wn = 0.00001;%частота среза
b = fir1(n,Wn);%Делаем КИХ фильтр(методом взвешивания)-Фильтр 100порядка
z=filter(b,1,r);
Создание ФНЧ1 и ФНЧкорр.
ФНЧ1- входит во формирование входного процесса.
ФНЧкорр-формирование обработки и после этого подается на отображение результата.
ф1- постоянная времени фильтра и она у меня 10дискрет. Время у меня дискретное i. Процесс у меня стационарный. ФНЧ делаем фиксированным.
Мы делаем задержку – у меня в варианте Nз=0-99 и загоняем в тело цикла. Далее мы каждое значение вводим в массив. И когда мы просканируем Nз=0-99, мы получили массив этих точек (ниже графика приведены значения). Потом отображаем это в виде графика.
Процесс на выходе с фнч1-медленный, случайный и его корр определяется ф=100 дискрет и параметрами ФНЧкорр.
На выходе с КОРРЕЛЯТОРА я строю Автокорреляционную функцию.
Чтобы снять АКФ нам нужно сделать линию задержки (описанную выше), сделать умножитель и поставить ФНЧ(квази-интегратор). ФНЧ мы делаем довольно длинным
его корр> ф. Например: ф1= 10, а корр=100.
Я взял в своей работе трансверсальный фильтр. Взял это окошко и менял от1 до 10.
Принцип работы Коррелятора.
Мы делаем в работе одноканальный коррелятор со сканированием. Мы сначала задали одно значение - и получили первое значение – потом сработал ФНЧ и запомнили результат. Сделали другую задержку - мы при этом довольно долго фильтруем и когда мы дошли до конца, у нас все отчеты набрались(мы их сделали последовательно во времени- и сделали цикл по этим задержкам). С выхода коррелятора мы получаем АКФ.
Форма графика АКФ у нас может быть и разной, но основной лепесток будет определяться апертурой этого ФНЧ.
Как мы получаем АКФ и что это такое:
Так как мы работаем с дискретной последовательностью – мы перебираем все значения, делая развертку по времени задержки(тое для нулевой, единичной, вторичной и т.д. ) {Ведь задержка – это просмотр разных точек на Корреляционной функции.}
А потом просто снимаем коэффициенты корреляции. И вот эта совокупность коэффициентов корреляции и есть АКФ(функция от времени задержки )
Техническое задание.
Смоделировать коррелятор цифровой последовательности.
Моделирование процессов и систем.
Математическое моделирование включает следующие этапы:
выбор расчетной схемы и определение необходимой детализации;
математическое описание (составление системы уравнений);
выбор метода решения;
приведение модели к виду, удобному для решения на ЭВМ;
составление программы для ЭВМ;
проведение расчетов (моделирование);
анализ полученных результатов;
оформление отчета (описание, схемы, рисунки, графики, формулы и т.д.)
Исходный код программы в MATLAB:
clc
clear
Ts=0.01; %Шаг во времени(дискрета врмени) 0.01
t=0:Ts:100; %Задание параметров длительностью=100с
x1=wgn(1,10001,3);%Создание ДБГШ {1строчка 10001столбцов 1-мощность}
%subplot(2,1,1) %Вывод ДБГШ
figure (1);
plot(t,x1),grid,set(gca,'FontName','Arial Cyr','FontSize',16)
title('Входной процесс-белый шум Гаусса (Ts=0.01)');
