%%求四輸入單輸出的偏相干函式
%輸入信號
s1=load('C:\Users\haoge\Desktop\pian\intake.txt');
s2=load('C:\Users\haoge\Desktop\pian\exhaust.txt');
s3=load('C:\Users\haoge\Desktop\pian\tank.txt');
s4=load('C:\Users\haoge\Desktop\pian\roof.txt');
out=load('C:\Users\haoge\Desktop\pian\ear.txt');
%
fs =10240; % fs 采樣頻率
t=1/fs; % t 時間向量
l=length(s1); % 信號長度
NFFT=2^nextpow2(l); % NFFT 點 FFT 計算
%
f=fs/2*linspace(0,1,(NFFT/2+1)); %實際頻率轉化
%
g1=fft(s1,NFFT,l);
g2=fft(s2,NFFT,l);
g3=fft(s3,NFFT,l);
g4=fft(s4,NFFT,l);
gout=fft(out,NFFT,l);
%%
%求第一通道的偏相干函式
%%消除第二通道的影響
g12=g1-((cpsd(s1,s2,hanning(5120),2560,NFFT,fs)')./(cpsd(s2,s2,hanning(5120),2560,NFFT,fs)')).*g2;
g32=g3-((cpsd(s3,s2,hanning(5120),2560,NFFT,fs)')./(cpsd(s2,s2,hanning(5120),2560,NFFT,fs)')).*g2;
g42=g4-((cpsd(s4,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s2,s2,hanning(5120),2560,NFFT,fs)')).*g2;
%%重構信號
s12=IFFT_user(g12,NFFT,l);
s32=IFFT_user(g32,NFFT,l);
s42=IFFT_user(g42,NFFT,l);
%%消除第三通道的影響
g123=g12-((cpsd(s12,s32,hanning(5120),2560,NFFT,fs)')./(cpsd(s32,s32,hanning(5120),2560,NFFT,fs)')).*g32;
g423=g42-((cpsd(s42,s32,hanning(5120),2560,NFFT,fs)')./(cpsd(s32,s32,hanning(5120),2560,NFFT,fs)')).*g32;
%%重構信號
s123=IFFT_user(g123,NFFT,l);
s423=IFFT_user(g423,NFFT,l);
%%消除第四通道的影響
g1234=g123-((cpsd(s123,s423,hanning(5120),2560,NFFT,fs)')./(cpsd(s423,s423,hanning(5120),2560,NFFT,fs)')).*g423;
%重構信號
s1234=IFFT_user(g1234,NFFT,l);
%temp=abs(CPSD_user(g1234,gout));
partial_coherence1=mscohere(s1234,out,hanning(5120),2560,NFFT,fs);
%%
%求第二通道的偏相干函式
%%消除第一通道的影響
g21=g2-((cpsd(s2,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
g31=g3-((cpsd(s3,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
g41=g4-((cpsd(s4,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
%%重構信號
s21=IFFT_user(g21,NFFT,l);
s31=IFFT_user(g31,NFFT,l);
s41=IFFT_user(g41,NFFT,l);
%%消除第三通道的影響
g213=g21-((cpsd(s21,s31,hanning(5120),2560,NFFT,fs)')./(cpsd(s31,s31,hanning(5120),2560,NFFT,fs)')).*g31;
g413=g41-((cpsd(s41,s31,hanning(5120),2560,NFFT,fs)')./(cpsd(s31,s31,hanning(5120),2560,NFFT,fs)')).*g31;
%%重構信號
s213=IFFT_user(g213,NFFT,l);
s413=IFFT_user(g413,NFFT,l);
%%消除第四通道的影響
g2134=g213-((cpsd(s213,s413,hanning(5120),2560,NFFT,fs)')./(cpsd(s413,s413,hanning(5120),2560,NFFT,fs)')).*g413;
%重構信號
s2134=IFFT_user(g2134,NFFT,l);
%temp=abs(CPSD_user(g1234,gout));
partial_coherence2=mscohere(s2134,out,hanning(5120),2560,NFFT,fs);
%%
%求第三通道的偏相干函式
%%消除第一通道的影響
g21=g2-((cpsd(s2,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
g31=g3-((cpsd(s3,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
g41=g4-((cpsd(s4,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
%%重構信號
s21=IFFT_user(g21,NFFT,l);
s31=IFFT_user(g31,NFFT,l);
s41=IFFT_user(g41,NFFT,l);
%%消除第二通道的影響
g312=g31-((cpsd(s31,s21,hanning(5120),2560,NFFT,fs)')./(cpsd(s21,s21,hanning(5120),2560,NFFT,fs)')).*g21;
g412=g41-((cpsd(s41,s21,hanning(5120),2560,NFFT,fs)')./(cpsd(s21,s21,hanning(5120),2560,NFFT,fs)')).*g21;
%%重構信號
s312=IFFT_user(g312,NFFT,l);
s412=IFFT_user(g412,NFFT,l);
%%消除第四通道的影響
g3124=g312-((cpsd(s312,s412,hanning(5120),2560,NFFT,fs)')./(cpsd(s412,s412,hanning(5120),2560,NFFT,fs)')).*g412;
%重構信號
s3124=IFFT_user(g3124,NFFT,l);
%temp=abs(CPSD_user(g1234,gout));
partial_coherence3=mscohere(s3124,out,hanning(5120),2560,NFFT,fs);
%%
%求第四通道的偏相干函式
%%消除第一通道的影響
g21=g2-((cpsd(s2,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
g31=g3-((cpsd(s3,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
g41=g4-((cpsd(s4,s1,hanning(5120),2560,NFFT,fs)')./(cpsd(s1,s1,hanning(5120),2560,NFFT,fs)')).*g1;
%%重構信號
s21=IFFT_user(g21,NFFT,l);
s31=IFFT_user(g31,NFFT,l);
s41=IFFT_user(g41,NFFT,l);
%%消除第二通道的影響
g312=g31-((cpsd(s31,s21,hanning(5120),2560,NFFT,fs)')./(cpsd(s21,s21,hanning(5120),2560,NFFT,fs)')).*g21;
g412=g41-((cpsd(s41,s21,hanning(5120),2560,NFFT,fs)')./(cpsd(s21,s21,hanning(5120),2560,NFFT,fs)')).*g21;
%%重構信號
s312=IFFT_user(g312,NFFT,l);
s412=IFFT_user(g412,NFFT,l);
%%消除第三通道的影響
g4123=g412-((cpsd(s412,s312,hanning(5120),2560,NFFT,fs)')./(cpsd(s312,s312,hanning(5120),2560,NFFT,fs)')).*g312;
%重構信號
s4123=IFFT_user(g4123,NFFT,l);
%temp=abs(CPSD_user(g1234,gout));
partial_coherence4=mscohere(s1234,out,hanning(5120),2560,NFFT,fs);
%%
%%
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/8095.html
