1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 广义互相关 matlab 关于小波分析和广义互相关

广义互相关 matlab 关于小波分析和广义互相关

时间:2022-07-09 19:44:58

相关推荐

广义互相关 matlab 关于小波分析和广义互相关

宋老师,我把一个声音信号作了延迟之后加上噪声,用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加权');

idx=find(R21==max(R21));%峰值检测

t1=tt(idx) %时延

%对x1,x2进行小波分解和重构

[c,l]=wavedec(x1,6,'db6');

[c2,l2]=wavedec(x2,6,'db6');

a16=wrcoef('a',c,l,'db6',6); %wrcoef重构x1的逼近信号

a26=wrcoef('a',c2,l2,'db6',6);%wrcoef重构x2的逼近信号

%对重构后的两个信号进行相关计算

A1=fft(a16,2*N-1);

A2=fft(a26,2*N-1);

A21=A2.*conj(A1);

% RA21=fftshift(real(ifft(A21)));%基本互相关

RA21=fftshift(real(ifft(A21./abs(A21))));%PHAT加权

figure(2)

plot(tt,RA21);

idx=find(RA21==max(RA21));%峰值检测

t2=tt(idx)

figure(3)

subplot(2,2,1),plot(t,x1);title('原始信号x1');

subplot(2,2,2),plot(t,x2);title('延迟0.01s后的x2');

subplot(2,2,3),plot(t,a16);title('x1的近似重构信号');

subplot(2,2,4),plot(t,a26);title('x2的近似重构信号');

-8-13 23:03 上传

-8-13 23:12 上传

-8-13 23:12 上传

-8-13 23:12 上传

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。