📄 untitled5.m
字号:
function [y]=matched_filter(nt,taup,f0,b,rmin,rrec,tr,trcs,winid)
nt=2;taup=0.005e-3;
f0=1.4+7; b=1.6e+7;
rmin=150;rrec=200;
tr=[150 150.050];
trcs=[1 1]; winid=2;
eps=1.0e-16;
htau=taup / 2.;
c=3.e8;
n=fix(2.*taup*b);
m=power_integer_2(n);
nfft=2.^m;
x(nt,1:nfft)=0.;
y(1:nfft)=0.;
replica(1:nfft)=0.;
if (winid==0.)
win(1:nfft)=1.;
win=win';
else
if (winid==1.)
win=hamming(nfft);
else
if (winid ==2.)
win =kaiser(nfft,pi);
else
if (winid ==3.)
win =chebwin(nfft,60);
end
end
end
end
deltar= c/2./b;
max_rrec=deltar*nfft/2.;
maxr=(max(tr)-rmin)*10^3;
if (rrec>max_rrec | maxr>=rrec)
'Error. Receive window is too large ; or scatterers fall outside window'
else
end
trec=2.*rrec/c;
deltat=taup/nfft;
t=0:deltat:taup-eps;
uplimit=max(size(t));
replica(1:uplimit)=exp(i*2.*pi*(.5*(b/taup).* t.^2));
figure(3)
subplot(2,1,1)
plot(real(replica))
title('Matched filter frequency domain response')
subplot(2,1,2)
plot(fftshift(abs(fft(replica))));
title('Matched filter frequency domain response')
for j=1:nt
t_tgt=2.*(tr(j)-rmin)*10^3/c+htau;
x(j,1:uplimit)=trcs(j).*exp(i * 2. * pi * ...
(.5 * (b/taup).*(t+t_tgt).^2));
y=y+x(j,:);
end
figure(1)
plot(t,real(y),'k')
xlabel('Relative delay-seconds')
ylabel('Uncompressed echo')
title('Zero delay coinde with minimum range')
rfft=fft(replica,nfft);
yfft=fft(y,nfft);
out=abs(ifft((rfft.*conj(yfft).* win')) ./ (nfft));
figure(2)
time=-htau:deltat:htau-eps;
plot(time,out,'k')
xlabel('Relative delay-second')
title('Zero delay coincide with minimum range')
grid on
function n=power_integer_2(x)
m=0.;
for j=1:30
m=m+1.;
delta=x-2.^m;
if (delta<0.)
n=m;
return
else
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -