liulbcd 发表于 2011-6-3 22:25

用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

请各位不吝赐教,谢谢了





liulbcd 发表于 2011-6-3 22:27

http://ww4.sinaimg.cn/thumbnail/5daf9d04jw1dhu7bowxr7j.jpg

liulbcd 发表于 2011-6-3 22:28

http://ww4.sinaimg.cn/bmiddle/5daf9d04jw1dhu7bowxr7j.jpg图片没传好,重新上传

kyu16866 发表于 2012-11-21 23:38

很好,学习了

lansefeng 发表于 2013-8-27 23:44

学习学习!
页: [1]
查看完整版本: 用matlab中psd命令求信号的自功率谱时幅值如何确定