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)];上面的代码是罗斯勒非线性(混沌)动力系统的代码。积分时间步长为0.01,是ode45求解器的一个参数。我试图绘制fft和scalogram (小波变换)。但我不知道如何为这些类型的系统设置采样和nyquist频率。我只是假设采样频率是Fs = 1000,.....it,也可以是100。这就是我不确定的。
有人能帮我解释一下吗
(1)这类动力系统的采样频率和奈奎斯特频率是多少?
(2)如何利用z的小波变换得到快速傅立叶变换和残差图图像。
发布于 2020-11-03 23:05:53
假设有一个连续时间动力系统,它的控制微分方程系统,用适当的单位系统(如SI系统)表示,产生一个输出作为它的解,例如y(t),为了简单起见,你把这个连续时间函数y(t)转换成离散时间序列yn,通过适当地采样它。
最典型的抽样方法是均匀抽样: yn = y(tn) = y(n*Ts)。
其中s是采样周期,以秒为单位。这意味着离散时间序列的样本值yn是通过计算连续时间函数y(t)在时标: tn = n*Ts上得到的。
用这种采样方法,采样频率f= 1/Ts (赫兹),相关Nyquist频率Fn = Fs/2。
在您的代码中,ODE45实现了一个数值过程来求解所提出的微分方程组,在向量表示的时间词干上进行计算:ts=0:.01:4000;从0到4000秒(假设秒为时间单位)。
这个时间向量ts表示连续时间解y(t)的采样,并且这个向量的步长是,上面定义的采样周期Ts。
因此,在您的具体示例中,采样周期为0.01秒,采样频率为100 Hz,Nyquist频率为50 Hz。
https://stackoverflow.com/questions/64666503
复制相似问题