原创 频谱图显示问题

2011-6-14 15:31 2635 8 8 分类: 测试测量

http://www.chinavib.com/forum/thread-56328-1-62.html

 

这个FFT应该怎么看?
求 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;
 
59843_124731463135YC.jpg
 
---------------------
df=fs/(N-1); 改为 df=fs/N;

实信号的频谱本来就是两边对称的,所以只要取一半的频谱就可以了!
-------------------
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;
--------------------------
这位兄弟问题里面好像包括两部分吧。
其一是怎么会在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;
再给你附个图。
注意我的幅值归一化过。
 
59843_1247314638dpea.jpg
-------------------------
请问
在你的code里,
为何做FFT前,要去均值呢?
fft(x-mean(x))
这点,我不是太清楚。
-----------------
消除直流分量.
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条