江河之北 发表于 2008-6-25 17:06

我想知道我的程序为什么出现四个峰,不是只有60和90的频率么?

我想知道我的程序为什么出现四个峰,不是只有60和90的频率么?
clear
fs=200 ;
t=0:1/fs:0.6;
x=1.23*sin(2*pi*90*t+5)+1.46*sin(2*pi*60*t);
n=1024;
      y=fft(x,n);

n=0:length(y)-1;
f=fs*n/length(y);
plot(f,abs(y))

麻烦高手运行一下

[ 本帖最后由 江河之北 于 2008-6-25 17:14 编辑 ]

songzy41 发表于 2008-6-25 18:02

只需取频率0-100之间,而100-200之间对应的是负频率。

江河之北 发表于 2008-6-25 18:09

回复 2楼 的帖子

谢谢您老师 :handshake :handshake

江河之北 发表于 2008-6-25 18:23

回复 2楼 的帖子

宋老师,如果我再计算这个频谱图的功率谱该如何计算呢,需要调用psd这个命令么?或者就是幅值的平方呢?

chiqinglei 发表于 2008-6-25 19:55

回复 楼主 的帖子

对普通信号做傅里叶变换得到的谱图是对称的,要得到单边谱的话可以先对信号做希尔伯特变换使信号成为解析信号,这时再做傅里叶变换就是单边谱了。功率谱估计有多种方法,对应的matlab命令也有多个,你可以用psd,pwelch,periodogram等,具体格式用help看一下就行了

江河之北 发表于 2008-6-26 09:31

回复 5楼 的帖子

我是想知道在频谱的基础上怎么求功率谱,psd好像是对顶楼的x来求功率谱的吧

江河之北 发表于 2008-6-26 10:39

回复 5楼 的帖子

对信号做希尔伯特变换使信号成为解析信号,能否给出具体的程序,小弟不是学信号处理的呀

chiqinglei 发表于 2008-6-26 12:49

用hilbert(x)对x做希尔伯特变换,并作为解析信号的虚部,x作为解析信号的实部,然后再做傅里叶变换就行了。呵呵,有些事情还是得自己动手啊。
页: [1]
查看完整版本: 我想知道我的程序为什么出现四个峰,不是只有60和90的频率么?