声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2804|回复: 11

[FFT] 这个FFT应该怎么看?

[复制链接]
发表于 2007-12-13 21:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
求 x=5*sin(2*pi*5*t)的频谱图

这个正弦波形的频率是5,但是得到的FFT图像在46,7的位置也有频率分布?

function aaa()
Ts=0.02;
t=-1:Ts:1;
%采样信号频率是fs=50;
fs=1/Ts;
%原信号频率是5;
x=5*sin(2*pi*5*t);
%N是总共的采样点数,N=101;
N=length(x);
fx=fft(x);
%N个点有N-1个间隔;
df=fs/(N-1);
n=0:N-1;
f=n*df;
subplot(211);
plot(t,x);grid;
subplot(212);
plot(f,abs(fx)); grid;
untitled.jpg
回复
分享到:

使用道具 举报

发表于 2007-12-14 08:40 | 显示全部楼层
df=fs/(N-1); 改为 df=fs/N;

实信号的频谱本来就是两边对称的,所以只要取一半的频谱就可以了!
 楼主| 发表于 2007-12-14 16:27 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-10 14:15 编辑
原帖由 zhlong 于 2007-12-14 08:40 发表
df=fs/(N-1); 改为 df=fs/N;

实信号的频谱本来就是两边对称的,所以只要取一半的频谱就可以了!

我改过了,结果一样呀..

大大能否从我的代码中改下?
发表于 2007-12-15 15:22 | 显示全部楼层
Ts=0.02;
t=-1:Ts:1-Ts;
%采样信号频率是fs=50;
fs=1/Ts;
%原信号频率是5;
x=5*sin(2*pi*5*t);
%N是总共的采样点数,N=101;
N=length(x);
fx=fft(x);
%N个点有N-1个间隔;
df=fs/(N);
n=0:N-1;
f=n*df;
subplot(211);
plot(t,x);grid;
subplot(212);
plot(f,abs(fx)); grid;

评分

1

查看全部评分

发表于 2007-12-15 16:13 | 显示全部楼层
单边谱绘制,记得eight写过一个帖子。

楼主可以找找看
发表于 2007-12-16 14:00 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-10 14:15 编辑
原帖由 asdfasdftopaz 于 2007-12-13 21:53 发表
求 x=5*sin(2*pi*5*t)的频谱图

这个正弦波形的频率是5,但是得到的FFT图像在46,7的位置也有频率分布?

function aaa()
Ts=0.02;
t=-1:Ts:1;
%采样信号频率是fs=50;
fs=1/Ts;
%原信号频率是5;
x=5*s ...

这位兄弟问题里面好像包括两部分吧。
其一是怎么会在5的周围出现频率成分,
是不是应该为0,对不?

这个理由很简单,是频率分辨率的问题,
matlab里面都是连点成线,相当于线性插值,
所以会有过渡的情况出现。
如果你把采样点数变多,如t=-10:Ts:10,你会发现,
谱峰会尖锐一些。也就是5周围的频率成分变小了。

第二个问题是怎么会有两个谱峰?
这个前面几位大侠回答过来,
你画出单边谱就行了。
现在奉上作频率分析的子程序,
仅供参考。
其中x为信号,fs不用解释了,呵呵采频。
function f=frequency(x,fs)
dtlen=length(x);
t=(0:dtlen-1)/fs;
subplot(211);
plot(t,x);
axis tight;
y=abs(fft(x-mean(x)))*2/dtlen;
ff=(0:dtlen/2-1)*fs/dtlen;
subplot(212);
f=y(1:floor(dtlen/2));
plot(ff,f);
axis tight;
return;
发表于 2007-12-16 14:04 | 显示全部楼层
再给你附个图。
注意我的幅值归一化过。
1.JPG

评分

1

查看全部评分

 楼主| 发表于 2007-12-17 16:37 | 显示全部楼层
谢谢各位,小弟明白了!
发表于 2008-4-25 23:56 | 显示全部楼层

回复 6楼 的帖子

请问
在你的code里,
为何做FFT前,要去均值呢?
fft(x-mean(x))
这点,我不是太清楚。

thanks
发表于 2008-4-26 14:08 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-10 14:15 编辑
原帖由 easykevin 于 2008-4-25 23:56 发表
请问
在你的code里,
为何做FFT前,要去均值呢?
fft(x-mean(x))
这点,我不是太清楚。

thanks


脉动的fft?并归一化
发表于 2008-4-26 18:04 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-10 14:16 编辑
原帖由 easykevin 于 2008-4-25 23:56 发表
请问
在你的code里,
为何做FFT前,要去均值呢?
fft(x-mean(x))
这点,我不是太清楚。

thanks

消除直流分量.
发表于 2008-5-8 21:16 | 显示全部楼层

回复 11楼 的帖子

为啥要消除直流分量呢?
另外,假如信号不是正弦信号,比如说,我是个高斯脉冲序列,那么直流分量还是用mean来求么???
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-6 03:13 , Processed in 0.401948 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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