wystar 发表于 2014-11-17 08:58

这样求的平均周期和时间延迟对吗?

我求解方程之后提取了一组数据,然后用FFT方法求平均周期,用互信息法求时间延迟,但是感觉平均周期和时间延迟太小了点,用GP算法计算关联维也不收敛,请大家看看。%function T_mean=period_mean_fft(data)
%该函数使用快速傅里叶变换FFT计算序列平均周期
%data:时间序列
%T_mean:返回快速傅里叶变换FFT计算出的序列平均周期
clc
clear
data=load('x.txt');%导入数据

Y = fft(data);       %快速FFT变换
N = length(data)   %FFT变换后数据长度
Y(1) = [];         %去掉Y的第一个数据,它是data所有数据的和
power = abs(Y(1:N/2)).^2 ;%求功率谱?

size(power)
nyquist = 1/2;
freq = (1:N/2)/(N/2)*nyquist;%求频率?
size(freq)
subplot(211)
plot(freq,power); grid on   %绘制功率谱图
xlabel('频率')
ylabel('功率')
title('功率谱图')
period = 1./freq;                %计算周期
subplot(212)
plot(period,power); grid on%绘制周期-功率谱曲线
ylabel('功率')
xlabel('周期')
title('周期—功率谱图')
= max(power);       %求最高谱线所对应的下标
T_mean=period(index)            %由下标求出平均周期

wystar 发表于 2014-11-17 09:02

计算得到的平均周期为3.58,时间延迟等于1。

wystar 发表于 2014-11-17 09:04

互信息法是gghhjj前辈分享的,由于现在没有找到原帖,所以再分享一份。

lzmhncs 发表于 2015-12-28 13:38

我用FFT方法求平均周期,怎么求出来的总是data的长度
页: [1]
查看完整版本: 这样求的平均周期和时间延迟对吗?