原创 广义互相关时延估计程序

2011-6-14 15:32 2704 8 8 分类: 测试测量
 
请帮我看看广义互相关时延估计程序
用多个正弦产生仿真信号,两个阵元接受到信号后,估计两信号的延迟

SN1=20; %信噪比
nn=4096; %信号长度
tt=1:nn;
fs=1000;
S=3*sin(2*pi*17*tt/fs)+2.5*sin(2*pi*35*tt/fs)+1.5*sin(2*pi*51*tt/fs)+sin(2*pi*102*tt/fs); %采样频率为1000

Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(SN1/10);
tmp=sqrt(refp./ps);
SS=diag(tmp)*S;
%SS=SS+randn(size(SS)); 。。。。。。。。。1

for j=1:nn
S2(j+549)=1/dist(2)*SS(j); %传送到阵2的时候延迟了549个点
end
%S2=S2+randn(size(S2));。。。。。。。。。。2

for j=1:nn
S3(j+580)=1/dist(3)*SS(j); %信号传送到阵3为延迟了580个点
end%
%S3=S3+randn(size(S3));。。。。。。。。。。。。3

n=200; %取信号的长度不超过200ms
m=580-549;
SS2=[S2(tao(2)+1:tao(2)+1+n),zeros(1,m)];
SS3=[zeros(1,m),S3(tao(3)+1:tao(3)+1+n)]; %做相关的信号

SS2=[SS2,zeros(1,length(SS2))];
SS3=[zeros(1,length(SS3)),SS3];

fx2=fft(SS2);fx3=fft(SS3);
Pxy=fx2.*conj(fx3)./(abs(fx2).*abs(fx3)+eps); 。。。。。。4

R=ifft(Pxy);

R=real(R);
c=max(abs(R));
a=find(abs(R)==c) %找出最大点
m=(a-length(R)/2)*1/fs %换算出信号的延迟时间
figure(3)
plot(R)

信号2与3的时延为0。0306秒,我现在如果把噪声加在 1 处的时候m可以得比较接近的值,但是如果把噪声加在2 和 3 处就不行,而且每次估计的 m值差别变化很大,但我认为在 2 3 处加噪声比较符合逻辑,因为每个阵的噪声应该是不相关的 ,请问是什么原因? 噪声的影响能有这样大吗? 另外我的采样频率是否有问题?

另外 4 处求的是两信号的互功率谱,请问互功率谱和功率谱密度的区别,如果去掉 4 处的分母,可以吗?
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条