宋老师,我把一个声音信号作了延迟之后加上噪声,用PHAT加权和基本互相关都能得到正确的时延值,但我对这两个信号进行小波分解和重构近似信号之后,用基本互相关可以得到时延,但PHAT加权后就不能得到正确的时延了,这是为什么呢?下面附上代码和图。fs=2500/(t(end)-t(1));%采样频率 ,x是表格导入的数据,信号时间为t,长度是2500,这里上传不了表格
N=length(x);
x1=x-mean(x);%消除直流分量
x1=x1/max(abs(x1));%幅度归一化
%构造延时250个采样点,即延迟0.01S的信号x2
x2=[zeros(250,1);x1];
x2=x2([1:end-250],1);
x2=awgn(x2,15,'measured');
x1=awgn(x1,15,'measured');
%时延估计
X1=fft(x1,2*N-1);
X2=fft(x2,2*N-1);
X21=X2.*conj(X1);
R21=fftshift(real(ifft(X21)));%基本互相关
Ph21=fftshift(real(ifft(X21./abs(X21))));%PHAT加权
tt=(-N+1:N-1)/fs;%时间序列
figure(1)
subplot(2,1,1),plot(tt,R21),title('基本互相关');
subplot(2,1,2),plot(tt,Ph21),title('PHAT