matlab 已知一系列离散的频域解,如何求时域解 跪谢!!!
已知一串数据,这些数据是通过公式求得的频域的解(A+Bi的形式),请问怎么在matlab里面通过逆傅里叶变换得到时域里面的解呢?
我是直接把这些数据ifft的(ifft(u,1024)),但是求得结果跟别人论文里面的不一样啊!幅值相差了很多!
请问是不是我算错了呢?ps:已知频域数据只有正值
求大神给一个类似程序 跪谢!!! 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
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°,为例子,得到的图如下。