Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-05-21
年龄: 45
帖子: 3
声望力: 0 ![]() |
![]()
请教高手,我有一个很窄的line spread function,现在做一个FFT转换求MTF,我的线宽是5微米,1024个点,最大的频率应该是100lp/mm,可是我不知道怎么在MATLAB中换算过来,下面是我试写的,但结果不是很对,不知道怎么改,请高手指点一下。
谢谢! LSF在附件里! % FFT to calculate the MTF [FileName, PathName]=uigetfile('*.xls','Select the Excel File'); [Data,TXT,RAW]=xlsread([PathName,FileName]);% file is 100u-LSF xx=Data(:,1); AA=Data(:, 3); %curve= fit(xx,AA,'gauss1'); %X=curve(xx); %BB=fft(X,4096); BB=fft(AA,2048); Pyy = BB.* conj(BB) / 2048; yy=max(Pyy); Pyy=Pyy./yy; x=[0:1023].*100./1023; plot (x(1:10),Pyy(1:10)); |
![]() |
![]() |