|
楼主 |
发表于 2016-4-26 10:30
|
显示全部楼层
对傅氏解析表达式采样,是依照1/(N*delt),N是fft时,频域采样点数,delt是对时域的采样间隔。
fft部分:N=100000;
n1=0:N-1;
fs=1/delt;
f=fs*n1/N;
E0_fft=fft(Et,N);
semilogx(f(1:N/2),abs(E0_fft(1:N/2))./fs);%在这不明白好多人对fft的结果*2/N,来还原真实幅值,为什么?????
%在这对其进行乘以delt以后得到的频域完全与傅氏解析式绘制出的一样
grid on;
ifft部分:
shijian_t=(1:100000)*0.5*10^-10;
%%%在这不懂时间部分该如何表示
E0_ifft=ifft(Ef*fs,100000);
e0=ifftshift(E0_ifft);
plot(shijian_t-(2*10^-5),e0);
grid on;
附上源代码:
clear;
clc;
delt=0.5*10^-10;
n=120;
t=(0:n-1)*delt;
A=4.664/0.564;%修正系数
E0=3*10^4;%场强峰值
tao=3*10^-9;
t0=3*10^-9;
Et=E0*A.*(t-t0)./tao.*exp(-4.*pi.*(t-t0).^2/tao^2);
figure(1);
plot(t,Et);
% axis([0 10 -E0 E0]);
grid on;
f=0:2*10^5:2*10^10;
w=2*pi*f;
j=sqrt(-1);
Ef=E0*A*tao^2*j*w./(16.*pi).*exp(-j.*w.*t0).*exp(-(w.*tao./(4.*sqrt(pi))).^2);
figure(2);
semilogx(f,abs(Ef));
axis([-10*10^9 10*10^9 0 0.5*10^-4]);
figure(3);
N=100000;
n1=0:N-1;
fs=1/delt;
f=fs*n1/N;
E0_fft=fft(Et,N);
semilogx(f(1:N/2),abs(E0_fft(1:N/2))./fs);
grid on;
figure(4);
shijian_t=(1:100000)*0.5*10^-10;
E0_ifft=ifft(Ef*fs,100000);
e0=ifftshift(E0_ifft);
plot(shijian_t-(2*10^-5),e0);
grid on;
|
|