%conv_exa2_sampP



load BLO
barle=input('Barbara--1; Lena --2;  ?')
if barle==1
bloch=blochB;
elseif barle==2
bloch=blochL;
end
Par=4;
q=4;%Order of the spline interpolating the kernel
deci=2;
lev=log2(deci);
ToX=.0000000000001;
range_rho1=111000000000;%input('range_rho1; 111-former; ?')
if range_rho1~=111
    range_rho=[0 range_rho1];
end

F=bloch;

[M,~]=size(bloch);
sg1=1;%input('gauss--1;savitzky--2; std--3; heat--5;0 --none; ?')
if sg1>0
    sg=sg1;
end
  t1 = 3;%input('stretch of kernel;111 --former; ?')
if t1~=111
    t=t1;
end

[H,fH]=buikerP(M,t,sg);%build kernel
fF=fft2(F);
    fG=fF.*fH;
    G=real(ifft2(fG));

st1=input('noise std; 111-former; ?')
if st1~=111
    st=st1;
    nois=st*randn(M);
end
Z=G+nois;



figure;
subplot(2,2,1)
D=(1:deci:M);
noi=nois(D,D);
z=Z(D,D);
f=F(D,D);
h=H(D,D);
 [uq,~]=juviP(q,M/deci); 
 uq=uq'*uq;
 mu=fft2(h)./uq;
ee=sum(noi(:).^2);
 [PSNR_z, mablod]=psnB(f,z);
      %rho=defroPCo(Par,q,z,h,ee,range_rho,ToX,regg)
 rho=defroP_conv(Par,q,z,mu,ee,range_rho,ToX)
 
  %rho=.1    
%s=convsplaP2(z,Par,q,h,lev,rho,regg) /4^lev;
s=convsplaP2(z,Par,q,mu,lev,rho) /4^lev;


ai(z);
ste=256/deci;
% set(gca,'YTick',0:ste:2*ste);set(gca,'YTickLabel',{'0','256','512'})
% set(gca,'XTick',0:ste:2*ste);set(gca,'XTickLabel',{'0','256','512'})
set(gca,'YTick',0:ste:2*ste);set(gca,'YTickLabel',{})
set(gca,'XTick',0:ste:2*ste);set(gca,'XTickLabel',{})

title(['\fontsize{16}Sampl=1:' int2str(deci) ', STD=' num2str(st) ', PSNR=' num2str(PSNR_z,4 ) ])

subplot(2,2,2)
[PSNR, mablod]=psnB(F,s);

ai(s)
title(['\fontsize{16}Spl. order: '  int2str(Par) ', PSNR=' num2str(PSNR,4 ) ', \rho=' num2str(rho,2) ])
%title(['\fontsize{16}\rho=' num2str(rho)])
set(gca,'YTick',0:256:512);set(gca,'YTickLabel',{})
set(gca,'XTick',0:256:512);set(gca,'XTickLabel', {})


subplot(2,2,3)
deci=2*deci;
lev=log2(deci);
D=(1:deci:M);
z=Z(D,D);
h=H(D,D);
f=F(D,D);
noi=nois(D,D);
ee=sum(noi(:).^2);
  [uq,~]=juviP(q,M/deci); 
 uq=uq'*uq;
 mu=fft2(h)./uq;
      rho=defroP_conv(Par,q,z,mu,ee,range_rho,ToX)
  %rho=.1    
s=convsplaP2(z,Par,q,mu,lev,rho) /4^lev;
 [PSNR_z mablod]=psnB(f,z);
ai(z);
ste=256/deci;
set(gca,'YTick',0:ste:2*ste);set(gca,'YTickLabel',{})
set(gca,'XTick',0:ste:2*ste);set(gca,'XTickLabel',{})
%title(['\fontsize{16} Sampling=1:' int2str(deci)])
title(['\fontsize{16}Sampl=1:' int2str(deci) ', STD=' num2str(st) ', PSNR=' num2str(PSNR_z,4 )] )


subplot(2,2,4)
[PSNR mablod]=psnB(F,s);

ai(s)
title(['\fontsize{16}Spl. order: '  int2str(Par) ', PSNR=' num2str(PSNR,4 ) ', \rho=' num2str(rho,2) ])
%title(['\fontsize{16}\rho=' num2str(rho)])
set(gca,'YTick',0:256:512);set(gca,'YTickLabel',{})
set(gca,'XTick',0:256:512);set(gca,'XTickLabel', {})


