本帖最后由 多多会迈特来布 于 2016-2-12 05:24 编辑
这是我遇到问题的代码:
[code]N=2^14; %Number of RecordsL=2^14;%Transform Length
SmoothingK=2^0;
fd=zeros(L,1); %Frequency division matrix
%Sampling Frequency
Fs=(N-1)/(Times(N,1)-Times(1,1));
%Find the resolution from the samplingfrequency
f=Fs/L;
%Auto spectal density for each probe
SP1=pwelch(P1,(L/SmoothingK),[],L)/(Fs/12.566);
SP2=pwelch(P2,(L/SmoothingK),[],L)/(Fs/12.566);
SP3=pwelch(P3,(L/SmoothingK),[],L)/(Fs/12.566);
%Generate cross spectral densities
CSD12=cpsd(P1,P2,(L/SmoothingK),[],L);
CSD13=cpsd(P1,P3,(L/SmoothingK),[],L);
PH11=zeros(L,1);
PH12=zeros(L,1);
PH13=zeros(L,1);
for i = 1:(L/2)
PH12(i,1)=atan2(imag(CSD12(i,1)),real(CSD12(i,1)));
PH13(i,1)=atan2(imag(CSD13(i,1)),real(CSD13(i,1)));End[/code]
这是我根据一篇文章里面的计算方法拿到的程序,运行后发现程序的结果不对。
这里分别需要用到的是Auto spectal density 和 cross spectal density 是不是中文就是自频谱密度和互频谱密度? 程序里面用pwelch和cpsd对么? 我是之前查到说什么cpsd替代csd, pwelch替代psd,但是不确定
然后关于pwelch和cpsd两个函数 我查找了网上的语法规定也看了help,但是不知道怎么确定这里用的是两种函数的那种形式啊
QQ截图20160211184013.png (13.75 KB, 下载次数: 12)
2016-2-11 18:47 上传
QQ截图20160211184003.png (49.34 KB, 下载次数: 9)
2016-2-11 18:47 上传
因为不知道用的是哪种形式,所以我对于原来编写这个程序的人用pwelch(P1,(L/SmoothingK),[],L)中的[] 的意义不理解。cpsd中的[]也是一样,有人知道这个[]代表的是什么意思么?
我的数据文件中全部的数据量,是16250个数据左右,那我的N取2^14 这样有问题么?
pwelch和cspd中的参数L 在程序开头定义的值是transformlength,那在程序中是窗函数长度的意思么?