Cyclic Redundancy Check (CRC) Solution

$30.00

Description

In this homework, you are asked to write a MATLAB program for the cyclic redundancy check (CRC) code, using CRC-32. Please download the data M(x) (inputdata.mat that contains a binary vector of 12000bits named “packet”) on ILMS.

1. Use the inputdata.mat M(x) and the generator of CRC-32

C(x) x

32

x

26

x

23

x

22

x

x

x

16

12

11

x

x

8

x

7

x

5

x

4

x

2

x 1

10

to find the transmitted message P(x) (as a binary vector of 12032 bits).

(Note: Do not use the function of CRC32 in MATLAB.)

2. Suppose that you are a middle man and you would like to corrupt the transmitted message P(x) by adding an undetectable error E(x) into P(x). A trivial way to do this is to let E(x)=C(x) and add C(x) to P(x). But this will change 15 bits in P(x) as there are 15 nonzero terms in C(x).

Can you find an E(x) that only needs to change at most 10 bits in P(x)?

(Your score for this problem will depend on the number of bits that you need to change in P(x).)

Note

Upload your results as two binary arrays P(x) and E(x) in a file

(hw2_YourID.mat, e.g., hw2_105060001.mat) that contains two binary vectors of 12032bits named “codepacket” (P(x)) and “error”( E(x) ) and the two source code files (hw2_YourID_1.m, e.g., hw2_105060001_1.m for generating P(x) and hw2_YourID_2.m, e.g., hw2_105060001_2.m for generating E(x)) to iLMS.

(Only three files will be uploaded to iLMS, hw2_YourID.mat, hw2_YourID_1.m, and hw2_YourID_2.m)