Математически методи за обработка на дискретизиран сигнал



Дата13.09.2016
Размер66.85 Kb.
#9130
МАТЕМАТИЧЕСКИ МЕТОДИ ЗА ОБРАБОТКА

НА ДИСКРЕТИЗИРАН СИГНАЛ

(Корелационен анализ)
I. Цел на упражнението

За­по­з­на­ва­не с пра­к­ти­че­с­ко­то при­ло­же­ние на корелационния анализ за об­ра­бо­т­ка на ди­с­к­ре­ти­зи­ран ана­ло­гов си­г­нал.



II. Опитна постановка


Микрокомпютър и програмната система MATLAB.
III. Задачи за изпълнение

1. Вклю­че­те ми­к­ро­ком­пю­тъ­ра, за­ре­де­те опе­ра­ци­он­на­та си­с­те­ма и стартирайте програмата MATLAB. Изберете работна директория C:\My Dokuments\MUSSPI\Correl.

2. Определяне честотата на периодичен силно зашумен сигнал. Генерирайте синусоидален сигнал с честота 500 Hz. Последователно насложете върху него бял шум с амплитуда 0, 0.1, 0.3, 0.5 ( получават се четири варианта на изпълнение на програмата). Посредством функцията xcorr(x) определете автокорелационната функция. Изчертайте сигнала и автокорелационната функция. Извършете преобразуване на Фурие върху сигнала и автокорелационната функция. Изчертайте сигнала, амплитудната, фазочестотната характеристика и времевото изместване на честотните компоненти. Анализирайте получените резултати. За извършване на посочените изчисления използвайте следващата програма:

clear;


fs=500; % честота на периодичния сигнал

N=256; % брой дискрети на сигнала

Fs=5000; % честота на дискретизация

Ts=1./Fs;

t=(0:Ts:(N-1)*Ts);

x1=sin(2*pi*fs*t);

randn('state',0);

x=x1+0.5*randn(size(t)); % зашумен входен сигнал

subplot(311), plot(t,x1),

xlabel('t'), ylabel('x1(t)'), title('time discrete signal');

subplot(312), plot(t,x),

xlabel('t'), ylabel('x(t)'), title('time discrete signal with noice');

y=xcorr(x);

subplot(313), plot(t,y(N:2*N-1)),

xlabel('t'), ylabel('y(t)'), title('autocorrelation signal');

pause; % пауза, изчакване на Enter

X=fft(x,N); % FFT на зашумения входен сигнал

Xa=abs(X);

Xfi=angle(X);

f=(0:Fs/N:(N-1)*Fs/N); % вектор със стойностите на честотата

subplot(311), plot(t,x),

xlabel('t'), ylabel('x(t)'), title('time discrete signal with noice');

subplot(312), stem(f,Xa,'.'), grid on, axis([0 Fs 0 N])

xlabel('f,Hz'), ylabel('Xa(f)'), title('DTF spectrum');

subplot(313), stem(f,Xfi,'.'), grid on, axis([0 Fs -5 5])

xlabel('f,Hz'), ylabel('Xfi(f)'), title('phaze spectrum');

pause; % пауза, изчакване на Enter

Y=fft(y(N:2*N-1),N); % FFT на автокорелационния сигнал

Ya=abs(Y);

Yfi=angle(Y);

Yt=Yfi.*(Yfi./(f.*(2*pi))); % времево изместване на честотните компоненти

subplot(411), plot(t,y(N:2*N-1)),

xlabel('t'), ylabel('y(t)'), title('autocorrelation signal');

subplot(412), stem(f,Ya,'.'), grid on,

xlabel('f,Hz'), ylabel('Ya(f)'), title('DTF spectrum');

subplot(413), stem(f,Yfi,'.'), grid on,

xlabel('f,Hz'), ylabel('Yfi(f)'), title('phaze spectrum');

subplot(414), stem(f,Yt,'.'), grid on,

xlabel('f,Hz'), ylabel('Yt(f)'), title('delay time');

3. Отделяне на сигнал с известна честота при наличието на високо ниво на шума. Генерирайте сигнал с честота 500 Hz и насложете върху него шум с амплитуда 0.5. Изчертайте на един екран периодичния сигнал с търсената честота, зашумения сигнал и взаимно корелационната функция на тези два сигнала. Анализирайте резултатите.

clear;

fs=500;


N=256;

Fs=5000;


Ts=1./Fs;

t=(0:Ts:(N-1)*Ts);

x1=sin(2*pi*fs*t);

randn('state',0);

x=x1+0.5*randn(size(t));

subplot(311), plot(t,x1),

xlabel('t'), ylabel('x1(t)'), title('time discrete signal');

subplot(312), plot(t,x),

xlabel('t'), ylabel('x(t)'), title('time discrete signal with noice');

y=xcorr(x,x1);

subplot(313), plot(t,y(N:2*N-1)),

xlabel('t'), ylabel('y(t)'), title('correlation signal');

4. Определяне на закъснение на един сигнал спрямо друг при еднакви честоти. Сигналите да са с честота 500 Hz, а закъснението на втория спрямо първия да е на четвърт период. Върху втория сигнал насложете шум с амплитуда 0.3 . Изчислете взаимно корелационната функция и по нейните стойности определете закъснението на втория сигнал, както като време така и като ъгъл.

clear;


fs=500;

N=256;


Fs=10000;

Ts=1./Fs;

t=(0:Ts:(N-1)*Ts);

x1=sin(2*pi*fs*t);

randn('state',0);

x2=sin(2*pi*fs*t-pi/2)+0.3*randn(size(t));;

subplot(311), plot(t,x1),

xlabel('t'), ylabel('x1(t)'), title('time discrete signal');

subplot(312), plot(t,x2),

xlabel('t'), ylabel('x2(t)'), title('time discrete signal delay pi/2');

y=xcorr(x1,x2);

subplot(313), plot(t,y(N:2*N-1)),

xlabel('t'), ylabel('y(t)'), title('correlation signal');

5. Определяне периода на взаимно корелационна функция на два сигнала с различни честоти. Първия сигнал е с честота 200 Hz, а втория – 500 Hz. Изчертайте сигналите и определете периода на взаимно корелационната функция.

clear;

f1=200;


f2=500;

N=256;


Fs=10000;

Ts=1./Fs;

t=(0:Ts:(N-1)*Ts);

x1=sin(2*pi*f1*t);

x2=sin(2*pi*f2*t);

subplot(411), plot(t,x1),

xlabel('t'), ylabel('x1(t)'), title('time discrete signal 200 Hz');

subplot(412), plot(t,x2),

xlabel('t'), ylabel('x2(t)'), title('time discrete signal 500 Hz');

y=xcorr(x1,x2);

subplot(413), plot(t,y(N:2*N-1)),

ylabel('y(t)'), title('correlation signal y(t)');

yc=xcorr(y(N:2*N-1));

Maxim=max(yc(N+5:2*N-1));

s1=['autocorrelation signal yc(t)'];

s2=[' Maximum=', num2str(Maxim)];

s=[s1 s2];

subplot(414), plot(t,yc(N:2*N-1)),

xlabel('t'), ylabel('yc(t)'), title(s);

IV. Информационна част


1. Автокорелационна функции.

Автокорелационната функция на сигнала се дава от израза:



.

Свойства на автокорелационната функция:

а) четност:

б) има максимум при :



,
при което е средното значение на квадрата на сигнала, или дисперсията, или квадрата на ефективната стойност, или средната мощност на ;

в) автокорелационната функция на периодичен сигнал има същия основен период, съдържа всички честоти на основния сигнал и само тези честоти;

г) фазовият спектър на автокорелационната функция е тъждествено равен на нула;

д) от горните две свойства следва, че автокорелационната функция съхранява честотната информация и губи фазовата.



2. Корелационна функция

Корелационната (взаимно корелационната) функция на два сигнала се дава от израза:



Свойства на корелационната функция:

а)  ;

б) ;

в) ако двете функции са независими, то тяхната корелационна функция е тъждествено равна на нула;

г) корелационната функция на две функции с един и същи период е периодична функция със същия период;

д) корелационната функция на две функции с различни периоди е периодична функция с основен период равен на периода на биенето (= m.T1 = n.T2, където m и n са цели числа);

е) корелационната функция на произволна периодична функция x(t) с гребеновидна функция със същия период е същата периодична функция x(t).

ж) дистрибутивност:

ако , то .



3. Основни приложения на автокорелационната и корелационната функции.

а) Откриване на периодичен сигнал на фона на шум, при което ако x(t)=a(t)+b(t), a(t) - сигнал, b(t) - шум, то




и понеже сигналът и шумът са независими, то и . Шумът като случаен сигнал има автокорелационна функция клоняща към нула за , в следствие на което .

б) Увеличаване съотношението сигнал/шум при изчисляване на автокорелационната функция. Новото съотношение сигнал/шум се дава от формулата , където G е новото съотношение сигнал/шум, B е честотната лента на сигнала, T е времето за интегриране, Re е началното съотношение сигнал/шум;

в) Намиране на сигнал с известен период a(t) на фона на шум b(t), при което се търси корелационната функция на сигнала x(t)=a(t)+b(t) със спомагателен сигнал c(t) с основен период като на a(t), при което и клони към нула понеже b(t) и c(t) са независими.

г) Измерване на изместването във времето на два сигнала, x(t)=b(t) и при което тяхната корелационна функция има максимум при .

4. Информация за използването на функцията xcorr , реализираща корелационните преобразувания.

XCORR Cross-correlation function estimates.

C = XCORR(A,B), where A and B are length M vectors (M>1), returns the length 2*M-1 cross-correlation sequence C. If A and B are of different length, the shortest one is zero-padded. C will be a row vector if A is a row vector, and a column vector if A is a column vector.

XCORR produces an estimate of the correlation between two random (jointly stationary) sequences:

C(m) = E[A(n+m)*conj(B(n))] = E[A(n)*conj(B(n-m))]

It is also the deterministic correlation between two deterministic signals.

XCORR(A), when A is a vector, is the auto-correlation sequence.

XCORR(A), when A is an M-by-N matrix, is a large matrix with 2*M-1 rows whose N^2 columns contain the cross-correlation sequences for all combinations of the columns of A.

The zeroth lag of the output correlation is in the middle of the sequence, at element or row M.

V. Контролни въпроси


1. Каква информация ни дава автокорелационната функция и какво се губи?

2. Как може да се намали нивото на шума насложен върху периодичен сигнал?



3. Защо броя на точките след изчисляване на корелационната функция е два пъти по-голям от тези на входния сигнал?






Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница