matlab怎么让fft变换结果不是复数?

rt,本人菜鸟一只,因为处理数据需要用到fft变换。对需要处理的数据直接用fft(x);结果全部是复数。。。怎么让它正常一点..... rt,本人菜鸟一只,因为处理数据需要用到fft变换。
对需要处理的数据直接用fft(x);结果全部是复数。。。怎么让它正常一点..
展开
 我来答
我行我素850915
推荐于2016-06-04 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1665万
展开全部
把fft的结果real一下就行了,如:
y=[1 zeros(1,500)];
yf=fft(y);
yreal=real(yf);
追问

按照我的数据,,real前是

real以后是

我其实是想把时域转成频域......

追答
从图上看,已经转成频域 图了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_爱成绕指柔_
2019-04-28 · TA获得超过140个赞
知道答主
回答量:47
采纳率:57%
帮助的人:7万
展开全部
楼上的回答用real是可以得到实数,但是也失去了变换后的虚数部分,这样变化后包含的信息在real后也就丢失了。傅里叶变换的本质是从时域到频域的一个变换,而频域的信息是在实部与虚部两者之间的,丢掉了一部分不如不变换,无法达到最终变换的目的。。
正确的处理方法是弄懂实部与虚部所代表的含义,可以看看欧拉公式,如果看实用的话,这个复指数的[(实部)^2+(虚部)^2]^(1/2)位该频率点对应的频谱幅值,该点所对应的频率为f=(K-1)Fs/N,其中N为采样点数,Fs为采样频率,这在你的程序中应该是有的,否则你怎么变换呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式