用matlab中psd命令求信号的自功率谱时幅值如何确定
问题如提所示,matlab代码如下所示:clc;
clear;
%==================================
%载入时域信号
load t.txt; %t为列向量
load x.txt; %y为列向量
t=t/1000; %时间单位转换为s
%==================================
%plot时域波形图
subplot(411)
plot(t,x)
xlabel('T/s')
ylabel('X/m/s^2')
grid on
hold on
%======================================================
%构造信号的FFT
subplot(412)
fs=1/(t(2)-t(1)); %采样频率,信号采集软件中也已经设置
nfft=length(t); %采样点数,信号采集软件也已经设置
f=0:fs/nfft:fs/2; %频谱图的横坐标
y=abs(fft(x,nfft))*2/nfft; %FFT
plot(f,y(1:nfft/2+1))
xlabel('Frequency');
ylabel('|FFT)|')
grid on
hold on
%=========================================================
%========================================================
%一下为构造信号的功率密度谱 运算结果纵坐标很大,怎样改进
subplot(4,1,3)
w=hanning(nfft);
z=psd(x,nfft,fs,w,nfft/2); %PSD
plot(f,abs(z(1:nfft/2+1)));
xlabel('Frequency(Hz)');
ylabel('|psd()|')
grid on
hold on
%===============================================
%以下为倒谱
subplot(4,1,4)
zw=rceps(x); %rceps
plot(t,abs(zw));
xlabel('s')
ylabel('|Cepstrum|');
grid on;
运行所得结果图为:
http://ww4.sinaimg.cn/thumbnail/5daf9d04jw1dhu7bowxr7j.jpg
请各位不吝赐教,谢谢了
http://ww4.sinaimg.cn/thumbnail/5daf9d04jw1dhu7bowxr7j.jpg http://ww4.sinaimg.cn/bmiddle/5daf9d04jw1dhu7bowxr7j.jpg图片没传好,重新上传 很好,学习了 学习学习!
页:
[1]