非线性动力学系统产生的时间序列的FFT

问题描述

       close all;clc;
        global  a b c
         a=0.2;
         b=0.4;
         c=5.7;
     ts=0:.01:4000;
     z0=[1 0 1]; 
     opt=odeset('RelTol',10e-12);
     [t,z]= ode45('System',ts,z0,opt);
     Fs = 1000;   
     x=z(:,1);
     nfft = 2^nextpow2(length(x));
     Pxx = abs(fft(x,nfft)).^2/length(x)/Fs;
     Hpsd = dspdata.psd(Pxx(1:length(Pxx)/2),'Fs',Fs/10); 
     figure()
     plot(Hpsd)

    function zdot=System(t,z) 
      global a b c
   zdot=[ -(z(2)+z(3));
           z(1)+a*z(2);
           b+z(1)*z(3)-c*z(3)];

上面的代码Rossler nonlinear (chaotic) dynamical system代码。积分时间步长为0.01,这是ode45求解器的参数。我正在尝试绘制fft和比例图(小波变换)。但是我不知道如何为这些类型的系统设置采样和奈奎斯特频率。我只是假设采样频率为Fs = 1000 .....也可能是100。这是我不确定的。

有人可以帮忙解释一下吗

(1)这些类型的动力系统的采样频率和奈奎斯特频率是什么

(2)如何从z的小波变换获取fft和比例尺图像

解决方法

假设有一个连续时间动力系统,其微分方程的控制系统以合适的单位制(例如SI系)表示,产生输出作为其解,为简单起见,请说y(t),然后将其转换通过对连续时间函数y(t)进行适当采样,将其转换为离散时间序列y [n]。

最典型的采样方法是均匀采样:y [n] = y(tn)= y(n * Ts)。

其中Ts是采样周期,以秒为单位。这意味着离散时间序列的样本值y [n]是通过在给定的时间戳为tn = n * Ts的情况下评估连续时间函数y(t)来获得的。

采用这种采样方法,采样频率为Fs = 1 / Ts(以赫兹为单位),相关的奈奎斯特频率Fn = Fs / 2。

在您的代码中,ODE45实现了一个数值过程来解决所提出的微分方程组,该过程在向量ts=0:.01:4000;所指示的时间范围内从0到4000秒(假定秒为单位)进行评估。时间)

此时间向量ts表示连续时间解y(t)的采样,此向量的步长定义为采样周期Ts。

因此,在您的特定示例中,采样周期为0.01秒,采样频率为100 Hz,奈奎斯特频率为50 Hz。