小海豚zc 发表于 2014-10-2 20:02

关于功率谱和频谱的幅值的问题

本帖最后由 小海豚zc 于 2014-10-2 20:04 编辑

恳请各位高手帮我解答一下这几个问题:
1、功率谱 幅值的意义
2、功率谱和频谱的关系,尤其数学关系

我现在需要的是 “等带宽分析得到的功率谱”,需要对这个功率谱进行频域的计权,所以其幅值的准确与否关系重大。网上搜过一些求功率谱的方法,我最后改写了一下,有三种方式的功率谱是近似相等的。但是这是不是我需要的那个“等带宽分析得到的功率谱”?
我的程序如下




clear;clc;
Fs=1000;%采样频率
N=1000;%采样点数 Fs/N=t(采样总时间)
%频率分辨率=Fs/N需满足关注频率为频率分辨率的整数倍
n=0:1/Fs:(Fs/N-1/Fs);
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+5*cos(2*pi*150*n)+rand(size(n));%数据
ff=n(1:N/2)*Fs;
subplot(421),plot(n,xn),title('时域图');
xlabel('时间');
ylabel('幅值');

%%fft
y=fft(xn,N);
y1=abs(y)*2/N;
plot_y=y1(1:(N/2));
%ploty2=plot_y/sqrt(2);
subplot(422),plot(ff,plot_y),title('频谱图(FFT)');
%hold on;stem(ff,plot_y,'r');
xlabel('频率/Hz');
ylabel('幅值');

%power spectrum(间接法)
%nfft=1024;%index=0:round(nfft/2-1);%k=index*Fs/nfft;
cxn=xcorr(xn,'coeff'); %计算序列的自相关函数
%xcorr(,'')中''内缺省or unbiased or biased or coeff
CXk=fft(cxn,N);
Pxx=abs(CXk);
plot_Pxx=10*log10(Pxx(1:N/2));
subplot(423),plot(ff,plot_Pxx),title('间接法(自相关函数法)功率谱');
xlabel('频率/Hz');
ylabel('功率谱密度');

%power spectrum(直接法)
window=boxcar(length(xn)); %矩形窗
%nfft=1024;
=periodogram(xn,window,N,Fs); %直接法
subplot(424),plot(ff,Pxx(1:N/2)),title('直接法(periodogram)功率谱');
xlabel('频率/Hz');
ylabel('功率谱密度');

%welch method
window=boxcar(length(xn)); %矩形窗
noverlap=20; %数据无重叠
range='half'; %频率间隔为,只计算一半的频率
=pwelch(xn,window,noverlap,N,Fs,range);
%plot_Pxx=10*log10(Pxx);
subplot(425),plot(f,Pxx),title('welch法功率谱');


%Barlett method
window=boxcar(length(n)); %矩形窗
noverlap=0; %数据无重叠
p=0.9; %置信概率
=psd(xn,N,Fs,window,noverlap,p);
%plot_Pxx=10*log10(Pxx);
subplot(426),plot(Pxxc,Pxx/N*2),title('barlett法功率谱');

hcharlie 发表于 2014-10-2 21:22

我说过多次,频谱是表示周期函数的(你例中的正弦部分),而PSD是表示随机函数的(你例中的随机部分).不同的东西,中间没有转换关系.企图找出转换关系是误入歧途!

小海豚zc 发表于 2014-10-3 09:20

本帖最后由 小海豚zc 于 2014-10-3 09:21 编辑

您的意思是 周期函数没有功率谱?随机函数没有频谱? 不太清楚您的意思。那功率谱的幅值的物理意义是什么?
还有 我最想知道的是“等带宽分析得到的功率谱”,我上边做的不知道对不对?

hcharlie 发表于 2014-10-3 15:44

本帖最后由 hcharlie 于 2014-10-3 15:50 编辑

小海豚zc 发表于 2014-10-3 09:20
您的意思是 周期函数没有功率谱?随机函数没有频谱? 不太清楚您的意思。那功率谱的幅值的物理意义是什么? ...
功率谱的概念是模糊的,我只讲功率谱密度PSD,它只定义在随机函数中;
PSD值的物理意义,单位频率宽度范围内的能量.
在工程中,只能求出随机信号PSD的估计值,而不能得到其精确值.随机随机,就是变化莫测.
要得到比较精确的工程数值,你的各种方法(只求一次而不是多次平均)都不行,必需要多次平均(比如32~100次).
通用简单的方法是PSD=物理谱绝对值平方/2DF
再按谱线多次平均!!!


小海豚zc 发表于 2014-10-3 16:12

hcharlie 发表于 2014-10-3 15:44
功率谱的概念是模糊的,我只讲功率谱密度PSD,它只定义在随机函数中;
PSD值的物理意义,单位频率宽度范围内 ...

那为什么周期图法(及其改进法)和自相关函数法得到的功率谱密度的幅值不同呢?
还有什么是等带宽分析呢?
麻烦您再给我解释一下吧

我之所以关注幅值是 因为我做的东西要用到对功率谱密度的频率计权

小海豚zc 发表于 2014-10-3 16:17

http://a.hiphotos.baidu.com/zhidao/pic/item/c75c10385343fbf2da456b2db37eca8065388f57.jpg

这张图就是我要计权的东西

hcharlie 发表于 2014-10-3 20:39

本帖最后由 hcharlie 于 2014-10-4 08:20 编辑

你没有给出各种方法的结果图.我认为比较各种方法的PSD相同与否,不能就你的COS函数(周期函数)的峰值点去比较,而应该比较Rand随机部分,因为PSD只定义于随机部分,而且也应该知道你的正确值是多少,否则没有基准怎么知道谁正确呢?Rand部分随机PSD 的比较一定要多次平均.
所谓你说的等带宽分析,我觉得这是模拟分析方法中的术语,不象数字分析的术语.
我在下面的贴子里提供有已知标准PSD答案的随机数据,用这些数据去验证你的各种方法,看看哪个正确.
请注意一定要多次平均哟!
http://forum.vibunion.com/thread-132992-1-1.html
页: [1]
查看完整版本: 关于功率谱和频谱的幅值的问题