声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2600|回复: 2

[综合] 利用互谱求序列滞后时间的问题

[复制链接]
发表于 2009-5-13 18:25 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 wdhd 于 2016-9-18 14:49 编辑

  如题:
  一、两个离散时间序列x,y:
  x=[11,-3,19,43,2,-3,9,8,-6,3,5,-7,2,-1,-3,2,0,-8];
  y=[9,8,-6,3,5,-7,2,-1,-3,2,0,-8,11,-3,19,43,2,-3];
  x和y取样时间间隔均为1d,那么从上述两个观测值可以看出y较x滞后6d。现在想用互功率谱来求出这个时间差(Tao=Theta/2/Pi/f=6d,其中f,Theta为相干谱最大时对应频率和相位),可是我用matlab编了程序,运行结果怎么也不对,想了几天没想明白,所以发上来请求各位帮助,谢谢。
  二、原程序
  clear
  x=[11,-3,19,43,2,-3,9,8,-6,3,5,-7,2,-1,-3,2,0,-8];
  y=[-6,3,5,-7,2,-1,-3,2,0,-8,11,-3,19,43,2,-3,9,8];
  N=length(x);
  Rx=xcorr(x);
  Ry=xcorr(y);
  [Rxy,lags]=xcorr(x,y,'unbiased');
  Sxx=fft(Rx,N);
  %x的功率谱
  Syy=fft(Ry,N);
  %y的功率谱
  Sxy=fft(Rxy,N);
  %x,y的互谱
  Coxy=abs(Sxy)./(abs(Sxx).*abs(Syy));
  %x,y的相干谱
  n1=1:1:N/2;
  f=n1/N;
  subplot(3,1,1);
  plot(f,abs(Sxy(1:N/2)));
  title('幅值谱');
  subplot(3,1,2);
  plot(f,Coxy(1:N/2));
  title('相干谱');
  Theta=angle(Sxy);
  subplot(3,1,3);
  plot(f,Theta(1:N/2));
  title('相位谱');
  三、附图
w.jpg

[ 本帖最后由 jianliu1 于 2009-5-13 18:27 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-6-17 21:58 | 显示全部楼层
有知道的说说呀
发表于 2018-1-13 10:33 | 显示全部楼层
10年过去了,我还是不懂
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-28 12:41 , Processed in 0.084989 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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