ding6860138 发表于 2014-5-4 11:17

关于instfreq.m 的问题

本人是HHT变换的初学者,最近研究各个论坛上的相关MATLAB程序时看到这个求瞬时频率的M文件,里面求瞬时频率的程序是fnormhat=0.5*(angle(-x(t+1).*conj(x(t-1)))+pi)/(2*pi);关于这个语句的意思一直弄不明白,希望各位大神不吝赐教,小弟谢过了。

yghit08 发表于 2014-5-4 17:22

怀疑值得怀疑的地方,细枝末节先忽略了吧。
假设x(t)=e^(a+i*sits),其中i是-1的平方根,那么conj(x(t-1))=e^(b-i*sita2),则有x(t).*conj(x(t-1))=e^(a-b+i*(sits-sita2))。angle()则有sits-sita2,正好是角度差。
目前求取瞬时频率大多用的是差分方法,从这个角度就很好理解你的问题。
勤思考

ding6860138 发表于 2014-5-4 21:04

yghit08 发表于 2014-5-4 17:22
怀疑值得怀疑的地方,细枝末节先忽略了吧。
假设x(t)=e^(a+i*sits),其中i是-1的平方根,那么conj(x(t-1))= ...

看明白了,这里fnormhat是归一化的频率,angle的范围是-pi到pi,所以前面多的负号和后面加pi是为了保证相位差在0到2pi之间。还有一个小问题,这个算出瞬时频率取值是0到0.5之间,也就是说两个点之间的相位差在0到pi之间,为什么相位差肯定会小于pi呢?

ding6860138 发表于 2014-5-5 10:00

ding6860138 发表于 2014-5-4 21:04
看明白了,这里fnormhat是归一化的频率,angle的范围是-pi到pi,所以前面多的负号和后面加pi是为了保证相 ...

额,自问自答吧,以后忘了有个参考,想了一晚上。fnormhat表示两点间的相位差除以2pi,根据采样定律,采一个正弦信号不失真至少要采5个点,也就是说相邻两个点间隔不能大于pi/2,所以fnormat实际都不会大于0.25
页: [1]
查看完整版本: 关于instfreq.m 的问题