Â
In this we are going to see Horizontal Redundancy Check, code generation and error detection using python.
input_data = input("\nEnter the Binary Data Sequence: ")
input_data = input_data.split()
input_data = [int(i) for i in input_data]
n = int(input('Enter The length of HRC Bits: '))
def convertToList(data):
values = []
for i in range(len(data)):
value = int(data[i])
values.append(value)
return values
def convertToString(T):
st = ''
for i in range(len(T)):
value = str(T[i])
st = st + value
return st
def divideData(data):
emp = []
if len(data) % n == 0:
x1 = list(data)
for i in range(0, len(data), n):
data = i
emp.append(x1[data:data + n])
return emp
else:
a1 = len(data) - n
a = n - a1
a2 = len(data) + a
x2 = data.zfill(a2)
return divideData(x2)
def calculateHRC(data):
dataCopy = data.copy()
list1 = [0]*n
a1 = []
for i in range(len(dataCopy)):
list2 = dataCopy[i]
a1 = a1 + list2
list2 = convertToList(list2)
parity = list(a ^ b for a, b in zip(list1, list2))
list1 = parity
emp1 = a1 + list1
print("\nThe HRC Parity Bit is : " + convertToString(list1))
T = convertToList(emp1)
return T
def checkParity(data):
check = [0]*n
for i in range(len(data)):
a3 = data[i]
check = list(a ^ b for a, b in zip(check, a3))
return check, len(check)
Data = divideData(input_data)
transmittedData = calculateHRC(Data)
print('\nTransmitted code is: ', convertToString(transmittedData))
print('--'*25)
receivedData = list(input('\nEnter the Recieved Code: '))
receivedData = convertToList(receivedData)
new = divideData(receivedData)
a, b = checkParity(new)
if [0]*b == a:
print('\nNo error')
T1 = receivedData[:-b]
print('\nThe data is', convertToString(T1))
else:
print('\nError Detected')
print('--'*25)
#ENJOY CODING
Post a Comment
FOR ANY DOUBTS AND ERRORS FEEL FREE TO ASK. YOUR DOUBTS WILL BE ADDRESSED ASAP