fftcircle.m
来自「应用FFT方法计算时间序列平均周期的源码。不是很复杂」· M 代码 · 共 23 行
M
23 行
%时间序列平均周期计算
clear;
clc;
close all;
% 输入时间序列data
load data;
X=data;
Y=fft(X);
N=length(Y); %求FFT变换之后的数据长度
Y(1)=[];%去掉Y的第一个数据,该数据实际上是后面所有数据的和
power=abs(Y(1:N/2)).^2;% 求功率谱
nyquist=1/2;
freq = (1:N/2)/(N/2)*nyquist;%求频率
plot(freq,power), grid on %绘制功率谱图
xlabel('cycles/tongjishijianjiange')
title('Periodogram')
period = 1./freq; %年份(周期)
plot(period,power); % , axis([0 40 0 2e7]), grid on %绘制年份-功率谱曲线
ylabel('Power')
xlabel('Period(Years/Cycle)')
[mp,index] = max(power); %求最高谱线所对应的年份下标
%求时间序列平均周期TT
TT=period(index); %由下标求出平均周期
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?