查看: 648|回复: 4|关注: 0

[已解决] 广义互相关 加权函数SCOT PHAT

[复制链接]

新手

9 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
1: 老师好,
我最近在研究广义互相关(GCC)的加权函数问题,发现SCOT与PHAT加权函数的结果完全一致,发现某些论文中也是这样的错误结果。希望老师帮我解决一下这个问题,我应该怎么改动才能正确的实现两种加权函数?(x1 与 x2是没有分帧的一段语音信号)

X1=fft(x1);
X2=fft(x2);
a =(X1).*conj(X1);
b = (X2).*conj(X2);
c = (X1).*conj(X2);
if strcmpi(fun,'PHAT')
X12=(c)./(abs(c));

elseif strcmpi(fun,'SCOT')
X12=(c)./sqrt(a.*b);
end
x12=ifft(X12);

[maxx,a1]=max(x12);

2: 老师,我在The Generalized Correlation Method for Estimation of Time Delay这篇论文中发现,加权函数是对x1 x2进行运算得到,而Gx1x2使用的是有限观测中Gx1x2的估计。我想请教下
Gx1x2的估计是什么意思?指的是分帧后的每帧信号吗?如果需要分帧的话,加权函数与Gx1x2的估计分别对应每帧信号还是总的信号。





论坛优秀回答者

17

主题

5234

帖子

1132

最佳答案
  • 关注者: 646
发表于 2019-8-19 10:18:46 | 显示全部楼层
1,LZ的程序并没有什么大错,这和数据有关,大部分情况下这两种方法差别不大。
2,Gx1x2就是广义相关函数,再进一步计算时间延迟量。在计算时有这样3种情形:
A,把整个数据x1和x2来作广义相关函数计算,进一步求出时间延迟。
B,把整个数据分帧后计算相对帧之间的广义相关函数,对每对数据求出时间延迟,最后计算平均值。
C,但当时间延迟量是时变的,则只有分帧以后计算相对帧之间的广义相关函数,对每对数据求出时间延迟,每个时间延迟量对应于某一个时刻。

新手

9 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
 楼主| 发表于 2019-8-19 13:40:28 | 显示全部楼层
songzy41 发表于 2019-8-19 10:18
1,LZ的程序并没有什么大错,这和数据有关,大部分情况下这两种方法差别不大。
2,Gx1x2就是广义相关函数, ...

老师好,关于我提的第二个问题您已经解释的很清楚了,但是第一个问题我还有些疑问:
哪些情况下SCOT与PHAT加权函数有所不同呢?两种函数的不同结果,与语音信号的什么特点有关呢?

论坛优秀回答者

17

主题

5234

帖子

1132

最佳答案
  • 关注者: 646
发表于 2019-8-20 09:45:54 | 显示全部楼层 |此回复为最佳答案
LZ可以看一下这两个计算关系式:
PHAT:X12=(c)./(abs(c))=(c)./(abs( (X1).*conj(X2)));  
SCOT:  X12=(c)./(abs(c))=(c)./(abs(X1).*abs(X2))
这两种方法中可以看出,他们的分子都是相同的,而分母也相似,所以两种方法计算的结果相差不大,只有当某些信号在abs( (X1).*conj(X2))和abs(X1).*abs(X2)之间有较大差别时,这两种方法才会有显著的差别。

新手

9 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
 楼主| 发表于 2019-8-20 16:13:06 | 显示全部楼层
songzy41 发表于 2019-8-20 09:45
LZ可以看一下这两个计算关系式:
PHAT:X12=(c)./(abs(c))=(c)./(abs( (X1).*conj(X2)));  
SCOT:  X12=(c ...

了解啦,谢谢宋老师的解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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