0
我試圖找到兩個信號之間的一致性。我用mscohere
功能,但結果看起來很吵,因爲信號很長(100000)
。所以,我將信號分成一個記錄,並嘗試從(coherence=abs(Pxy)/sqrt(Pxx*Pyy))
找到一致性。我找到Pxx
和Pyy
,他們兩個都有1000
記錄。但是,當我試圖找到Pxy
我得到的點數是(129)
分。和該程序無法正常工作。我不知道原因發現兩個信號的一致性
N=100000;
SF=1000;
A=sin(2*pi*100*t)+0.5*sin(2*pi*300*t);
Y=0.8*randn(1,length(A))+A;
D=reshape(A(1,1:100000),[1000,100]).';
M=length(D(1,:));
D1=reshape(Y(1,1:100000),[1000,100]).';
M1=length(D1(1,:));
for i=1:100
FFT_A(i,:)=fft(D(i,:));
S_A(i,:)=(FFT_A(i,:).*conj(FFT_A(i,:)))/M;
FFT_Y(i,:)=fft(D1(i,:));
S_Y(i,:)=(FFT_Y(i,:).*conj(FFT2_Y(i,:)))/M;
Pxy (i,:)= cpsd(D(i,:),D1(i,:));
end
S_A_F=sum(S_A);
S_Y_F=sum(S_Y);
Pxy_F=sum(Pxy);
coherence=abs(Pxy_F)./sqrt(S_A_F.*S_Y_F);
謝謝。信號很長,結果會很嘈雜。我必須將信號分成記錄。 – user6052232