Лабораторная работа 21 / 2008-03-27-19-30-Ольга- работа2
.docЛабораторная работа № 2
Корреляционный метод измерения задержки сигнала
Корреляция (correlation), и ее частный случай для центрированных сигналов - ковариация - это мера похожести двух сигналов.
Корреляционная функция используется для определения времени прихода (задержки) сигнала. Поскольку максимальное сходство, а, следовательно, и максимальное скалярное произведение) будет в момент полного совпадения x(t) и его копии в y(t), по положению максимума корреляционной функции можно судить о времени прихода сигнала.
-
Корреляция двух прямоугольных импульсов
figure(1);
x=ones(1,100);
y=zeros(1,1000);
y(1,301:400)=x;
subplot(1,2,1),plot(y);grid; title('y');
for i=1:900 % корреляция прямоугольных импульсов x и y
R(i)=x*(y(i:i+99))';
end;
subplot(1,2,2),plot(R); grid; title('Correlation');
2. Корреляция двух импульсов в форме трапеции
figure(8);
R1=R; % здесь использован треугольный импульс полученный в первой задаче
R1(251:350)=50; % создаем импульс трапеции
subplot(1,2,1),plot(R1); grid; axis([0 1000 -1 55]); title('R1');
Y=R1(201:400);
for i=1:800 % корреляция двух импульсов Y и R1
R4(i)=Y*(R1(i:i+199))';
end;
subplot(1,2,2), plot(R4); grid; title('Correlation');
3. Корреляция двух треугольных импульсов
z=zeros(1,1000);
z(251:450)=R(201:400); % здесь использован треугольный импульс полученный в первой % задаче
w=R(201:400);
figure(6);
subplot(1,2,1),plot(z);grid; title('z');
for i=1:800 % подсчитываем корреляцию треугольных импульсов w и z
R2(i)=w*(z(i:i+199))';
end;
subplot(1,2,2),plot(R2); grid;axis ([0 500 0 700000]); title('Correlation');
4. Корреляция синусоидальных импульсов
q=zeros(1,1000);
q(201:300)=sin(0:99);
figure(7);
subplot(1,2,1),plot(q); grid; axis([150 350 -1 1]); title('q');
q2=sin(0:99);
for i=1:900
R3(i)=q2*(q(i:i+99))'; % корреляция двух синусоидальных импульсов q и q2
end;
subplot(1,2,2), plot(R3); grid; axis([100 310 -60 60]); title('Correlation');
5. Корреляция двух прямоугольных импульсов с двумя
figure(2);
x=[ones(1,100) zeros(1,100) ones(1,100)];
y=zeros(1,1000);
y(301:600)=x;
subplot(1,2,1),plot(y); title('y');
for i=1:700
R(i)=x*(y(i:i+299))'; % корреляция x и y
end;
subplot(1,2,2), plot(R); grid; title('Correlation');
.
6. Корреляция двух шумовых сигналов
figure(4);
s=rand(1,200);
s1=s>0.75;
s2=(s1-0.5)*2;
y=zeros(1,1000);
y(301:500)=s2; % к сигналу y добавили шум
subplot(1,2,1), plot(y), grid; title('y');
for i=1:800
R(i)=s2*(y(i:i+199))'; % корелляция сигналов s2 и y
end; R(801:1000)=0;
subplot(1,2,2), plot(R), grid; title('Correlation');
7. Корреляция сигнала, состоящего из двух прямоугольных импульсов, с таким же сигналом на который наложен шум
figure(3);
x=ones(1,100);
x(40:60)=0; % два прямоуголных импульса - сигнал без шума
r=randn(1,1000);
r(301:400)=r(301:400)+x; % добавление шума к сигналу
subplot(1,2,1),plot(r); grid; title('r');
for i=1:900
R(i)=x*(r(i:i+99))'; % корелляция чистого сигнала с зашумленным
end;
subplot(1,2,2), plot(R); grid; title('Correlation');
8. Ковариация двух сигналов (корреляционная функция, вычисленная по центрированному значению сигнала).
figure(5);
x=ones(1,200);
x(120:160)=0; % сигнал из двух прямоугольных импульсов
s=rand(1,200);
s1=s>0.75;
s2=(s1-0.5)*2; % создание шумового сигнала
subplot(2,2,1) , plot(x) , grid; axis([0 200 -1 2]); title('x');
subplot(2,2,2), plot(s2+x), grid; title('s2+x'); % наложение шума на сигнал
y=zeros(1,1000);
y(301:500)=s2+x;
subplot(2,2,3) ,plot(y), grid; title('y');
for i=1:800
C(i)= (s2-mean(s2))* (y(i:i+199)-mean(y) )'; % ковариация двух сигналов s2 и y
end;
subplot(2,2,4),plot(C),grid; title('Covar');
Выводы:
В данных примерах(кроме двух последних) производится определение скалярного произведения сигнала с собственной копией, скользящей по аргументу, такую корреляционную функцию называют автокорреляционной, что позволяет оценить среднестатистическую зависимость текущих отсчетов сигнала от своих предыдущих и последующих значений (так называемый радиус корреляции значений сигнала), а также выявить в сигнале наличие периодически повторяющихся элементов. В последних двух примерах выявление сигнала из шума производится при помощи корреляционной и ковариационной функции, причем во втором случае максимум функции виден более отчетливо, т.к. корреляция считается по центрированным значениям сигнала.
-