Tuesday, 30 April 2013

CN LAB CRC (16 BIT) PROGRAM


#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,n,g,a,arr[20],gen[20],b[20],q[20],s;
printf("\n\n\tTransmitter side:");
printf("\n\n\tEnter no. of data bits:");
scanf("%d",&n);
printf("\n\n\tEnter data:");
for(i=0;i< n;i++)
scanf("%d",&arr[i]);
printf("\n\n\tEnter size of generator:");
scanf("%d",&g);
do{
printf("\n\n\tEnter generator:");
for(j=0;j< g;j++)
scanf("%d",&gen[j]);
}
while(gen[0]!=1);
printf("\n\n\tThe generator matrix:");
for(j=0;j< g;j++)
printf("%d",gen[j]);
a=n+(g-1);
printf("\n\n\tThe appended matrix is:");
for(i=0;i< j;++i)
arr[n+i]=0;
for(i=0;i< a;++i)
printf("%d",arr[i]);
for(i=0;i< n;++i)
q[i]= arr[i];
for(i=0;i< n;++i)
{
if(arr[i]==0)
{
for(j=i;j< g+i;++j)
arr[j] = arr[j]^0;
}
else{
arr[i] = arr[i]^gen[0];
arr[i+1]=arr[i+1]^gen[1];
arr[i+2]=arr[i+2]^gen[2];
arr[i+3]=arr[i+3]^gen[3];
}
}
printf("\n\n\tThe CRC is :");
for(i=n;i < a;++i)
printf("%d",arr[i]);
s=n+a;
for(i=n;i< s;i++)
q[i]=arr[i];
printf("\n");
for(i=0;i< a;i++)
printf("%d",q[i]);
}

// EXPECTED OUTPUT :
Transmitter side:
Enter no. of data bits:8
Enter data:1 0 1 0 0 0 0 1
Enter size of generator:4
Enter generator:1 0 0 1

The generator matrix:1001
The appended matrix is:10100001000
The CRC is :111
10100001111
//

No comments:

Post a Comment