找回密码
 注册
Simdroid-非首页
查看: 95|回复: 6

用matlab怎么实现时域曲线转化为频域曲线

[复制链接]
发表于 2014-5-30 20:18:24 | 显示全部楼层 |阅读模式 来自 江苏徐州
我有时域曲线的数据,想通过傅里叶变换转化为频谱图,求高人指点
发表于 2014-5-31 17:33:18 | 显示全部楼层 来自 重庆
Simdroid开发平台
假设你的采样率为fs
那么频域谱:plot((-N/2:N/2-1)*fs/N,fftshift(fft(y,N)));
N为数据长度。此时横轴为实际频率Hz
PS:网上资料
s=importdata('s.txt');%数据以txt格式文件保存
y=fft(s,1024); %引入1024,是因为2的整数次幂点的FFT更好做一点,调用这个函数相当于将长度为1000的s补零至1024个点,做1024点FFT,效果等效于频域增加采样点
pyy=y.*conj(y);  %不相当于ppy=abs(y),相当于ppy=abs(y).^2
f=10000*(0:512)/1024; %设定横坐标尺度,提醒一下楼主,10E-7对应的1E-6,你的意思应该是1E-7吧.因为横坐标以1kHz为单位,采用频率应该是10000kHz,所以10000代表的是这个意思,FFT最中间的点(以0开头的512点或者以1开头的513点)代表了一半采样频率的频率分量.
plot(f,pyy(1:513),'.-'); %绘制命令,如果要达到左图的频率范围,建议采用plot(f(1:25),pyy(1:25),'.-'),但是可以看到绘制的点数太少.
希望对你有用~

评分

2

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2014-6-3 15:38:26 | 显示全部楼层 来自 江苏徐州
Nicky_小牛 发表于 2014-5-31 17:33
假设你的采样率为fs
那么频域谱:plot((-N/2:N/2-1)*fs/N,fftshift(fft(y,N)));
N为数据长度。此时横轴为实 ...

多谢,哥们帮助
回复 不支持

使用道具 举报

 楼主| 发表于 2014-6-3 16:19:01 | 显示全部楼层 来自 江苏徐州

想问下这个是从哪里弄到的,我想看一下原帖、、
回复 不支持

使用道具 举报

 楼主| 发表于 2014-6-4 20:51:29 | 显示全部楼层 来自 江苏徐州

想问下这个是从哪里弄到的,我想看一下原帖
回复 不支持

使用道具 举报

 楼主| 发表于 2014-6-4 20:59:44 | 显示全部楼层 来自 江苏徐州
Nicky_小牛 发表于 2014-5-31 17:33
假设你的采样率为fs
那么频域谱:plot((-N/2:N/2-1)*fs/N,fftshift(fft(y,N)));
N为数据长度。此时横轴为实 ...

想问下这个是从哪里弄到的,我想看一下原帖
回复 不支持

使用道具 举报

发表于 2014-6-4 21:01:49 | 显示全部楼层 来自 重庆沙坪坝区
shuiruohan9 发表于 2014-6-4 20:59
想问下这个是从哪里弄到的,我想看一下原帖

百度搜的~你可以直接复制一下我的帖子内容,在百度里一搜就可以了。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-25 05:35 , Processed in 0.039374 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表