matlab fft变换求出频谱后,求具体点的幅值的问题

程序如下fs=250;N=1024;n=0:N-1;t=n/fs;y=fft(x(:,1),N);mag=abs(y);f=n*fs/N;plot(f,mag);set(... 程序如下
fs=250;
N=1024;
n=0:N-1;
t=n/fs;
y=fft(x(:,1),N);
mag=abs(y);
f=n*fs/N;
plot(f,mag);
set(gca,'xtick',0:10:250)
由原始常微分方程的结果进行fft变换,求得频谱如下图:

我想求得频谱图中20,40,60,80,100,120hz处的幅值,然后求他们的比值,我该如何编写程序呢?望大神指教。
展开
 我来答
百度网友3c63e6c
2014-10-26 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2796万
展开全部
你的mag中保存的就是幅值信息,你可以算一下频率对应的点,然后取该带点的值
比如 mag(20)应该就是,如果不是,看看是不是20-1 或20+1的点
追问
我试过了,结果
mag(20)

ans =

0.0720

>> mag(19)

ans =

0.0317

>> mag(21)

ans =

0.0262
似乎幅值和图像中是不是对应的...........这该怎么解释呢?急求........
追答
直接查看一下mag中的数据,看看最大值对应的坐标分别是多少
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式