功率谱密度函数还原出时域函数

更新时间:2023-11-15 09:10:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

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

下面以公路谱为例的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')

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

生成时速为200公里的5秒里程曲线,里程约为277.778米,其采用matlab按频域法处理轨道谱,将其还原为时域特性曲线。相关matlab程序如下:

v=294.9120/3.6;

L=409.6; %保证最至少可以采集5秒的数据 l=0.1;

N=L/l; %采样点数

n1=0.01; %空间频率范围n1--nu nu=3;

no=1/L; %空间频率间隔 Xk=[]; Xm=[];

f=linspace(0.01,3,N/2+1);

a=54.0439;b=0.0357;c=8254.682;d=365.8602;e=5.5139;k=-0.0004; GxC=(a*f.^2+b)./(c*f.^6+d*f.^4+e*f.^2+k); 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)); t=x/v; subplot(211); plot(t,real(Xm));

axis([0,5,-4.5,4.5]) %取实部 xlabel('时间/s');

ylabel('轨道的轨距不平顺/mm');

本文来源:https://www.bwwdw.com/article/t2jv.html

Top