声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5075|回复: 17

[FFT] 大家帮忙看看我这个谱分析的结果!谢谢!

[复制链接]
发表于 2007-8-3 21:27 | 显示全部楼层 |阅读模式

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

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

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

数据文件!

回复
分享到:

使用道具 举报

发表于 2007-8-4 09:19 | 显示全部楼层
1,用abs(y)求幅值谱没有错。当在分析正弦波信号时(不论是一个或多个正弦信号的组合),为了能在频率域上求出(或比较)正弦信号的幅值,用abs(y)*2/N的方法。但对于大部分信号求幅值谱时,可乘2/N,也可不乘。


2,计算功率谱密度函数有许多种方法,它们给出的都是相对值,所以从绝对值上说,它们之间可能有很大的差别,但若用dB表示,它们的图形就很相似了。同样用楼主给的数据,用直接法、Welch和MTM方法给出的功率谱密度图如下,可看出它们的图形很相似。

直接法

直接法

Welch法

Welch法

MTM法

MTM法

jt21.m

1.02 KB, 下载次数: 54

程序

评分

1

查看全部评分

发表于 2007-8-4 10:04 | 显示全部楼层
songzy41兄,后面两种方法取对数后是不是应该是乘10?
 楼主| 发表于 2007-8-4 10:07 | 显示全部楼层
嗯,非常感谢songzy41 !

我有些疑问:

1.如果不用分贝表示,为什么功率谱的曲线就会有这么大的差异?

2.用分贝表示时,这个图形的主频率就不明显了!实际分析时候,用哪一种表示比较好呢?
发表于 2007-8-4 10:16 | 显示全部楼层
psd其实就是进行多段平均的直接法(不考虑比例关系),经多段平均后功率谱会变的平滑些。
但是楼主信号的长度比加的窗的长度还要小,所以用psd根本就没有做平均,跟直接法是完全一样的,如果直接法和psd都用同样的窗,(直接法是幅值的平方),那么楼主程序里的这两个图是完全一样的,只有一个倍数关系。
至于pmtm法,没有细看,但猜测同样是进行了多段平均的,只不过每段的做法与直接法有些出入。

另外建议楼主开始的时候用简单的仿真信号来测试程序,这样才能把握结果正确与否,有什么出入。
 楼主| 发表于 2007-8-4 10:37 | 显示全部楼层
如果用傅里叶变换直接计算功率谱,也就是采用下面的公式:

Gx(f)=(X(f,T).X*(f,T))×2×deltt/N
       =[R(f)+jI(f)][R(f)-jI(f)]×2×deltt/N
       =[R(f).^2+I(f).^2]×2×deltt/N

式中:X*为X的共轭,R(f)、I(f)分别表示序列x(t)经傅里叶变换后的实部和虚部

按照这个思路:
load x.dat x;     %load mdyl x
Fs=100;
N=1024;
Ndata=length(x);
n=0:Ndata-1;
t=n/Fs;
deltt=1/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);
pow=(rea.^2+img.^2)*2*deltt/N
plot(f(1:N/2),pow(1:N/2))

得出的波出却完全不一样!这个如何解释呢?
FFT_pow.jpg
 楼主| 发表于 2007-8-4 10:41 | 显示全部楼层
另外,如果先对随机序列x(t)加窗函数w(t)进行修改,那最后对功率谱值进行修正时,那个修正的比例因子该如何选取!

查了一些资料,也没有看到相关的说明,是不是一种窗函数的修正的比例因子是不是都一样呢?
发表于 2007-8-4 10:42 | 显示全部楼层

回复 #6 johnthy 的帖子

哪个和哪个不一样,你是指纵坐标的值?
发表于 2007-8-4 10:43 | 显示全部楼层
本帖最后由 VibInfo 于 2016-10-20 16:07 编辑
原帖由 johnthy 于 2007-8-4 10:41 发表
另外,如果先对随机序列x(t)加窗函数w(t)进行修改,那最后对功率谱值进行修正时,那个修正的比例因子该如何选取!

查了一些资料,也没有看到相关的说明,是不是一种窗函数的修正的比例因子是不是都一样呢?


不同的窗有不同的幅值恢复系数和能量恢复系数
 楼主| 发表于 2007-8-4 10:44 | 显示全部楼层

回复 #8 yangzj 的帖子

嗯,不但纵坐标的值不一样,而且波的形状也不一样!

而且不明白songzy41 做的功率谱为什么会出现负值!
 楼主| 发表于 2007-8-4 10:45 | 显示全部楼层
发表于 2007-8-4 11:04 | 显示全部楼层
close all;
clear all;
clc;

fs=1024;
wN=1024*10;
N=1024;

t=(0:wN-1)/fs;
x=cos(2*pi*100.3*t);
x=awgn(x,-6,'measured');

window=hanning(N);

xf=fft(x(1:N).*window');
xf=abs(xf(1:N/2)).^2/norm(window)^2;

f=(0:N/2-1)*fs/N;
subplot(211);
plot(f,xf);

[Pxx,f]=psd(x,N,fs,window);
subplot(212);
plot(f,Pxx);

你试试这个,从psd的源代码可看出直接法的psd方法相差系数norm(window)^2. 要看psd的效果加上噪声。

上面的问题:
形状是一样的,只是倍数关系。
songzy做的是对数功率谱,当然会出现负值,小于1的对数都是负值。
发表于 2007-8-4 11:12 | 显示全部楼层
能量恢复系数可参考psd的源代码直接用norm(window)^2;
实在要找参考资料的话可参考这篇论文:
焦新涛,丁康   加窗频谱分析的恢复系数及其求法

评分

1

查看全部评分

 楼主| 发表于 2007-8-4 12:02 | 显示全部楼层
嗯,好的!

非常感谢版大!
发表于 2009-3-29 17:54 | 显示全部楼层
做对数功率谱是不是乘以20*log10(Pxx);:@) :@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-26 21:43 , Processed in 0.095366 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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