|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我用下面的Matlab程序做脉动压力谱分析,无法判断结果是否正确,所以想请大家帮我看看!
1.对于幅值谱,我是对FFT变换后的复数序列直接取模后,即:plot(f,abs(y))。这样做幅值谱对么?(记得论坛上有人说要乘以2/N)!
2.作功率谱分析时,我是用Matlab函数psd和pmtm分别调用,可是计算出来的功率谱密度在数值上有很大的差别,想问一下,这是怎么回事!
如果是错的,那用Matlab做功率谱分析要如何操作?
我是初次接触这个问题,书看的也不多,望大家谅解,谢谢!!
%Matlab Program
%Creat Frequency&Power
%=======================
load x.dat x %load mdyl x
Fs=100
N=1024
Ndata=length(x)
n=0:Ndata-1
t=n/Fs
y=fft(x,N)
mag=abs(y)
rea=real(y)
img=imag(y)
ang=angle(y)
f=(0:length(y)-1)'*Fs/length(y)
%======================
%Creat original signal
subplot(411)
plot(t,x)
xlabel('Time(s)')
ylabel('Press(N)')
title('Original Signal')
grid
%======================
%======================
%Creat frequency vector
subplot(412)
plot(f(1:N/2),mag(1:N/2))
xlabel('Frequency(Hz)')
ylabel('Magnitude')
title('Frequency')
grid
%======================
window=hanning(N)
[Pxx,f]=psd(x,N,Fs,window)
%======================
%Creat power vector with Welch Estimate
subplot(413)
plot(f,Pxx)
xlabel('Frequency(Hz)')
ylabel('Power Spectrum')
title('PSD')
grid
%=========================
[Pxx,f]=pmtm(x,2,N,Fs)
%======================
%Creat power vector with Welch Estimate
subplot(414)
plot(f,Pxx)
xlabel('Frequency(Hz)')
ylabel('Power Spectrum')
title('PSD')
grid
%========================= |
-
-
x.dat
17.6 KB, 下载次数: 83
数据文件!
|