Saturday, June 25, 2011

Shortest Path Routing [Matlab]


clc;
clear all;
n=input('enter the number of nodes: ');
conn=input('enter the connected nodes: ');
delarr=ones(n);
delarr=10000*delarr;
len=length(conn);
delay2=randint(1,(len/2),[10 50]);
k=1;
for i=1:2:len;
    delarr(conn(i),conn(i+1))=delay2(k);
    delarr(conn(i+1),conn(i))=delay2(k);
    k=k+1;
end
for i=1:n
    delarr(i,i)=0;
end
disp('....Delay time.....');
disp(delarr);
gr=delarr;
v=[1:n];
p=perms(v);
start=input('enter the source node: ');
dest=input('enter the destination node: ');

%finding all possible paths and thier delays
paths=zeros(factorial(n-1),n);
index=0;
for i=1:factorial(n);
    if p(i,1)~=start;
        continue;
    end
    de=0;
    temp=p(i,1);
    index=index+1;
    paths(index,1)=temp;
    for j=2:n;
        if(gr(temp,p(i,j))>0 && gr(temp,p(i,j))<1000);
            flag=1;
            de=de+gr(temp,p(i,j));
            temp=p(i,j);
            paths(index,j)=temp;
            if temp == dest
                delay(index)=de;
                break;
            end
        else
            flag=0;
            index=index-1;
            break;
        end;
    end;
end;
%removing the repeated paths
j=1;
delay1(j)= delay(1);
paths1(j,:) = paths(1,:);
for i=2:length(delay);
    if delay(i-1)~=delay(i);
        j=j+1;
        delay1(j)=delay(i);
        paths1(j,:)=paths(i,:);
        shortind=j;
    end;
end;

%displaying all paths and also the delay
for i=1:length(delay1);
    for j=1:n;
        if paths1(1,j)~=0;
            fprintf('%d->',paths1(i,j));
        else
            break;
        end;
    end;
    fprintf('\b\b:delay=%d\n',delay1(i));
end;



temp=min(delay1(1));

for i=1:length(delay1)
    if delay1(i)==temp
        break;
    end
end

disp('');
for j=1:n
    if paths1(i,j)~=0
       
    fprintf('%d->',paths1(i,j));
    end
end
fprintf('\b\b\t\t delay=%d\n',delay1(i));

Selective Repeat Protocol [Matlab]


clc;
clear all;
n=input('Enter the number of frames: ');
w=input('Window Size: ');
pt=w+1;
flag=0;
ext=0;
flag1=0;
flag2=0;
a=1:n;
for i=1:w
fprintf('Frame %d Transferred\n',a(i));
end
while flag==0
s=randint(1,1,10);
if s>3
fprintf('PAK of frame %d received\n',a(pt-w));
else
fprintf('NAK of frame %d received\n',a(pt-w));
ext=ext+1;
for i=n+ext:-1:pt+1
a(i)=a(i-1);
end
a(pt)=a(pt-w);
end
fprintf('Frame %d Transferred\n',a(pt));
if a(pt)==n
flag=1;
end
pt=pt+1;
end
k=pt-w;
while flag2==0
test=randint(1,1,[1 7]);
if flag1==1
fprintf('Frame %d Transmitted\n',a(k));
flag1=0;
end
if test>3
fprintf('PAK of frame %d received\n',a(k));
k=k+1;
else
fprintf('NAK of frame %d received\n',a(k));
flag1=1;
end
if k==n+ext+1
flag2=1;
end
end

Generation of PN sequence and verification of randomness properties [Matlab]


clc;
clear all;
len = input ('Enter the length of the sequence: ');
disp ('Generator Polynomial Example [1 0 0 1...1] ');
poly = input ('Enter the polynomial: ');
disp ('Initial state Example [1 0 0 1...0]');
ini = input ('Enter the initial state: ');
ff = log2(len+1);
%pn sequence generation
a = zeros(len,ff);
a(1,(1:ff)) = ini ;
for i = 1:(len-1)
x = 0;
for j = 2:(ff+1)
if (poly (1,j) == 1)
x = xor (x,a(i,(j-1)));
end
end
a ((i+1),1:ff) = circshift(a(i,1:ff),[0 1]);
a ((i+1),1) = x;
end
for i = 1:len
h(1,i) = a(i,ff);
end
fprintf ('The generated sequence is: \n');
disp (h);
%balance property
check = 0;
one = 0;
zero = 0;
for i = 1:len
if ( h(1,i) == 0)
zero= zero+1;
else
one = one+1;
end
end
disp ('BALANCE PROPERTY');
disp ('Number of ones: ');
disp (one);
disp ('Number of zeros: ');
disp (zero);
if ((one-zero) == 1)
fprintf ( 'Balance property is satisfied\n\n');
else
fprintf ( 'Balance property is not satisfied\n\n');
check = 2;
end
%autocorelation property
while (check == 0)
for i= 1:len
y(i,:) = xor (h,circshift(h,[0 i]));
end
for i = 1:len
one = 0;
zero = 0;
for j = 1:len
if ( y(i,j) == 0 );
zero = zero+1;
else
one = one+1;
end
end
z(i,1) = zero - one;
end
for i = 1: (len-1)
g(i,1) = -1;
end
g (len,1) = len;
disp ('AUTOCORRELATION PROPERTY');
disp (z);
t=1:1:(len);
plot(t,z);
if(z == g);
fprintf ( 'Auto correlation property is satisfied\n\n');
check = 3;
else
fprintf ( 'Auto correlation property is satisfied\n\n');
check = 2;
end
end
% run property
while( check == 3);
runs = ((len+1)/2);
u = ff;
r = zeros (1,u);
count = 1;
for i = 1:len-1
if (h(1,i) == h(1,i+1))
count = count+1;
else
r(1,count) = r(1,count)+1;
count = 1;
end
end
r(1,count) = r(1,count)+1;
s = zeros(1,u);
for i = 1:(u-1)
s(1,i) = runs / (2.^i) ;
end
s(1,u) = 1;
disp ('RUN PROPERTY');
fprintf ('Runs\t\t\t Run Length \n');
for i = 1:u
fprintf ('%d\t\t\t\t %d\n',r(1,i),i);
end
if (r == s)
fprintf ('Run Property is satisfied\n\n');
check = 4;
else
fprintf ('Run Property is not satisfied\n\n');
check = 2;
end
end
if (check == 2)
disp ('The given sequence is not a PN sequence');
else
disp ('The given sequence is a PN sequence');
end

Google : The top most search engine

Google : MAGIC BOX

nRelate - Posts and Homepage

LinkWithin

Related Posts Plugin for WordPress, Blogger...

Which is the toughest subject ?