jianliu1 发表于 2009-5-13 18:25

利用互谱求序列滞后时间的问题

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

  如题:
  一、两个离散时间序列x,y:
  x=;
  y=;
  x和y取样时间间隔均为1d,那么从上述两个观测值可以看出y较x滞后6d。现在想用互功率谱来求出这个时间差(Tao=Theta/2/Pi/f=6d,其中f,Theta为相干谱最大时对应频率和相位),可是我用matlab编了程序,运行结果怎么也不对,想了几天没想明白,所以发上来请求各位帮助,谢谢。
  二、原程序
  clear
  x=;
  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);
  =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('相位谱');
  三、附图


[ 本帖最后由 jianliu1 于 2009-5-13 18:27 编辑 ]

xiaoaq 发表于 2009-6-17 21:58

有知道的说说呀

小小卉 发表于 2018-1-13 10:33

10年过去了,我还是不懂{:3_47:}
页: [1]
查看完整版本: 利用互谱求序列滞后时间的问题