You are on page 1of 3

# ECE 519 Take Home Spring 2011

Instructions:

## 3. If in doubt about any question, make suitable assumptions and proceed.

4. As there are other sections taking the exam at different times during the week, do NOT
comment about the exam after taking it, as it will affect your own grade.

## 5. No points will be awarded unless result is supported by the corresponding detailed

derivation.

6. Work independently.

## 7. Submit the softcopy to digital dropbox (no hard copies accepted).

Due Date: Wednesday, 04/27/2011, before noon (central time), hardcopy is not accepted. (
For the sections out of U.S.A., the deadline is 04/27/2011, midnight (central time). Deadlines are
final, no extensions. )
Work Independently
Question 1 (50 points)

For a (15,7) BCH code in 2 , which can correct two errors, given the received vector

r = (1 0 0 1 1 0 0 1 0 1 0 0 0 0 0) = 1 + X 3 + X 4 + X 7 + X 9

a) (20 points) Use three methods-Berlekamp, Euclid, Peterson to find the error location polynomial
.
b) (10 points) Find the roots of .
c) (10 points) Find the error pattern polynomial e(x).
d) (10 points) Find the corrected codeword.

## Question 2 (50 points)

a) (25 points) Find the generator polynomial g(X) for a Reed-Solomon code with t = 2 in 2 .
b) (25 points) Given the received code word

where , , ,…, = [ 48, 54, 6, 44, 53, 26, 14, 49, 5, 32, 11, 41, -∞, 50, 47, 34, 10, 16, 42,
41, 48, 49, 44, 47, 23, 19, 45, 60, 2, -∞, 60, 32, 55, 30, 13, 43, 57, 23, 16, 43, 30, 26, 45, 50, 53, 13,
42, 4, 11, 4, 55, 57, 34, 59, 59, 10, 19, 14, 0, 27, 6, -∞, 2 ], 1, 0.
Decode the r(X) and find the corrected code word using three methods-Berlekamp, Euclid, and
Peterson algorithms. For Berlekamp method, the error values must be evaluated with equation
7.35 in 2nd edition textbook or equation 6.35 in 1st edition textbook; for Euclid and Peterson
algorithms, the error values must be evaluated with Peterson algorithm. ( Hint: there is a small
Matlab program in the Appendix that can help you calculate the syndromes. )

Note:

Do not skip any step in your derivation. Results without sufficient support will not
be credited. Matlab program can only be used for syndrome calculation.

1
Work Independently

Appendix

The following program can obtain . The example code in this program has a length of 7,
, , ,…, 48, 54, , 0, 47, 34, 10  .  It is defined in field of  2 . The syndrome
element evaluated is  .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Program for calculating syndrome element
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;

## % define the power for field GF(2^pow_m)

pow_m = 3;
% define the length of the code
len = 7;
% define the powers of the code polynomial coefficients
code_power = [48, 54, -Inf, 0, 47, 34, 10];
% obtain the alpha in the field of GF(2^pow_m)
alpha = gf(2,pow_m);
% define the field element (alpha^n) used to obtain syndrome element
beta_n = alpha^2;

## % generate the table for polynomial to power mapping

tp = gftuple([-1:2^pow_m-2].',pow_m,2);
pow_vect = 2.^([pow_m-1:-1:0]);
gf_tab = fliplr(tp)*pow_vect.';
[tmp,gf_poly2pow_tab] = sort(gf_tab);
gf_poly2pow_tab = gf_poly2pow_tab-2;
gf_poly2pow_tab(1) = -Inf;

code = gf(zeros(1,len),pow_m);
coef_idx = find(code_power~=-Inf);
code(coef_idx) = alpha.^code_power(coef_idx);
zero_idx = find(code_power==-Inf);
code(zero_idx) = code(zero_idx)*gf(0,pow_m);
x_vect = beta_n.^[0:len-1];
S_n = x_vect*code.';
% obtain the power of syndrome (S_n = alpha^power)
S_n_disp = gf_poly2pow_tab(round(double(S_n.x))+1);
fprintf('the power of the syndrome element (alpha^power) is : %d\n', S_n_disp);