hzh 发表于 2007-11-13 14:56

请大家帮帮忙

一个信号X=Am.cos(2.*pi.*ft+c),其中Am=380,f=50HZ.c=pi/18.对这个信号采样,采样频率为2500HZ,然后作1024点的FFT变换。请问如何根据变换之后的1024个复数,求Am,f,c的估计值.

yangzj 发表于 2007-11-13 14:59

前面不是有你一个帖子吗?还没搞定呀

hzh 发表于 2007-11-14 10:21

那个问题搞定了,是他们公式错了,误导我了。麻烦你帮我看看这个问题好吗?

[ 本帖最后由 zhlong 于 2007-11-15 09:55 编辑 ]

yangzj 发表于 2007-11-14 10:26

这是同一个问题呀.

hzh 发表于 2007-11-14 16:37

你再看看我的问题,和我讲讲啊 。我原来做的是DTFT变换。现在是根据1024个复数来求

yangzj 发表于 2007-11-14 19:15

回复 #5 hzh 的帖子

你找找比值校正法(插值法)的原理看看,你看的那篇文章就有.
基本原理就是找到主瓣内的最大值和次大值并求两者比值,再根据校正公式求出频率偏差量,进而得到幅值和相位

hzh 发表于 2007-11-14 19:27

谢谢啊,不过插值原理我已经懂了,但是在文章中是插值算法求出的信号的幅值频率相位和FFT的求出的信号的幅值相位频率作比较。但是FFT如何求信号的幅值频率和相位呢?

yangzj 发表于 2007-11-14 19:57

回复 #7 hzh 的帖子

呵呵,FFT就是直接取幅值最大的谱线对应的频率、幅值和相位做为信号的估计频率、幅值和相位

hzh 发表于 2007-11-15 09:25

再次求证一下

一个信号X(t)=Amcos(2.*pi.*f*t+c),其中Am=380,f=50HZ.c=pi/18.对这个信号采样,采样频率为2500HZ,然后作1024点的FFT变换。matlab程序:t=0:1/2500:1023/2500;X=Am.*cos(2.*pi.*f.*t+c);y=fft(x)    运行之后会得到1024个复数,是不是我找到模最大的复数,它的幅值频率和相位就是x(t)的估计的幅值频率和相位?

zhlong 发表于 2007-11-15 09:31

这个你可以自己在matlab里面试试看

hzh 发表于 2007-11-15 09:33

我找了模最大的复数来求,但是和别人的结果很不一样,我也不清楚到底谁的是对的啊,所以很迷惑

zhlong 发表于 2007-11-15 09:45

把具体内容和你觉得有问题的地方贴出来吧,以便讨论。
顺便看下http://forum.vibunion.com/forum/viewthread.php?tid=53683
9楼内容

[ 本帖最后由 zhlong 于 2007-11-15 15:05 编辑 ]

yangzj 发表于 2007-11-15 09:53

回复 #11 hzh 的帖子

采用的参数是不是一样的,幅值除了点数没有

hzh 发表于 2007-11-15 14:59

谢谢大家哈。我是找到了最大幅值的点,不过有两个复数呢。然后求出幅值再除以点数的一半。相位有两个,互为相反数。我选了那个正的相位。频率也有两个,然后我选了一个比较接近真实值的那一个。感觉还挺接近论文中给出的结果呢。应该是对的了吧?

hzh 发表于 2007-11-15 15:01

那个网址没有东西了,不过还是很谢谢你哈
页: [1] 2
查看完整版本: 请大家帮帮忙