马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 wdhd 于 2016-9-18 13:56 编辑
上图是别人做的瞬时相位的结果
但是没有算法,在网上到找搜索,好像是和hilbert有关,又找了一个hilbert的算法,但是结果和上图不一致
上图是在网上找的算法,差异非常大。
网上hilbert算法的C代码
//n和N我都是带入数组的长度
void hilbert(long n, float delta[], float kappa[],long N)
{
float d1, d2, d3, d4;
int i1, i2;
for (i1 = 0; i1 < n; i1++)
{
kappa[i1] = 0.;
for (i2 = 1; i2 < n; i2++)
{
d1 = (i1+i2<N)? delta[i1+i2]:0.;
d2 = (i1-i2>=0)? delta[i1-i2]: 0.;
d3 = (i1+i2+1<N)? delta[i1+i2+1]: 0.;
d4 = (i1-i2-1>=0)? delta[i1-i2-1]: 0.;
kappa[i1] -= 0.5 * (d1-d2) / i2 + 0.5 * (d3 - d4) / (i2+1);
}
kappa[i1] /= PI;
}
}
希望有高手能告诉怎么得到第一张图底部图的波形??不甚感激~!
qq 1960064
[ 本帖最后由 lyvv 于 2009-5-21 16:02 编辑 ] |