|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
频域法的核心是快速傅立叶变换,即功率谱密度函数在离散的采样点上与信号的频谱有着一个确定的关系。如果能够在功率谱密度函数上离散采样,构造出频谱 ,然后再对其进行傅立叶逆变换,即可得到时域的函数曲线。
下面以公路谱为例的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')
复制代码
转自:http://blog.sciencenet.cn/blog-357150-279391.html |
|