mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
52 lines
1.1 KiB
Matlab
52 lines
1.1 KiB
Matlab
function R = RS_ENC4(code,n,k,g,field)
|
|
|
|
%R = RS_ENC4(code,n,k,g,field)
|
|
|
|
%R is the parity block that is included
|
|
|
|
% m is the number of bits of each symbol
|
|
% n = 2^m-1 => the number of symbols transmitted
|
|
% k = the number of code symbols that is going to be codes to a n symbol message
|
|
% t = the number of errors that can be found + corrected
|
|
|
|
%Tripple-error-correcting Reed-Solomon code with symbols from GF(2^4)
|
|
% Lin & Costello p.175 and article: Reed_Solomon Codes by Joel Sylvester
|
|
|
|
%generator polynomial
|
|
|
|
%field = gftuple([-1:2^m-2]', m, 2);
|
|
|
|
%p = 2; m = 4;
|
|
%primpoly = [0 0 -Inf -Inf 0];
|
|
%field = gftuple([-1:p^m-2]',primpoly,p);
|
|
|
|
|
|
%Lin + Costello, p.171
|
|
|
|
|
|
%Encoder (Article)
|
|
%shift codeword by X^(n-k)
|
|
for ii = 1:n-k
|
|
shiftpol(ii) = -Inf;
|
|
end
|
|
shiftpol(n-k+1) = 0;
|
|
shiftcode = gfconv(code,shiftpol,field);
|
|
|
|
|
|
%divide shifted codeword by g(x)
|
|
[Q, R] = GFDECONV(shiftcode, g, field);
|
|
|
|
while length(R) < n-k
|
|
R = [R -inf];
|
|
end
|
|
|
|
%for ii = 1:n-k
|
|
% CON(ii) = -Inf;
|
|
% if length(R) >= ii
|
|
% CON(ii) = gfadd(R(ii),CON(ii),field);
|
|
% end
|
|
%end
|
|
|
|
%%concatenate the parity to the data
|
|
%message = [CON code];
|