📄 psd2_2_psd1.m
字号:
%%%%%此程序为处理 从二维PSD计算一维PSD 基本程序,包含汉宁窗口算法%%%%%%%%%%
clear;close;%清内存,关闭图
% % load data_lg.dat;%读AFM数据,之前应先去除文件头的说明文字,仅剩数据
% % L=20; %取样长度,请先设定
% % Z_scale=14.93652; %根据文件头的说明文字找出相应的值
% % sen_Z_scale=3.948723; %根据文件头的说明文字找出相应的值
% % N=256; %根据文件头的说明文字找出相应的采样点数
% % %计算实际高度
% % z=data_lg*Z_scale*sen_Z_scale./65535;%计算z向实际高度
z=load ('cjc002.txt');
N=512;
L=25;
%****************计算实际高度结束*******************%
%计算二维PSD
% window=(8/3)*hann(N)*hann(N)';%加能量归一化后的二维汉宁窗
% fz=fft2(z.*window);
fz=fft2(z); %加矩形窗
psd2=((L/(N-1))^2)*abs(fz).*abs(fz)/(N*N);%PSD算 unit:mm2*nm2
%*****************计算二维PSD结束*******************%
%二维转换一维PSD
psd2=imrotate(psd2,0); %0度时,为x向,旋转-90度时,为y向
psd=sum(psd2./L,1).*2 ; %1为X向 对列求和
spfr1=(0:N/2)/L;%进行对应的频率转换
loglog(spfr1,psd(1:N/2+1),'r');
xlabel('Spatial Frequency (1/μm)'),ylabel('One-dimensional PSD (nm^2μm)');
% grid ;
%************-**二维转换一维PSD计算结束**************%
%%调入AFM处理数据,显示PSD
% hold on;
% load afm_la_1dpsd.txt;
% spfr1=(1:N/2)/L;%进行对应的频率转换
% loglog(spfr1,afm_la_1dpsd(:,2).*0.001,'b');
% title('Comparison of AFM & Self-developed Program ');
% h = legend('Self-developed','AFM',1);
% set(h,'Interpreter','none');
% axis([0.01 10 0.01 100]);
%***************AMF数据调入,处理结束**************%
% psd_afm=afm_la_1dpsd(:,2);
psd_afm=psd(2:N/2);
psd_2=sum(psd_afm./L);
RMS=sqrt(psd_2)
Sq=sqrt(sum(sum(z.^2))/(N*N))
Sa=sum(sum(abs(z)))/(N*N)
Rmax=abs(max(max(z)))-min(min(z))
%%调入一维平均PSD数据,处理显示PSD
% load ave_psd;
% hold on;
% spfr1=(0:N/2)/L;%进行对应的频率转换
% loglog(spfr1,ave_psd(1:N/2+1),'b');
% xlabel('Spatial Frequency (1/μm)'),ylabel('One-dimensional PSD (nm^2μm)');
% grid on;
% xxx=(psd(1:N/2))'./(afm_la_1dpsd(:,2).*0.001) &调试用,找比例关系
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -