角谱计算时的fftshift及其原理

做一个fft运算,第一个事先用fftshift对待变换的E0进行操作,第二个没有用fftshift,第三个没有用fftshift但是进行了相位手动修正:

%%用fft进行角谱传输计算
%对比fft运算与傅里叶变换(黎曼和)的区别以及修正
clear
clc
close all

scale = 1.5e-4;
N = 50;
d0 = 20e-6;%sampling interval
wave_len=632.8e-9;%wavelength in nm 
k0=2*pi/wave_len;% vacuum wave number
fs=1/d0;%sample frequency
z=k0*scale^2;

x=d0*(-0.5*N:1:0.5*N-1); 
E0=abs(x)<scale;
I0=abs(E0).^2;

%初始面光强
figure(1)
plot(x,I0);
drawnow

%初始面相位
figure(2)
plot( x,mod(angle(E0),2*pi));
 
%傅里叶变化
figure(3)
ufft10=fftshift(fft(fftshift(E0)));%fftshift就是把频率平移,自己查资料,百度也行。如果不平移,那得知道每个地方对应的真实频率。
ufft10=ufft10';

subplot(1,3,1)
plot(mod(angle(ufft10),2*pi));

p=0:N-1;
ufft11=fftshift(fft(E0));%fftshift就是把频率平移,自己查资料,百度也行。如果不平移,那得知道每个地方对应的真实频率。
ufft11=ufft11';
subplot(1,3,2)
plot( mod(angle(ufft11),2*pi));

ufft12=fftshift(exp(1i*pi*p).*fft(E0));
ufft12=ufft12';
subplot(1,3,3)
plot( mod(angle(ufft12),2*pi));
%由于计算误差,可能会出现0和2pi的区别,画图可能会看起来相位不一样,所以可以直接看数据。






相位校正原理:

可以参考文献:FFT计算菲涅尔衍射相位的跳变与矫正研究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值