bcm1983 发表于 2008-7-31 22:51

请问用相关函数法计算给定信号的功率谱

% 本程序采用相关函数法计算给定信号的功率谱
fs=200;
fid = fopen('E:/xuexi/SBL/xiluodu/testfor90610027/mshuju/080724B10.txt');
a = fscanf(fid,'%g %g %g %g',);
fclose(fid);
n=size(a);   
nfft=n(2);
num=n(1);
for i=1:num
    xn=a(i,:);
    cxn=xcorr(xn,'unbiased');
    cxk=fft(cxn,nfft);
    pxx=abs(cxk);
    index=0:round(nfft/2-1);
    k=index*fs/nfft;
    plot_pxx=10*log10(pxx(index+1));%10*log10(pxx(index+1));
    figure
    plot(k,plot_pxx)
    xlabel('Frequency(Hz)');
    ylabel('Power(W)')
    grid on
    title('PSD')
end
for i=1:num
    average(i)=mean(a(i,:));
    vary(i)=(sum((a(i,:)-mean(a(i,:))).^2)/length(a(i,:)))^0.5 ;
end
average
vary

请教大家作出来的图表纵坐标为?
080724B10.txt中行数为1024的倍数

yangzj 发表于 2008-8-1 13:26

Pxx还应除以FFT点数再乘2.
作出的图纵坐标为dB

bcm1983 发表于 2008-8-1 16:00

回复 2楼 的帖子

多谢楼上的!
那么plot_pxx=10*log10(pxx(index+1));是错误的?
不过老师给我的和我网上看得都是这个公式.
能否给出一个完整的程序?多谢!:handshake

还有今天听老师说,
纵坐标是能量吧,?
横坐标是频率,

另外将一系列数据这样处理后有何好处?
:handshake
页: [1]
查看完整版本: 请问用相关函数法计算给定信号的功率谱