-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpp.m
55 lines (55 loc) · 1.5 KB
/
pp.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function pp(fig,ax,sig,nsamp,siglen,dt,blev,tsys,r0)
global rd d_parbl el bval radcon site
nsig=sum(isfinite(sig));
if nsig==0
set(ax,'visible','off'), return
end
x=zeros(max(nsamp),nsig); d=x*NaN;
for i=1:nsig
ld=nsamp(i)-1;
p=rd(sig(i)+(1:nsamp(i)));
if isempty(blev)
b=min(p);
else
b=blev(min([i length(blev)]));
end
syst=tsys(min([i length(tsys)]));
d(1:nsamp(i),i)=(p-b)*syst;
x(1:nsamp(i),i)=(0:ld)'*dt(i)*1e6;
end
xl='\mus'; yl='Power (K)';
if isfinite(r0(1:nsig))
x=(x+ones(max(nsamp),1)*(r0(1:nsig)-siglen(1:nsig)/2-dt(1:nsig))*1e6);
if all(x(:,1)>0)
x=x*.15;
if bval(11)
if d_parbl(8)>100e3
d=d.*x.^2.*(ones(max(nsamp),1)*(2*radcon(site)/d_parbl(8)*dt(1:nsig)./siglen(1:nsig)));
else
d=d*0;
end
yl='Density (m^{-3})';
end
re=6370; x=x/re; x=re*sqrt(1+x.*(x+2*sin(el/57.2957795)))-re;
xl='Altitude (km)';
elseif nsig==1
filltime=30e-6+1.5*dt(1); guard=r0(1)*1e6;
y=[0;filltime;siglen(1);siglen(1)+filltime]*1e6;
if guard==0, x(1:nsamp(1),1)=x(1:nsamp(1),1)-mean(x(1:nsamp(1),1)); end
pshape=[0;1;1;0]; y=y-mean(y); p=interp1(y,pshape,x(1:nsamp(1),1));
p(find(isnan(p)))=[];
tri=conv2(d(1:nsamp(1)),flipud(p)/sum(p),'same');
[m,p]=max(tri);
snr=m/syst/b;
s=max(snr,.05);
del=x(p,1); if snr<0, del=NaN; end
end
end
if exist('snr','var')
updateplot(fig,ax,x,d,y,s*pshape*syst*b)
set(get(ax,'title'),'string',(sprintf('SNR=%.1f%% Delay=%.0f\\mus',100*snr,del)))
else
updateplot(fig,ax,x,d)
end
set(get(ax,'xlabel'),'string',xl)
set(get(ax,'ylabel'),'string',yl)