dongfangren 发表于 2016-4-25 22:47

关于傅里叶反变换的的问题

在这还望各位大师赐教,谢谢各位了!

目前对已知函数进行傅里变换,可以得到其在频域的解析表达式。
现对频域的解析表达式进行采样,可以得到离散的频域序列(复数形式),分为正频率和负频率部分,
然后对其进行傅里叶反变换,得到时域的值,进行绘制,结果得到的时域值和源函数绘制的幅值相差很大,且差一个负号;

      按照严普强老师的《动态测试信号处理中时频域变换算法的讨论》中,傅里叶正变换中fft的离散结果和频域连续谱相差一个delt的系数,
对其频域离散值进行除以delt后,进行ifft处理,结果得到的时域图和函数表达式绘制的时域图幅值相差一个负系数????
小弟百思不得解,望各位告知原因!

图形如下:





代码如下:
clear;
clc;
n=40000;
t=linspace(0,4000*10^-9,n);
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*10^9,Et);
axis();
grid on;


f=-1e10:1e6:1e10;
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/(10^-9);
f=fs*n1/N;
E0_fft=fft(Et,N);
semilogx(f(1:N/2),abs(E0_fft(1:N/2))./fs/10);
grid on;


figure(4);
shijian_t=(1:100000)*4*10^-10;
E0_ifft=ifft(Ef*10^10,100000);
e0=ifftshift(E0_ifft);
plot(shijian_t-(2*10^-5),e0);
grid on;



dufeng_dufeng 发表于 2016-4-25 23:30

你是怎么对信号的傅氏解析表达式采样的,采样后能否满足得到实序列条件,为何不直接用DFT,你的变换系数delt是多少,解析式是连续时间信号,但一到计算机一编程上就是离散的,要考虑差别,不知道说的对不对,希望大家指正

dongfangren 发表于 2016-4-26 10:30

dufeng_dufeng 发表于 2016-4-25 23:30
你是怎么对信号的傅氏解析表达式采样的,采样后能否满足得到实序列条件,为何不直接用DFT,你的变换系数del ...

对傅氏解析表达式采样,是依照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();
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;


sovereign 发表于 2016-4-26 14:19

谁来解释一下,我也没看明白

dongfangren 发表于 2016-4-26 15:33

sovereign 发表于 2016-4-26 14:19
谁来解释一下,我也没看明白

我的问题叙述的不够清楚??

sovereign 发表于 2016-4-26 15:43

dongfangren 发表于 2016-4-26 15:33
我的问题叙述的不够清楚??

不是
页: [1]
查看完整版本: 关于傅里叶反变换的的问题