|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
clear all;clc;close all;
N=1024;%信号长度
fs=1000;%采样频率
n=0:N-1;
t=n/fs;%时间序列
a1=5;%信号幅度
a2=5;%信号幅度
d=26;%延迟点数
x1=a1*sin(2*pi*10*t)+1.9*sin(2*pi*18*t)+2.8*sin(2*pi*55*t);
x1=x1+randn(size(x1));
x2=a2*sin(2*pi*10*(n+d)/fs)+1.9*sin(2*pi*18*(n+d)/fs)+2.8*sin(2*pi*55*(n+d)/fs);
x2=x2+randn(size(x2));
%x2=x2.*hamming(N);
subplot(311);
plot(t,x1,'r');
axis([-0.1 1.5 -6 6]);
%hold on;
subplot(312);
plot(t,x2,'g');
axis([-0.1 1.5 -6 6]);
%legend('x1信号','x2信号');
%xlabel('时间/s');ylabel('x1(t)x2(t)');
%title('原始信号');grid on;
%hold off;
%SCOT互相关算法
X1=fft(x1,2*N-1);
X2=fft(x2,2*N-1);
Sxy=X1.*conj(X2);
%Cxy=fftshift(ifft(Sxy));
%Sx=abs(X1).^2;
%Sy=abs(X2).^2;
%Pxy=Sxy./((sqrt(Sx.*Sy))+eps);
Pxy=Sxy./(abs(X1).*abs(X2)+eps);
Cxy=fftshift(real(ifft(Pxy));
t1=(0:2*N-2)/fs;
subplot(313);
plot(t1,Cxy,'b');
title('互相关函数');
xlabel('时间/s');ylabel('Cxy(t)');grid on;
[max,location]=max(Cxy)%求出最大值及其所在位置
D=location-N
Delay=D/fs
基于SCOT的互相关时延估计,用这个程序仿真得到的估计值每次都不一样, 请大侠看看是怎么回事。 |
|