|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 牛小贱 于 2014-6-25 11:05 编辑
我做广义互相关求出的时延是正确的,但我在原广义互相关上加权后,时延估计在0点处,找不到原因,请各位指教,谢谢。
- clear all;
- close all;
- clc;
- N=1024; %长度
- Fs=500; %采样频率
- n=0:N-1;
- t=n/Fs; %时间序列
- a1=5; %信号幅度
- a2=5;
- d=8; %延迟点数
- x1=a1*cos(2*pi*10*n/Fs); %信号1
- x1=x1+randn(size(x1)); %加噪声
- snr=-5;
- x1=awgn(x1,snr);
- x2=a2*cos(2*pi*10*(n+d)/Fs); %信号2
- x2=x2+randn(size(x2));
- snr=-5;
- x2=awgn(x2,snr);
- figure;
- subplot(211);
- plot(t,x1,'r');
- axis([-0.2 1.5 -6 6]);
- hold on;
- plot(t,x2,':');
- axis([-0.2 1.5 -6 6]);
- legend('x1信号', 'x2信号');
- xlabel('时间/s');ylabel('x1(t) x2(t)');
- title('原始信号');grid on;
- hold off
- %互相关函数
- X1=fft(x1,2*N-1);
- XX1=abs(X1).^2;
- X2=fft(x2,2*N-1);
- XX2=abs(X2).^2;
- Sxy=X1.*conj(X2;
- Cxy_modulus=abs(Sxy);
- ratio=Sxy./Cxy_modulus;
- Cxy=fftshift(real(ifft(ratio)));
- subplot(212);
- t1=(-(N-1):(N-1))/Fs; %注意
- plot(t1,Cxy,'b');
- [max,location]=max(Cxy);%求出最大值max,及最大值所在的位置(第几行)location;
复制代码
|
|