matlab 已知一系列离散的频域解,如何求时域解 跪谢!

问题描述:

matlab 已知一系列离散的频域解,如何求时域解 跪谢!
已知一串数据,这些数据是通过公式求得的频域的解(A+Bi的形式),请问怎么在matlab里面通过逆傅里叶变换得到时域里面的解呢?
我是直接把这些数据ifft的(ifft(u,1024)),但是求得结果跟别人论文里面的不一样啊!幅值相差了很多!
请问是不是我算错了呢?ps:已知频域数据只有正值
求大神给一个类似程序 跪谢!
1个回答 分类:综合 2014-10-31

问题解答:

我来补答
我的看法是:
1.程序不一定能帮你.
程序只管运行,但是你还是不知道其原理,所以无法判断是否正确.对于FFT的理解,需要深入的分析公式.
2.如何得到幅度为1的复正弦波?
用ifft(u,1024)是正确的,这个时候得到的时域波形为1024个点.关键是u是多少
2.1 如果u是[1024,0,0,…,0],1023个0,那么得到的是一条直线,频率为0的复正弦.
2.2 如果u是[0,1024,0,…,0],1023个0,那么得到的是一条直线,频率为1的复正弦.
2.3 如果u是[0,0,1024,0,…,0],1023个0,那么得到的是一条直线,频率为2的复正弦.
依次类推.
3.如何得到指定幅度1.5,指定相位45°,指定频率为8的复正弦波?
u=[0,…,0,1024*1.5*exp(1j*pi/4),0,…,0],前面8个0,后面1015个0.即可.
【未完待续,先等分】
再问: 你好!非常感谢! 我是已知频域的表达式,然后对w取样,所以得到了1024个频域的解(每一个解都是A+Bi的形式)
再答: 4. 假定你得到的结果是320.87赫兹,幅度是1.5+1.2i,如何这样的图?    首先可以肯定是你需要一个单频信号,即复正弦,幅度和初始相位吻合,至于画几个周期,就看你自己选择了。    4.1 画一个周期,首先,画一个u=[0,1024*(1.5+1.2i),0,…,0],这样得到的图就是一个周期的了,接下来的工作就是确定一个周期T是多少,T=1/320.87=0.0031秒,那么也就是说你所采样的1024个点的总的时间长度是0.0031秒,那时间轴就是t=(0:1023)/1024*T。剩下的就是绘图了,plot(t,x),x就是IFFT之后的结果。    4.2 画二个周期,首先,画一个u=[0,0,1024*(1.5+1.2i),0,…,0],这样得到的图就是儿个周期的了,接下来的工作就是确定二个周期T是多少,2T=2×1/320.87=0.0062秒,那么也就是说你所采样的1024个点的总的时间长度是0.0062秒,那时间轴就是t=(0:1023)/1024*2T。剩下的就是绘图了,plot(t,x),x就是IFFT之后的结果。     4.3 依次类推。5. 那画出的图究竟是什么样子呢?    以320.87赫兹,幅度是1.5,初始相位30°,为例子,得到的图如下。  
 
 
展开全文阅读
剩余:2000