- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工地震动生成程序
clear
clc
close all hidden
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fni=input(生成人工地震波-输入数据文件名:,s);
fid=fopen(fni,r);
fs=fscanf(fid,%f,1);%采样频率
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tu=fscanf(fid,%f,1);%上升时间长度
%上升时间包络线线形(1-直线、2-抛物线、3-指数曲线)
iu=fscanf(fid,%f,1);
%上升时间包络线线形参数(只有指数曲线需要具体参数,其均为1)
cu=fscanf(fid,%f,1);
ta=fscanf(fid,%f,1);%持时时间长度
td=fscanf(fid,%f,1);%下降时间长度
%下降时间包络线线形(1-直线、2-抛物线、3-指数曲线)
id= fscanf(fid,%f,1);
%下降时间包络线线形(只有抛物线,指数曲线需要具体参数,其余为1)
cd=fscanf(fid,%f,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 批注 [MS1]: 定义强度包络
线
dp=fscanf(fid,%f,1);% 阴尼比值
p=fscanf(fid,%f,1);%概率系数(一般可取P=0.85 )
nn=fscanf(fid,%f,1);%迭代次数
fno=fscanf(fid,%f,1);%输出数据文件名
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%对目标反应谱取值
x=fscanf(fid,%f,[2,inf]);%反应谱频率和幅值数据
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tatus=fclose(fid);
%计算生成地震波的数据长度
tl=tu+ta+td;
%计算生成地震波的数据长度
nt=round(fs*tl+1);
%大于并最接近nt 的2 的幂次方为FFT长度
nfft=2^nestpow2(nt)
%计算频率间隔(Hz )
df=fs/nfft
%定义反应谱的离散频率向量
f=0:df:(nfft/2-1)*df
%计算时间间隔(s )
dt=1/fs;
%定义的离散时间向量
t=0:dt:(nt-1)*dt
%生成0到2PI 的随机数为随机相位
g=rand(1,nfft/s)*2*pi;
%建立时间包络线
%建立与地震波长度相同元素为1的向量
en=ones(1,nt);
%上升时间阶段
%确定上升时间段的长度
l=round(tu*fs)+1
%产生上升时间段的包络线数组元素
switch iu
case 1 %直线
en(1:l)=linspace(0,1,1);% y = linspace(a,b,n) generates a row vector y of n points linearly
spaced between and including a and b.
case 2 %抛物线
a=0:l-1;
en(1:l)=(a/(l-1)).^2;
case 3 %指数曲线
a=0:l-1;
en(1:l)=1-exp(-cu*a/(l-1));
end
%持续时间阶段
%确定0时刻到持续时间结束时刻时间段的长度
m=round((tu+ta)*fs)+1;
%下降时间阶段
%产生下降时间段的包络线数组元素
switch id
case 1 %直线
en(m:nt)=linspace(1,0,nt-m+1);
case 2 %抛物线
a=0:nt-m;
en(m:nt)=1-cd*(a/(nt-m)).^2;
case 3 %指数曲线
文档评论(0)