civileol 发表于 2009-12-17 11:41

大家请看看,提点意见。附代码

clc;
%预定参数;
node=5;
filepath='D:\history\';
msgbox('正在计算,请稍候...','运行程序','help','replace');
for i=1:node
   A=load();
   eval(['P',num2str(i),'=','A(:,2)',';']);%分别保存在P1,P2...
   eval(['p_his','(:,i)','=','P',num2str(i),';']);%%
end %这里只是将信号组放在一个矩阵里面

msgbox('正在计算!','运行程序','help','replace');
for i=1:5
Fs=1/0.18; %采样频率
n=0:1/Fs:2952;
nfft=16400;
window2=hanning(16400); %汉宁窗
noverlap=20; %数据无重叠
range='half'; %频率间隔为,只计算一半的频率
=pwelch(p_his(:,i),window2,noverlap,nfft,Fs,range);
spp(:,i)=sp;ff(:,i)=f;

plot_spp=log10(abs(spp(:,i)));
figure(1);
grid on;
subplot(3,2,i);
plot(log10(abs(ff(:,i))),plot_spp);
end

根据上面的方法我求的的功率谱打出的图如下,怎么有负值啊?曲线好像是合理的,但是我要的是正值啊,幅值也不知道对不对,没有把握。
请大侠答疑啊。谢谢。

songzy41 发表于 2009-12-17 19:38

取了对数,数值在1以下便为负值。
页: [1]
查看完整版本: 大家请看看,提点意见。附代码