⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uxiangguanyanchi0704.m

📁 利用相关性通过波峰来检测多路径的延迟时间
💻 M
字号:
SN1=30; %信噪比(scot方法,用多个正弦产生仿真信号,两个阵元接受到信号后,估计两信号的延迟
nn=5000; %信号长度
tt=1:nn;
fs=1000; 
S=3*sin(2*pi*18*tt/fs)+2.5*sin(2*pi*36*tt/fs)+1.5*sin(2*pi*54*tt/fs)+sin(2*pi*108*tt/fs); %采样频率为1000
Ps=S*S'/nn;%Ps是时域相关阵
ps=diag(Ps);%信号能量向量(对角矩阵,对角线上为任意数,其他元素为零)
refp=2*10.^(SN1/10);%(2倍线性信噪比,这是为求噪声功率)
tmp=sqrt(refp./ps);%相位?
SS=diag(tmp)*S;
SS=SS+randn(size(SS)); %。。。。。。。。。1(randn(size(ss))产生跟ss相同状态的任意排列,由随机数组成的矩阵)
S2=SS+randn(size(SS)); %。。。。。。。。。。2(加入噪声 )
S3=SS+randn(size(SS)); %。。。。。。。。。。。。3

n=200; %取信号的长度不超过200ms
m=600-550;%传送到阵2时延迟了600个点,传送到阵3时延迟了550个点
tao(2)=0; tao(3)=0;
SS2=[S2(tao(2)+1:tao(2)+1+n),zeros(1,m)];%(表示矩阵)
SS3=[zeros(1,m),S3(tao(3)+1:tao(3)+1+n)]; %做相关的信号(zeros()生成零矩阵)
SS2=[SS2,zeros(1,length(SS2)-1)];
SS3=[zeros(1,length(SS3)-1),SS3];%(通过矩阵形式作变化,使ss2和ss3信号可以做相关运算)
fx2=fft(SS2);fx3=fft(SS3);
Pxy=fx2.*conj(fx3)./(abs(fx2).*abs(fx3)+eps); %。。。。。。4(conj()表示取复共厄)若单独求互谱,应为Pxy=fx2.*conj(fx3)这里是用SCOT方法求广义相关,SCOT方法为Rxy=Pxy./sqrt(Pxx.*Pyy)这里的关系4实际上是把上两式合并在一起。所以分母不能去掉,去掉了就不是求广义相关函数了。


R=ifft(Pxy);
R=real(R);
c=max(abs(R));%abs(r),幅值谱
a=find(abs(R)==c) %找出最大点
Rl2=fix(length(R)/2);
m=(a-(Rl2+2))/fs %换算出信号的延迟时间
figure(3);
time=(-Rl2:Rl2)/fs;
plot(time,R); grid;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -