Приложение 2. Программа восстановления зависимости .
% Modeling of the reconstruction of sigma
clear all
% Signal
t0=1;
omtr=2*pi/t0;
dlitimp=10*t0;
dlit=100*t0;
ts=t0/150;
t=0:ts:dlit;
%y=gauspuls(t-2,1,1);
y=1.*rectpuls(t-dlitimp/2-t0/2,dlitimp).*sin(omtr.*(t-t0/2-dlitimp/2));
%figure
subplot(2,1,1);
plot(t,y)
zoom xon
yfft=abs(fft(y));
yfft1=yfft/max(yfft);
df=1/dlit;
fmax=1/ts;
f=0:df:30/t0;
flenpl=length(f);
fmaxpl=max(f);
%figure
subplot(2,1,2);
plot(f,yfft1(1:flenpl))
zoom xon
% Modelling of sigma(omega)
figure
%freqz(bs,as)
fchar=1/t0;
fcharmin=2.5*fchar;
fcharpl=2.6*fchar;
%alpfa=2*ts*fchar;
ffilin=[0 2*ts*fcharmin 2*ts*fcharmin 2*ts*fcharpl 2*ts*fcharpl 1];
m=[1 1 3.0 3.0 1 1];
%m=[1 1 1 1 1 1];
b=fir2(550,ffilin,m);
[h,freal]=freqz(b,1,512,fmax);
%freal=w./2./ts./pi;
%plot(freal, abs(h))
plot(freal, abs(h).*abs(h))
zoom xon
grid on
figure
%freqz(b,1)
sout=filter(b,1,y);
%sout=filtfilt(b,1,y);
plot(t,sout)
zoom xon
% Addition of noise
sout1=sout+0.03*randn(1,length(t));
figure
subplot(3,1,1);
plot(t,sout1)
zoom xon
xlabel('t, отн. ед');
ylabel('Отраженный сигнал');
title('а')
%figure
soutfft=abs(fft(sout1));
soutfft1=soutfft/max(soutfft);
%plot(f,yfft1(1:flenpl))
%zoom xon
%grid on
%xlabel('Частота, отн.ед.');
%ylabel('Спектр сигнала передатчика');
%title('а')
subplot(3,1,2);
%plot(freal, abs(h).*abs(h))
%zoom xon
%grid on
%xlabel('Частота, отн.ед.');
%ylabel('\sigma (f)');
%title('б')
subplot(3,1,2);
plot(f,soutfft1(1:flenpl))
zoom xon
grid on
xlabel('Частота, отн.ед.');
ylabel('Спектр отраженного сигнала');
title('б')
% Signal-to-noise ratio
sout1fft=abs(fft(sout));
mu=0;
mu1=0;
for ks=1:flenpl;
if f(ks)>1/t0-1/dlitimp & f(ks)<1/t0+1/dlitimp
mu=mu+soutfft(ks).*soutfft(ks);
end
if f(ks)>1/t0+1/dlitimp & f(ks)<1/t0+2/dlitimp
mu1=mu1+soutfft(ks).*soutfft(ks);
end
end
% Direct reconstruction of sigma
sigrec=soutfft./yfft;
%figure
subplot(3,1,3);
%plot(f(2:end),sigrec(2:flenpl))
plot(f(2:end),sigrec(2:flenpl).*sigrec(2:flenpl))
sigrec2=sigrec.*sigrec;
zoom xon
grid on
xlabel('Частота, отн.ед.');
ylabel('\sigma (f)');
title('в')
hold on
plot(freal, abs(h).*abs(h),'r')
% Histogramm
m=[2 4 7 10];
figure
for km=1:4
%m=10;
%deltaf=2/t0/m(km);
deltaf=2/dlitimp/m(km);
shirina=deltaf/df;
for k=1:fmaxpl/deltaf;
sumyfft(k)=sum(yfft((k-1)*shirina+1:k*shirina));
sumsoutfft(k)=sum(soutfft((k-1)*shirina+1:k*shirina));
sumsigrec2(k)=sum(sigrec2((k-1)*shirina+1:k*shirina));
fhis(k)=deltaf/2+(k-1)*deltaf;
end
flen=length(fhis);
%figure
%sumyfft1=sumyfft/max(sumyfft);
%plot(fhis(1:flen),sumyfft1(1:flen))
%zoom xon
%figure
%sumsoutfft1=sumsoutfft/max(sumsoutfft);
%plot(fhis(1:flen),sumsoutfft1(1:flen))
%zoom xon
sigrechis=sumsoutfft./sumyfft;
%plot(fhis(1:flen),sigrechis(1:flen))
subplot(5,1,km)
plot(freal, abs(h).*abs(h),'r',...
fhis(2:flen), sigrechis(2:flen).*sigrechis(2:flen)) %,...
% fhis(2:flen), sumsigrec2(2:flen))
zoom xon
grid on
ylabel('\sigma (f)');
end
xlabel('Частота, отн.ед.');
subplot(5,1,1);
title('а');
subplot(5,1,2);
title('б');
subplot(5,1,3);
title('в');
subplot(5,1,4);
title('г');
%subplot(5,1,5);
%title('д');
%ylabel('\sigma (f)');
Предыдущий раздел | Содержание | Следующий раздел |