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处的幅值,然后求他们的比值,我该如何编写程序呢?望大神指教。 展开
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处的幅值,然后求他们的比值,我该如何编写程序呢?望大神指教。 展开
1个回答
展开全部
你的mag中保存的就是幅值信息,你可以算一下频率对应的点,然后取该带点的值
比如 mag(20)应该就是,如果不是,看看是不是20-1 或20+1的点
比如 mag(20)应该就是,如果不是,看看是不是20-1 或20+1的点
追问
我试过了,结果
mag(20)
ans =
0.0720
>> mag(19)
ans =
0.0317
>> mag(21)
ans =
0.0262
似乎幅值和图像中是不是对应的...........这该怎么解释呢?急求........
追答
直接查看一下mag中的数据,看看最大值对应的坐标分别是多少
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询