⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctemconvolution.m

📁 扫描电镜(stem)的matlab模拟程序代码
💻 M
字号:
function II = ctemconvolution(V,rmax,nx,params,type)
% MATLAB function to convolve the CTEM PSF with the projected potential
%
% function II = ctemconvolution(V,rmax,nx,params,type)
%
%  input matrix V is the projected potential
%
%  input rmax = radial limit
%  input nx = dimension of V. i.e. double V(nx,nx);
%
%  input type = 0 for phase contrast
%        and 1 for amplitude contrast
%
%  params ={ Cs, df, kev, ddf, beta, amax}
%  params.Cs   = spherical aberration (in mm)
%  params.df   = defcocus (in Angstroms)
%  params.kev  = electron energy (in keV)
%  params.ddf  = chromatic aberation defocus spread (in Angstroms)
%  params.beta = spread in illumination angles (in mrad)
%
% started 07-Jun-06 Huolin Xin
% modified 11-Jun-06 Huolin Xin
% modified 06-Jul-06 Huolin Xin (replace step function by
% 1/(1+exp(A*(x-xc)));


Cs = params.Cs*1.0e7;
df = params.df;
kev = params.kev;
ddf = params.ddf;
beta = params.beta*0.001;
amax = params.amax*0.001;

wav = 12.3986/sqrt((2*511.0+kev)*kev);
klimit = amax/wav;

V = fft2(V);

dx = rmax/nx;
kmax = 1/dx;
dk = 1/(dx*nx);
[kx ky] = meshgrid(-kmax/2:dk:kmax/2-dk);
k2 = fftshift(sqrt(kx.^2+ky.^2));
clear kx;
clear ky;
H2d = ctemincohmtf(k2,params,type);

klimit = min(klimit,kmax/2);

%replace step by 1/(1+exp(A*(x-xc)))
x = 0:dk/4:kmax+dk;
y = 1./(1+exp(1000.*(x-klimit)));

k2 = interp1(x,y,k2,'linear');

clear x;
clear y;

V = V.*H2d;
clear H2d;
V = V.*k2;
clear k2;

II = real(ifft2(V));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -