声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2075|回复: 5

[HHT] 瞬时频率正确性的问题

[复制链接]
发表于 2012-10-25 19:52 | 显示全部楼层 |阅读模式

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

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

x
利用matlab时频工具箱自带函数instfreq(x1')*fs得到的瞬时频率  
和按照瞬时频率的定义设计的程序
   :x1=hilbert(imf(2,:));
       xr1=real(x1);
       xi1=imag(x1);P1=atan2(xi1,xr1);%imf1的瞬时相位
       xh1=unwrap(P1);%unwrap(w)就是解卷绕,使相位在pi处不发生跳变,从而反应出真实的相位变化
       fs=20000;
      xhd1=fs*diff(xh1)/(2*pi);%归一化后的瞬时频率
     xsp=abs(xhd1);XSP为瞬时频率
两种方法得到的瞬时频率的值不一样,请问各位大侠,哪种求解瞬时频率的方法是对的,小弟不胜感激!!!
回复
分享到:

使用道具 举报

发表于 2012-10-25 22:14 | 显示全部楼层
没有看到你的图,从我现在做过的经验来看instfreq这个做的是正确的。至于为什么你另一种方法做的是否正确,我想一方面有可能你编程有问题(atan的定义范围你自习考量考量)。另外,评价对与错,针对你的仿真信号,真实的结果是显然的,为什么不做出来呢或者说为什么不选一个很确定的信号做比较呢????
 楼主| 发表于 2012-10-25 22:48 | 显示全部楼层

好的 ,我先通过仿真验证一下吧。先谢了!!
发表于 2013-6-16 10:37 | 显示全部楼层
yghit08 发表于 2012-10-25 22:14
没有看到你的图,从我现在做过的经验来看instfreq这个做的是正确的。至于为什么你另一种方法做的是否正确, ...

我用instfreq求瞬时频率如图黑色曲线,
用dp/dt求瞬时频率如图蓝色曲线
为什么差这么多呢?

瞬时频率

瞬时频率

s=hilbert(singal);
[freq0,t0]=instfreq(s');
ph1=unwrap(ph);
dp=diff(ph);
dt=diff(t);
for j=1:99
     if dp(j)<0
         dp(j)=dp(j)+2*pi;
     end
end
freq=dp./dt/fs;
发表于 2013-6-16 10:46 | 显示全部楼层
本帖最后由 yghit08 于 2013-6-16 10:49 编辑
zhyjig 发表于 2013-6-16 10:37
我用instfreq求瞬时频率如图黑色曲线,
用dp/dt求瞬时频率如图蓝色曲线
为什么差这么多呢?

先不管差异,先确定哪个求得对!
想让我说谁对谁错吗?为什么不从方法自身说这事,非得自己拿个不知对错的自编程序来说事。你能肯定你编的算瞬时频率的程序段没问题?确定这个再说。为什么不用确定结果的仿真数据测自己的程序段???
你用的方法和instfreq用的方法是一样的。

发表于 2013-7-3 11:39 | 显示全部楼层
yghit08 发表于 2013-6-16 10:46
先不管差异,先确定哪个求得对!
想让我说谁对谁错吗?为什么不从方法自身说这事,非得自己拿个不知对错 ...

有负的哦
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-24 11:28 , Processed in 0.098423 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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