声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3160|回复: 1

[编程技巧] 为什么我做scot广义互相关不对?求助

[复制链接]
发表于 2014-6-25 10:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 牛小贱 于 2014-6-25 11:05 编辑

我做广义互相关求出的时延是正确的,但我在原广义互相关上加权后,时延估计在0点处,找不到原因,请各位指教,谢谢。

  1. clear all;
  2. close all;
  3. clc;

  4. N=1024;  %长度
  5. Fs=500;  %采样频率
  6. n=0:N-1;
  7. t=n/Fs;   %时间序列
  8. a1=5;     %信号幅度
  9. a2=5;
  10. d=8;     %延迟点数

  11. x1=a1*cos(2*pi*10*n/Fs);     %信号1
  12. x1=x1+randn(size(x1));      %加噪声
  13. snr=-5;
  14. x1=awgn(x1,snr);
  15. x2=a2*cos(2*pi*10*(n+d)/Fs); %信号2
  16. x2=x2+randn(size(x2));
  17. snr=-5;
  18. x2=awgn(x2,snr);

  19. figure;
  20. subplot(211);
  21. plot(t,x1,'r');
  22. axis([-0.2 1.5 -6 6]);
  23. hold on;
  24. plot(t,x2,':');
  25. axis([-0.2 1.5 -6 6]);
  26. legend('x1信号', 'x2信号');
  27. xlabel('时间/s');ylabel('x1(t) x2(t)');
  28. title('原始信号');grid on;
  29. hold off

  30. %互相关函数
  31. X1=fft(x1,2*N-1);
  32. XX1=abs(X1).^2;
  33. X2=fft(x2,2*N-1);
  34. XX2=abs(X2).^2;
  35. Sxy=X1.*conj(X2;

  36. Cxy_modulus=abs(Sxy);
  37. ratio=Sxy./Cxy_modulus;
  38. Cxy=fftshift(real(ifft(ratio)));

  39. subplot(212);
  40. t1=(-(N-1):(N-1))/Fs;                        %注意
  41. plot(t1,Cxy,'b');
  42. [max,location]=max(Cxy);%求出最大值max,及最大值所在的位置(第几行)location;
复制代码



回复
分享到:

使用道具 举报

发表于 2024-3-28 02:41 | 显示全部楼层
此帖仅作者可见

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-15 07:22 , Processed in 0.061452 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表