jiaodajinhao 发表于 2012-12-3 19:48

知道频域下一串复数列,如何得到时域结果

各位大侠:小弟在频域下计算得到一串复数列A,实部随频率变化如下图所示;

我想问的是,如果通过ifft变化,得到时域下的结果。直接用ifft肯定不对,因此如何用呢?
我知道需要转成时域结果,频域下的数据必须共轭。那我通过变化得到一组复数列B,是A的共轭列,然后将A和B合成一个复数列,再进行ifft,正确吗?
根据网上说的,好像需要一个初始值?为什么?

还有,从频域到时域,时间横坐标如何取值?和频率的对应关系?

不是数字处理方面出生,但是用到这方面的东西,所以请各位大侠多多赐教!

glise 发表于 2012-12-4 16:23

你的频域信号是怎么的到的?

jiaodajinhao 发表于 2012-12-4 17:36

glise 发表于 2012-12-4 16:23 static/image/common/back.gif
你的频域信号是怎么的到的?

频域信号是公式计算得到的
在时域下建立了高阶偏微分方程,然后用Fourier Transform到了频域,得到了频域下的结果。现在就想用matlab把这串频域复数列,逆回到时域状况,所以问了上面的问题。

咯咯 发表于 2012-12-7 21:59

楼主 解决了没? 我也在找这个问题

vibvib 发表于 2012-12-8 00:46

咯咯 发表于 2012-12-7 21:59 static/image/common/back.gif
楼主 解决了没? 我也在找这个问题

Inverse FFT 本身就可以做从复数列到实数列的转化,参见Numerical recipes in Fortran.

咯咯 发表于 2012-12-9 10:26

vibvib 发表于 2012-12-8 00:46 static/image/common/back.gif
Inverse FFT 本身就可以做从复数列到实数列的转化,参见Numerical recipes in Fortran.

你好!针对楼主的问题 你能不能稍微详细说下如何变换到时域的步骤吗?谢谢!

vibvib 发表于 2012-12-10 14:07

咯咯 发表于 2012-12-9 10:26 static/image/common/back.gif
你好!针对楼主的问题 你能不能稍微详细说下如何变换到时域的步骤吗?谢谢!

具体步骤和算法请见附件。
最原始的FFT和IFFT都是复数列对复数列的。但如果能将频域内的复数信号对称延长,则其IFFT提供的时域信号将为实数。

咯咯 发表于 2012-12-10 19:13

vibvib 发表于 2012-12-10 14:07 static/image/common/back.gif
具体步骤和算法请见附件。
最原始的FFT和IFFT都是复数列对复数列的。但如果能将频域内的复数信号对称延长 ...

非常感谢你的回复!但是这个PDF是讲FFT的原理的,我想知道的是关于MATLAB对得到的频域信号如何转换为时域信号?比如我得到了1MHz:1MHz:1024MHz的频域数据(复数),不可能是在MATLAB里直接用IFFT对这1024个数直接变换吧?这个用matlab转换为时域是怎么操作的具体?谢谢!

vibvib 发表于 2012-12-11 14:30

咯咯 发表于 2012-12-10 19:13 static/image/common/back.gif
非常感谢你的回复!但是这个PDF是讲FFT的原理的,我想知道的是关于MATLAB对得到的频域信号如何转换为时域 ...

呵呵,我手里没有MATLAB。不过你可以试一下,将原复数列对称延长(可能是原复数的conjugate,需要再核对一下),再使用MATLAB做IFFT,看看得到的复数数列虚部是否为0。

咯咯 发表于 2012-12-11 18:57

vibvib 发表于 2012-12-11 14:30 static/image/common/back.gif
呵呵,我手里没有MATLAB。不过你可以试一下,将原复数列对称延长(可能是原复数的conjugate,需要再核对一 ...

谢谢你的回复!我用对称性质得到了负频域下的复数列,但是0Hz下的频域值没有,这个0HZ下的频域值在对频域信号的IFFT变换时是不是必须的,如果是必须的话,要怎么填充的?谢谢!请问你有关于将有限的频域值转换为时域结果的资料没?谢谢!
页: [1]
查看完整版本: 知道频域下一串复数列,如何得到时域结果