ডিজিটাল ডেটাতে ত্রুটি সনাক্তকরণের জন্য সিআরসি ব্যবহার করা হয়, এটি ট্রান্সমিশন ত্রুটি সনাক্ত করার একটি ভাল কৌশল। এই কৌশলে প্রধানত বাইনারি বিভাজন প্রয়োগ করা হয়।
এই কৌশলে, সাইক্লিক রিডানড্যান্সি চেক বিটগুলি উপস্থিত থাকে যা অপ্রয়োজনীয় বিটের একটি ক্রম, এই বিটগুলি ডেটা ইউনিটের শেষে যুক্ত করা হয় যাতে ফলস্বরূপ ডেটা ইউনিট একটি সেকেন্ড দ্বারা ঠিক বিভাজ্য হয় যা পূর্বনির্ধারিত বাইনারি সংখ্যা।
গন্তব্যের দিকে, ইনকামিং ডেটা একই সংখ্যা দ্বারা ভাগ করা হয়, যদি অবশিষ্ট না থাকে তাহলে ধরে নেওয়া হয় যে ডেটা সঠিক এবং এটি গ্রহণ করার জন্য প্রস্তুত৷
একটি অবশিষ্টাংশ নির্দেশ করে যে পরিবর্তনের সময় কিছু ঘটে, ডেটা ইউনিট ক্ষতিগ্রস্ত হয়েছে। তাই এই ডেটা ইউনিট গ্রহণ করা হয় না৷
৷উদাহরণ কোড
frompycrc.crclib import * def main(): #----------------------------------------------------------------------------- #Sender Side div = str(input("Input divisor in binary type: ")) #user_dataword = str(raw_input("Input dataword in binary type: ")) userdataword = '1001' print ("\nSender:") sen = Sender(bin2dec(userdataword), div) sen.send() print ("arg_dataword:", sen.arg_dataword2) print ("remainder:", sen.remainder2) print ("codeword:", sen.codeword2) #----------------------------------------------------------------------------- #Channel print ("\nChannel:") ch = Channel(sen.codeword) print ("Through to the channel get channel codeword:", dec2bin(ch.ch_codeword)) #----------------------------------------------------------------------------- #Receiver Side print ("\nReceiver:") rcv = Receiver(ch.ch_codeword, div) rcv.receive() print ("syndrome:", rcv.syndrome2) print ("Discard or not?", rcv.discard) print ("rx_dataword:", rcv.rx_dataword2) if __name__ == '__main__': main()
আউটপুট
Sender Input dataword in binary type 1010000 arg_dataword:1010000000 remainder: 011 codeword:1010000011 Receiver syndrome:1010000011 Discard or not? N rx_dataword:1010000011