Code covered by the BSD License  

Highlights from
Adaptive Fault Masking With Incoherence Scoring

image thumbnail
from Adaptive Fault Masking With Incoherence Scoring by Baykant ALAGOZ
Matlab simulation environment for testing various voting algorithms

[Vmax,Vind,T,MajorityVoterOutput]=MajorityVotingNbit(y1,y2,y3,y4,y5,a)
function [Vmax,Vind,T,MajorityVoterOutput]=MajorityVotingNbit(y1,y2,y3,y4,y5,a)
% This fuction finds Majority Group Vm described in Referrence [12] and
% in the paper (page:4 Title:Majority Voter Using Distance Metric)
% a:consensus threshold.
% y1,y2,y3,y4,y5: bit vektors
a11=1;
a12=inCloseDist(y1,y2,a);
a13=inCloseDist(y1,y3,a);
a14=inCloseDist(y1,y4,a);
a15=inCloseDist(y1,y5,a);
a22=1;
a23=inCloseDist(y2,y3,a);
a24=inCloseDist(y2,y4,a);
a25=inCloseDist(y2,y5,a);
a33=1;
a34=inCloseDist(y3,y4,a);
a35=inCloseDist(y3,y5,a);
a44=1;
a45=inCloseDist(y4,y5,a);
a55=1;

T1=a11+a12+a13+a14+a15;
T2=a12+a22+a23+a24+a25;
T3=a13+a23+a33+a34+a35;
T4=a14+a24+a34+a44+a45;
T5=a15+a25+a35+a45+a55;
T=[ T1 T2 T3 T4 T5];
maxValue=0;

if T1>maxValue
maxValue=T1;
MajorityVoterOutput=y1;
end
if T2>maxValue
maxValue=T2;
MajorityVoterOutput=y2;
end
if T3>maxValue
maxValue=T3;
MajorityVoterOutput=y3;
end
if T4>maxValue
maxValue=T4;
MajorityVoterOutput=y4;
end
if T5>maxValue
maxValue=T5;
MajorityVoterOutput=y5;
end

maxValue;
Vmax=[];
Vind=[];

if maxValue==1
   maxValue=0; 
end

Vmax=[];
Vind=[];

if T1==maxValue
    if a11==1
        Vmax=cat(1,Vmax,y1);
        Vind=cat(2,Vind,1);
    end
    if a12==1
        Vmax=cat(1,Vmax,y2);
        Vind=cat(2,Vind,2);
    end 
    if a13==1
        Vmax=cat(1,Vmax,y3);
        Vind=cat(2,Vind,3);
    end
    if a14==1
        Vmax=cat(1,Vmax,y4);
        Vind=cat(2,Vind,4);
    end
    if a15==1
        Vmax=cat(1,Vmax,y5);
        Vind=cat(2,Vind,5);
    end
elseif T2==maxValue
    if a12==1
        Vmax=cat(1,Vmax,y1);
        Vind=cat(2,Vind,1);
    end
    if a22==1
        Vmax=cat(1,Vmax,y2);
        Vind=cat(2,Vind,2);
    end 
    if a23==1
        Vmax=cat(1,Vmax,y3);
        Vind=cat(2,Vind,3);
    end
    if a24==1
        Vmax=cat(1,Vmax,y4);
        Vind=cat(2,Vind,4);
    end
    if a25==1
        Vmax=cat(1,Vmax,y5);
        Vind=cat(2,Vind,5);
    end
elseif T3==maxValue
    if a13==1
        Vmax=cat(1,Vmax,y1);
        Vind=cat(2,Vind,1);
    end
    if a23==1
        Vmax=cat(1,Vmax,y2);
        Vind=cat(2,Vind,2);
    end 
    if a33==1
        Vmax=cat(1,Vmax,y3);
        Vind=cat(2,Vind,3);
    end
    if a34==1
        Vmax=cat(1,Vmax,y4);
        Vind=cat(2,Vind,4);
    end
    if a35==1
        Vmax=cat(1,Vmax,y5);
        Vind=cat(2,Vind,5);
    end
elseif T4==maxValue
    if a12==1
        Vmax=cat(1,Vmax,y1);
        Vind=cat(2,Vind,1);
    end
    if a22==1
        Vmax=cat(1,Vmax,y2);
        Vind=cat(2,Vind,2);
    end 
    if a34==1
        Vmax=cat(1,Vmax,y3);
        Vind=cat(2,Vind,3);
    end
    if a44==1
        Vmax=cat(1,Vmax,y4);
        Vind=cat(2,Vind,4);
    end
    if a45==1
        Vmax=cat(1,Vmax,y5);
        Vind=cat(2,Vind,5);
    end
elseif T5==maxValue
    if a15==1
        Vmax=cat(1,Vmax,y1);
        Vind=cat(2,Vind,1);
    end
    if a25==1
        Vmax=cat(1,Vmax,y2);
        Vind=cat(2,Vind,2);
    end 
    if a35==1
        Vmax=cat(1,Vmax,y3);
        Vind=cat(2,Vind,3);
    end
    if a45==1
        Vmax=cat(1,Vmax,y4);
        Vind=cat(2,Vind,4);
    end
    if a55==1
        Vmax=cat(1,Vmax,y5);
        Vind=cat(2,Vind,5);
    end
end

Contact us at files@mathworks.com