|
D.10.2.15 decodeCode
Procedure from library decodegb.lib (see decodegb_lib).
- Usage:
- decodeCode(check, ntrials, [e]); check matrix, ntrials,e int
| - check is a parity check matrix for the code,
- ntrials is the number of received vectors per code to be
corrected.
- If e is given it sets the correction capacity explicitly. It
should be used in case one expects some lower bound,
otherwise the procedure tries to compute the real minimum distance
to find out the error-correction capacity
|
- Return:
- nothing;
Example:
| LIB "decodegb.lib";
int q=32; int n=25; int redun=n-11; int t=redun+1;
ring r=(q,a),x,dp;
matrix check=randomCheck(redun,n,1);
// correct 2 errors in using the code above, 3 trials
decodeCode(check,3,2);
==> check matrix:
==> 0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
==> 1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
==> 1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
==> 1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,
==> 0,0,0,1,1,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,
==> 0,0,1,0,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
==> 0,1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
==> 0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,
==> 1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,
==> 0,1,1,1,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
==> 0,0,1,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
==> 0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
==> 0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
==> 1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
==> The system is generated
==> Codeword:
==> 1,0,0,1,0,1,0,1,1,1,0,1,0,1,0,0,1,0,1,0,0,1,1,1,0
==> Received word:
==> 1,0,0,1,0,1,0,0,1,1,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0
==> Groebner basis of the QE system:
==> U(25)+a^25,
==> U(24)+a^20,
==> U(23)+a^28,
==> U(22)+a^7,
==> U(21)+a^29,
==> U(20)+a^19,
==> U(19)+a^23,
==> U(18)+a^19,
==> U(17)+a^21,
==> U(16)+a^9,
==> U(15)+a^14,
==> U(14)+a^25,
==> U(13)+a^28,
==> U(12)+a^14,
==> U(11)+a^30,
==> U(10)+a^27,
==> U(9)+a^26,
==> U(8)+a^7,
==> U(7)+a^14,
==> U(6)+a^15,
==> U(5)+a^13,
==> U(4)+a^7,
==> U(3)+a^22,
==> U(2)+a^11,
==> U(1),
==> V(2)+a^11,
==> V(1)+a^24
==> Codeword:
==> 0,0,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,0,0,0,0,1,0,0
==> Received word:
==> 0,0,0,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,0,0,0,0,1,1,0
==> Groebner basis of the QE system:
==> U(25)+a^6,
==> U(24)+a^16,
==> U(23)+a^8,
==> U(22)+a^2,
==> U(21)+a^8,
==> U(20)+a^13,
==> U(19)+a,
==> U(18)+a^12,
==> U(17)+a^29,
==> U(16)+a,
==> U(15)+a^21,
==> U(14)+a^16,
==> U(13)+a^3,
==> U(12)+a^4,
==> U(11)+a^4,
==> U(10)+a^16,
==> U(9)+a^30,
==> U(8)+a^26,
==> U(7)+a^17,
==> U(6)+a^2,
==> U(5)+a^15,
==> U(4)+a^24,
==> U(3)+a^23,
==> U(2)+a^27,
==> U(1),
==> V(2)+a^27,
==> V(1)+a^25
==> Codeword:
==> 0,0,0,1,0,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,0,1
==> Received word:
==> 0,0,0,1,1,1,0,1,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,0,1
==> Groebner basis of the QE system:
==> U(25)+a^7,
==> U(24)+a^21,
==> U(23)+a^5,
==> U(22)+a^9,
==> U(21)+a^21,
==> U(20)+a^11,
==> U(19)+a^22,
==> U(18)+a^14,
==> U(17)+a,
==> U(16)+a^11,
==> U(15)+a^13,
==> U(14)+a^10,
==> U(13)+a^19,
==> U(12)+a^18,
==> U(11)+a^26,
==> U(10)+a^11,
==> U(9)+a^16,
==> U(8)+a^22,
==> U(7)+a^25,
==> U(6)+a^13,
==> U(5)+a^8,
==> U(4)+a^28,
==> U(3)+a^4,
==> U(2)+a^2,
==> U(1),
==> V(2)+a^2,
==> V(1)+a^11
|
|