对多路冗余信号进行剔除和融合处理

对于多路冗余信号data ,考虑两两信号之间的相关性,当相关性低于阈值corrThre 时,认为两路信号中有一路存在畸变,遍历所有信号,当某一路信号与其他numThre路信号对比均存在畸变时,则删除该信号。

function [vS, fS] = screenmultisignalbasecorr(data , corrThre , numThre)
%获得多路信号中的主成分
%   输入:
%   data 包含多路信号的二维数组,每一列是一路信号
%   corrThre 相关系数阈值,当某一路信号超过该阈值时,认为改路信号存在畸变
%   numThre 畸变数据阈值,当某一路信号与其他numThre路信号对比均存在畸变时,则删除该信号
%   输出:
%   vS 剔除data中畸变信号后剩余的有效信号
%   fS 有效信号的期望值
k = zeros(1,size(data,2));2
for i = 1 : 1 : size(data,2)
    for j = 1 : 1 : size(data,2)
        r(i,j) = corr(data(:,i),data(:,j));
        if r(i,j) < corrThre
            k(i) = k(i)+1;
        end
    end
end
vS = data(:,(find(k<=numThre)));
for i = 1 : 1 : size(vS,1)
    fS(i) = mean(vS(i,:));
end
fS = fS';
end

功能尚不完善,欢迎沟通交流。 E-mail:[email protected]

你可能感兴趣的:(算法)