新浪博客

ELCentro地震波谱与国标反应谱的对比

2017-01-26 16:29阅读:
需要使用的Matlab函数有 Y=fft(X,n,dim) : 快速傅里叶变换,n表示离散序列的次序编号,X表示离散信号序列
y=ifft(X,n,dim) : 快速傅里叶逆变换


例子1:用傅里叶转换正谐波 x=sin20pi*t,显然主频率f0=10Hz。
Matlab 代码如下:
fs=100; %采样频率,后面fft变换后计算转换频率f要用到次参数fs
N=128; % 采样点的个数
n=0:N-1; % n是从0127,共128个元素
t=n/fs; % 时间点,共128个元素
fo=10; %
正弦信号频率
%正弦信号
x=sin(2*pi*fo*t); % 128个元素
plot(t,x);
grid on;
title('Time Domain');
xlabel('t');
% FFt转换
y=fft(x,N); % N=128,采样点个数
mag=abs(y);
f=(0:length(y)-1)*fs/length(y); % 进行对应的频率转换
figure;
plot(f,mag);
grid on;
title('Frequency Domain');
xlabel('f'); % 显然主频率是10Hz
ELCentro地震波谱与国标反应谱的对比
ELCentro地震波谱与国标反应谱的对比




例子2:EL Centro 地震波的傅里叶转换。
Matlab 代码如下:
t=xlsread('d:\EL2','Data1','a3:a39252'); % 读入时间数据
xg=xlsread('d:\EL2','Data1','e3:e39252'); % 读入加速度数据
dt=t(3)-t(2); % 算任意两时间点的差deltat
fs=1/dt; % 采样频率
n=fs*t;
N=length(t)+1; % 采样点个数
% time domain
plot(t,xg);
grid on;
title('time domain');
xlabel('t');
% frequency and period domain
y=fft(xg,N); % 傅里叶转换
mag=abs(y);
f=(0:length(y)-1)*fs/length(n); % 傅里叶转换后的频率范围
figure;plot(f,mag);
grid on;
axis([0 30 0 500]);
title('frequency domain');
xlabel('f');
T=1./f; % 周期
figure;plot(T,mag);
grid on;
axis([0 6 0 500]);
title('period domain');
xlabel('T');
ELCentro地震波谱与国标反应谱的对比
ELCentro地震波谱与国标反应谱的对比
ELCentro地震波谱与国标反应谱的对比

这个period domain 的图形跟中国抗震规范里的加速度谱的形状和趋势基本符合
ELCentro地震波谱与国标反应谱的对比

我的更多文章

下载客户端阅读体验更佳

APP专享