|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
因为自己需要根据结构跨中加速度功率谱密度函数频率计权后计算均方根加速度,所以希望知道功率谱密度是否存在真实值的问题。在计算幅值的时候存在真实值的问题,即
真实值=abs(fft(x,N))*2/N
但是在计算功率谱密度时,看到的计算方式大多为:
y=fft(x,N);
p=y.*conj(y)/N;
这种方式好像计算得到的功率谱密度并不是一个实际值,那么该如何计算得到实际值呢?
以下面程序为例,请帮忙写出功率谱密度的计算程序
- clc
- clear
- %读入数据,第一列赋予列向量t,第三列赋予列向量a,第二列丢弃
- <span style="line-height: 1.5;">[t,a]=textread('aa.txt','%f%*f%f');</span>
- %以下命令为显示加速度时程曲线
- figure(1)
- <span style="line-height: 1.5;">plot(t,a);</span>
- xlabel('时间(s)');
- ylabel('加速度(m/s^2)');
- title('跨中加速度时程曲线');
- grid;
- %进行FFT变换并做频谱图
- nfft=2^nextpow2(length(t));%找出大于t的个数的最大的2的指数值
- y=fft(a,nfft);%进行fft变换,得到频率的幅值分布
- mag=abs(y)*2/length(t); %求幅值
- del=t(3)-t(2);%时间步长
- fs=1/del;
- f=(0:nfft-1)'*fs/nfft;%频率序列
- figure(2);
- <span style="line-height: 1.5;">plot(f,mag);%做频谱图</span>
- axis([0,10,0,200]);
- xlabel('频率(Hz)');
- ylabel('幅值');
- title('跨中加速度频谱图');
- grid;
复制代码
|
|