sepfilter.m
来自「用于盲信号分离的独立分量分析ICA算法」· M 代码 · 共 45 行
M
45 行
function [BT1,BT2]=sepfilter(S,P,V,NFFT)NF = NFFT/2+1;for f=1:NF, f1=2*f-1; f2=2*f; if S(f)==1, TMPV=inv(V(f1:f2,:)); if P(f)==1, TMPV=flipud(TMPV); end TMPINV=inv(TMPV); BF1=TMPINV(:,1)*TMPV(1,:); BF2=TMPINV(:,2)*TMPV(2,:); else if P(f)==0, BF1=eye(2); BF2=zeros(2); else BF1=zeros(2); BF2=eye(2); end end BF1_11(f)=BF1(1,1); BF1_12(f)=BF1(1,2); BF1_21(f)=BF1(2,1); BF1_22(f)=BF1(2,2); BF2_11(f)=BF2(1,1); BF2_12(f)=BF2(1,2); BF2_21(f)=BF2(2,1); BF2_22(f)=BF2(2,2);endBF1_11(NF+1:NFFT)=conj(fliplr(BF1_11(2:NF-1)));BF1_12(NF+1:NFFT)=conj(fliplr(BF1_12(2:NF-1)));BF1_21(NF+1:NFFT)=conj(fliplr(BF1_21(2:NF-1)));BF1_22(NF+1:NFFT)=conj(fliplr(BF1_22(2:NF-1))); BF2_11(NF+1:NFFT)=conj(fliplr(BF2_11(2:NF-1)));BF2_12(NF+1:NFFT)=conj(fliplr(BF2_12(2:NF-1)));BF2_21(NF+1:NFFT)=conj(fliplr(BF2_21(2:NF-1)));BF2_22(NF+1:NFFT)=conj(fliplr(BF2_22(2:NF-1))); BT1(1,:)=ifft(BF1_11); BT1(2,:)=ifft(BF1_12);BT1(3,:)=ifft(BF1_21); BT1(4,:)=ifft(BF1_22);BT2(1,:)=ifft(BF2_11); BT2(2,:)=ifft(BF2_12);BT2(3,:)=ifft(BF2_21); BT2(4,:)=ifft(BF2_22); BT1=real(BT1); BT2=real(BT2);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?