如枫 发表于 2011-4-14 09:15

请教怎么样用数值方法画Duffing方程的幅频特性曲线

请教怎么样用数值方法画Duffing方程的幅频特性曲线?


hsfy919 发表于 2011-4-15 11:49

回复 1 # 如枫 的帖子

先用数值方法解出振幅x,程序论坛里有,再绘制出频率和振幅的曲线。

如枫 发表于 2011-4-15 21:45

利用傅里叶变换求振幅这一部分程序不太清楚,
在论坛里面找到一个程序,有几个地方不明白
ff=90; %(Hz) 1/ff 表示周期
N=1024*16;
n=4; % how many period

grid=';
incre= 1/ff/(N-1);%将周期分成N-1等分,incre表示步长
t = incre*grid*n;

% plot the original signal
y=1.75*cos(2*pi*ff*t) + 2.3*sin(4*pi*ff*t)+4.3*sin(5*pi*ff*t);
figure(1);
plot(t,y);
title('Signal');
xlabel('time');
ylabel('signal');

% FFT
Y = fft(y)/N*2;
Pyy = abs(Y);

% plot the FFT
f = 1/incre*grid/n/(length(Pyy)-1); %求各阶谐波幅值?
figure(2);
plot(f(1:N/2),Pyy(1:N/2),'r')
title('Frequency content of y');
xlabel('frequency (Hz)');
ylabel('magnitude (Hz)');

1. Y = fft(y)/N*2; 这里为什么要除以N*2
2.   f = 1/incre*grid/n/(length(Pyy)-1);横坐标频率为什么要做这样的转换?

请教高手!!!

tudexin 发表于 2011-4-17 10:35

如枫 发表于 2011-4-15 21:45 static/image/common/back.gif
利用傅里叶变换求振幅这一部分程序不太清楚,
在论坛里面找到一个程序,有几个地方不明白
ff=90; %(Hz) 1 ...

你这是幅值谱图程序吧?不是幅频特性图程序好像,呵呵 个人观点,不知道对错

octopussheng 发表于 2011-4-17 18:58

FFT后得到的是某一组解的幅值-频率特性,和你题目中说 的不一样吧

如枫 发表于 2011-4-18 10:21

上面的程序是和标题不一样,继续请教
怎么样用数值方法从原方程得到频幅特性曲线?

伤痕累累 发表于 2012-3-14 10:57

先用傅里叶转化成级数叠加(类似y的多个简谐函数叠加),得到的结果将原程序的y替换一下就可以得到了吧,个人意见

伤痕累累 发表于 2012-3-21 17:26

今天发现新的方法,发现我上面说的不妥。
将duffing方程数值解之后于将对应的数值快速值傅里叶转化。我给个例子
w=3000*pi;
T=2*pi; ts=;
y=z(24577:end,1);%取出的数值解
fs=4096; N=length(y);
zz=fft(y); zz=fftshift(zz);
f=(0:N-1)*fs/N;
plot(f,zz)
页: [1]
查看完整版本: 请教怎么样用数值方法画Duffing方程的幅频特性曲线