声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2070|回复: 0

[综合] 广义互相关求时延不同加权结果不同的问题

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

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

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

x
目前在做一个互相关求声音时延的问题,下面是matlab实现的代码。
结果的话原始互相关和ROTH加权求得的时延一样,PATH和SCOT加权求得的时延一样,但前两个和后两个的结果差距很大,还请论坛中的大牛帮我找找问题。
%% 互相关函数定时延
X1=fft(x1,2*N1-1);                 
X2=fft(x2,2*N2-1);

Pxx=abs(X1);                     
Pyy=abs(X2);
Pxy=X1.*conj(X2);                  

%方法a.原始互相关函数定时延
R=ifft(Pxy);                       
R=real(R);                                       

R=fftshift(R);
c=max(abs(R));
a=find(abs(R)==c) ;%找出最大点
Rl2=fix(length(R)/2);
delay=(a-(Rl2)-1)/fs ;    %换算出信号的延迟时间?(因为fftshift将频谱移动到中间,即R/2的距离)


%方法b.加权互相关定时延                  %原始互相关,易受噪声混响等的干扰
Rxy=Pxy./(Pxx+eps);                           %ROTH加权

%Rxy=Pxy./((Pxx.*Pyy)+eps);            %SCOT加权
%Rxy=Pxy./(abs(Pxy)+eps);               %PATH加权
                                       
R2=ifft(Rxy);
R2=real(R2);
R2=fftshift(R2);                  %频谱中心对称,移到中间
c2=max(abs(R2));
a2=find(abs(R2)==c2) ;      %找出最大点

Rl2=fix(length(R2)/2);
delay2=(a2-(Rl2)-1)/fs  ;    %换算出信号的延迟时间

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-15 14:05 , Processed in 0.062814 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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