利用互谱求序列滞后时间的问题
本帖最后由 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 编辑 ] 有知道的说说呀 10年过去了,我还是不懂{:3_47:}
页:
[1]