凌轩阁——Learn more and enjoy the life!分享 http://blog.sciencenet.cn/u/lingxuange 东北大学博士研究生,从事机械振动和高速列车相关方面研究。

博文

通过功率谱密度函数还原出时域函数(公路谱)

已有 12383 次阅读 2009-12-17 19:45 |个人分类:科研与学术|系统分类:科研笔记

频域法的核心是快速傅立叶变换,即功率谱密度函数在离散的采样点上与信号的频谱有着一个确定的关系。如果能够在功率谱密度函数上离散采样,构造出频谱 ,然后再对其进行傅立叶逆变换,即可得到时域的函数曲线。

下面以公路谱为例的matlab处理程序:

Gx0=256;                  %参考空间频率n0下的路面功率谱密度
n0=0.1;                   %参考空间频率n0
L=409.6;
l=0.1;
N=L/l;                     %采样点数
n1=0.01;                   %空间频率范围n1--nu
nu=3;
w=2;                       %频率指数
no=1/L;                    %空间频率间隔
Xk=[];
Xm=[];
n=linspace(0.01,3,N/2+1);
GxC=Gx0*(n/n0).^(-w);
k=0:N/2;
fik=randn(1,N)*2*pi;             %产生0到2pi的均匀分布的随机序列
pg=GxC(1:N/2+1);
Xk=sqrt((N/2+1)/(2*l)*pg).*exp(j*fik(1:N/2+1));  %调用函数GxC(n)
Xk(1)=sqrt((N/2+1)/(2*l)*pg(1)); Xk(N/2+1)=sqrt((N/2+1)/(2*l)*pg(N/2+1));
Xk=[Xk(1:2049) conj(Xk(2048:-1:2))];
Xm=ifft(Xk);            %逆傅立叶变换后得到复数形式随机序列
x=linspace(0,409.6,length(Xm));
subplot(211);
plot(x,real(Xm));                                %取实部
xlabel('行驶距离/m');
ylabel('路面不平度/mm');
Pxr=abs(fft(real(Xm))).^2/N;                     %恢复序列的功率谱
Pxr=Pxr(1:N/2+1);
subplot(212);
n=linspace(0.01,3,N/2+1);
loglog(n,GxC(1:N/2+1),'r'); hold on;
loglog(n,Pxr);                  %恢复序列的功率谱与原功率谱值比较
xlabel('空间频率n');
ylabel('功率谱密度Gx(n)'); hold off;
legend('GxC','Pxr')



https://blog.sciencenet.cn/blog-357150-279391.html

上一篇:华硕A8SR装XP过程中蓝屏解决方法
下一篇:通过功率谱密度函数还原出时域函数(轨谱谱)
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-15 14:15

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部