
pr2
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
___________________________________________________________________________
Кафедра радиосистем и обработки сигналов.
Дисциплина «Обработка сигналов в радиотехнических системах»
Практическая работа № 2
Корреляционная обработка и согласованная фильтрация прямоугольного видеоимпульса
Выполнили: ст. гр.
Проверил:
ст.пр. Егоров.С.Г.
Санкт-Петербург
2024
Выполнить построения и реализовать функции из методических указаний (т.е. построить все графики)
’’
Моделировать пачку прямоугольных радиоимпульсов и реализовать корреляционную и фильтровую обработки сигналов, принимаемых в шуме.
Реализовать алгоритм приема (детектирования импульса). Составить программу в Matlab.
Порог: упр=446.4668
Вероятность обнаружения сигнала D1=1
Задержка: zader=11
mo=0;
signal=0;
nosignal=0;
F=0.001;
sigma0=sqrt(var(c2y(1:L-1)));
Cf=norminv(1-F, mo, sigma0);
ynp = mo + sigma0 * Cf
for i=130:150;
if c1y(i)>ynp
signal=signal+1;
else
nosignal=nosignal+1;
end
end
D1=signal/(signal+nosignal)
for i=1:(L-1)*2
if cy(i)>13
cyu(i)=[cy(i)]
i1=i;
end
end
k22=[1:i1]
figure(6100), plot(k22*Ts,cyu)
TF=islocalmax(cyu)
i2=0;
i3=0;
for i=1:length(TF)
if TF(i)==1
i2=i;
end
break
end
for i=1:length(TF)
if TF(i)==1
i3=i;
end
end
zader=(i3-i2)*Ts
6. Исследовать влияние параметра обнаружения (с/ш) на характеристики обнаружения. Сравнить работу алгоритма и характеристики обнаружения для случаев мультипликативной помехи и аддитивного шума.
При с/ш = 0,666
Порог: ynp = 660.0883
Вероятность обнаружения сигала D1 = 0.9524
При с/ш=1
Порог: упр=446.4668
Вероятность обнаружения сигнала D1=1
Исследовать чувствительность алгоритмов обнаружения к изменению параметров распределений. Определить существенные относительные отклонения параметров. Предложить варианты обнаружения при априорной неопределенности (т.е. если параметры распределения шума неизвестны).
shum=gamrnd(1.6,1,size(t));
ynp = 540.8103
D1 =1
Бгш
shum=wgn(1,150,1);
ynp = 346.4844
D1 = 1
% main_det_rect_impulse
% processing rectangular impulse plus noise
% uses function = func_rect_imp
clc
clear all
close all
START=0
L=150 % Total length (points)
LS = 20 % Length (duration) of signal (points)
LD = 41 % Signal appearance [points]
L1 = 61 % Expected signal appearence [points]
L2 = 81
L3 = 11
L4 = 111
LD2 = 51 % Signal appearance [points]
L12 = 71 % Expected signal appearence [points]
L22 = 91
L32 = 21
L42 = 121
%%%%%%%%%%%%%%%%%%%%%
Ts = 0.1 % Sample time [s]
Fs=1/Ts % Sample frequency [Hz]
TS = LS*Ts % Signal Duration [s]
TD = (LD-1)*Ts % Signal Delay [s]
T1 = (L1-1)*Ts % Signal Expected Appearence [s]
T2 = (L2-1)*Ts
T3 = (L3-1)*Ts
T4 = (L4-1)*Ts
TD2 = (LD2-1)*Ts
T12 = (L12-1)*Ts % Signal Expected Appearence [s]
T22 = (L22-1)*Ts
T32 = (L32-1)*Ts
T42 = (L42-1)*Ts
%%%%%%%%%%%%%%%%%%%%%
PROCESS=1 % Signal
A=3
ss=func_rect_impulse(Fs,LS,LD,L,A);
ss1=func_rect_impulse(Fs,LS,L1,L,A);
ss2=func_rect_impulse(Fs,LS,L2,L,A);
ss3=func_rect_impulse(Fs,LS,L3,L,A);
ss4=func_rect_impulse(Fs,LS,L4,L,A);
ss22=func_rect_impulse(Fs,LS,LD2,L,A);
ss12=func_rect_impulse(Fs,LS,L12,L,A);
ss23=func_rect_impulse(Fs,LS,L22,L,A);
ss32=func_rect_impulse(Fs,LS,L32,L,A);
ss42=func_rect_impulse(Fs,LS,L42,L,A);
s=ss+ss1+ss2+ss3+ss4;
s1=ss22+ss12+ss23+ss32+ss42;
L1=L42
t=(0:L-1)*Ts;
figure(100), plot(t,s,t,s1,t,A*1.1), grid
title(['Impulse duration LS = ',num2str(LS),...
' amplitude A = ',num2str(A),' lag TD = ',num2str(TD),...
' lag T1 = ',num2str(T1)]),
xlabel('time (sec)'), ylabel('s (Volts)')
figure(101), stem(t,s,'LineStyle','-.','MarkerFaceColor','red',...
'MarkerEdgeColor','green'), title('Discrete Signal');
hold on; stem(t,s1); plot(t,A*1.1);
xlabel('time (sec)'); ylabel('s (Volts)'), grid on
%
%%%%%%%%%%%%%%%%%
PROCESS=2 % Observations
rand('state',0);
%
shum=randn(size(t));
y = s+ shum; % Signal plus noise
% y = s;
figure(200), plot(t,y,t,s(1:L))
title(['Signal A = ',num2str(A),...
' Corrupted with Zero-Mean Random Noise'])
xlabel('time (sec)'), ylabel('y (Volts)'), grid
hold on; plot(t,A*1.1);
%%%%%%%%%
figure(201), stem(t,y,'LineStyle','-.',...
'MarkerFaceColor','red',...
'MarkerEdgeColor','green'),
title('Discrete Signal Corrupted with Zero-Mean Random Noise');
hold on; plot(t,s,t,A*1.1),
xlabel('time (sec)')
ylabel('s (Volts)'), grid on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
PROCESS=3 % CORRELATOR
c2y=shum(1)*s1(1);
for i=2:L
c2y(i)=c2y(i-1)+shum(i)*s1(i);
end;
LB=max(LD,L1)
LE=min(LD+LS,L1+LS)
TB=(LB-1)*Ts
TE=(LE-1)*Ts
for i=1:L
sm(i)=s(i).*s1(i);
end;
maxsm=max(sm)
figure(300), plot(t,sm,t,maxsm*1.1), title('Product'), grid
c1y(1)=y(1)*s1(1);
for i=2:L
c1y(i)=c1y(i-1)+y(i)*s1(i);
end;
figure(301), plot(t,c1y*Ts,t,s.^2*TS,t,max(s.^2*TS*1.1),'*'),
title('Correlator'), grid;
xlabel('time (sec)')
%%%%%%%%%%%%%%\
mo=0;
signal=0;
nosignal=0;
F=0.001;
sigma0=sqrt(var(shum))*9.5;
%sigma0=sqrt(var(shum))*9.5;
%sigma0=sqrt(var(c2y(1:L-1)));
%ks=sigma0/sigma1
Cf=norminv(1-F, mo, sigma0);
ynp = mo + sigma0 * Cf
for i=130:150
if c1y(i)>ynp
signal=signal+1;
else
nosignal=nosignal+1;
end
end
D1=signal/(signal+nosignal)
MAX=0;
%zader=0;
%for i=10:(L-1);
% if c1y(i)==0
% zader=zader+1;
% end
%end
%zader
%%%%%%%%%%% CONVOLUTION %%%%%%%%%%%%%%%%%%%%%%%
PROCESS=4 % Match Filter Response
s0=func_rect_impulse(Fs,LS,1,L,A);
% s0
h=zeros(1,L);
for i=1:LS
h(i)=s0(LS-i+1);
end
maxh=max(h)
figure(400), plot(t,h,t,maxh*1.1), title('Match Filter Re-sponse'),
xlabel('time (sec)'), grid
figure(401), stem(t,h), title('Match Filter Response'),
xlabel('time (sec)'), grid
hold on
plot(t,maxh*1.1)
%%%%%
PROCESS=5
cy=conv(y,h);
cy=cy*Ts;
mcy=max(cy); mcy=mcy*Ts
k1=-(L-1):(L-1);
k2=k1+LS+80;
figure(500), plot(k2*Ts,cy),
title('Convolution with Matched Filter'), grid
hold on
plot(t,mcy*1.1,t,s.^2*TS);
figure(501), stem(k2*Ts,cy),
title('Convolution with Matched Filter'), grid
xlabel('time (sec)')
hold on
plot(t,mcy*1.1,t,s.^2*TS);
%%%%%%%%%%%%%%%%%%%
PROCESS=6
figure(600), plot(k2*Ts,cy), grid
title('Correlator and Matched Filter')
xlabel('time (sec)')
hold on
plot(t,s.^2*TS,t,c1y*Ts,t,s1.^2*TS,t,mcy*1.1)
figure(607), plot(k2*Ts,cy), grid
for i=1:(L-1)*2
if cy(i)>13
cyu(i)=[cy(i)]
i1=i;
end
end
k22=[1:i1]
figure(6100), plot(k22*Ts,cyu)
TF=islocalmax(cyu)
i2=0;
i3=0;
for i=1:length(TF)
if TF(i)==1
i2=i;
end
break
end
for i=1:length(TF)
if TF(i)==1
i3=i;
end
end
zader=(i3-i2)*Ts