Data Communication network programs (DCN)
Data Communication network(DCN) Program to implement Walsh matrix
Program to implement Walsh matrix
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int matrix[32][32];
int n,i,j,flag=0,incre,start;
h1:
clrscr();
printf("\nEnter number of terminals (<=32) : ");
scanf("%d",&n);
if(n>32)
{
printf("\nNumber too large! ");
getch();
goto h1;
}
for(i=0;pow(2,i)<=n;i++)
{
if(pow(2,i)==n)
flag=1;
}
if(flag==0)
{
printf("\nInvalid Number! Must be a power of 2! ");
printf("\nEnter Again ");
getch();
goto h1;
}
h2:
printf("\nEnter Starting digit : ");
scanf("%d",&start);
if(abs(start)<1 || abs(start)>9)
{
printf("\nDigit must be in 1-9 range (Negative or Positive)");
goto h2;
}
matrix[0][0]=n;
incre=matrix[0][0];
while(incre!=1)
{
i=0;
while(i<n)
{
j=0;
while(j<n)
{
matrix[i][j]=(matrix[i][j])/2;
matrix[i][j+(incre/2)]=matrix[i][j];
matrix[i+(incre/2)][j]=matrix[i][j];
matrix[i+(incre/2)][j+(incre/2)]=-matrix[i][j];
j=j+incre;
}
i=i+incre;
}
incre=matrix[0][0];
}
printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
matrix[i][j]*=start;
}
}
printf("\nChip code for : \n");
for(i=0;i<n;i++)
{
printf("\nTerminal number %d : ",i+1);
for(j=0;j<n;j++)
{
if(matrix[i][j]>0)
printf(" +");
else
printf(" ");
printf("%d ",matrix[i][j]);
}
}getch();}
OUTPUT
Enter number of terminals (<=32) : 4
Enter Starting digit : 1
Chip code for :
Terminal number 1 : +1 +1 +1 +1
Terminal number 2 : +1 -1 +1 -1
Terminal number 3 : +1 +1 -1 -1
Terminal number 4 : +1 -1 -1 +1