声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4162|回复: 4

[FFT] 用matlab中psd命令求信号的自功率谱时幅值如何确定

[复制链接]
发表于 2011-6-3 22:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
问题如提所示,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;
运行所得结果图为:

                               
登录/注册后可看大图


请各位不吝赐教,谢谢了





回复
分享到:

使用道具 举报

 楼主| 发表于 2011-6-3 22:27 | 显示全部楼层

                               
登录/注册后可看大图
 楼主| 发表于 2011-6-3 22:28 | 显示全部楼层

                               
登录/注册后可看大图
图片没传好,重新上传
发表于 2012-11-21 23:38 | 显示全部楼层
很好,学习了
发表于 2013-8-27 23:44 | 显示全部楼层
学习学习!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 19:46 , Processed in 0.056477 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表