Why does the LDPC encoder block error out with certain sparse parity check matirces Communications Blockset 4.0 (R2008a)?

1 view (last 30 days)
Some sparse matrices will cause the error
Cannot register run-time parameter for dialog parameter 7 for S-function
'scomldpcencode' in 'ldpcerror/LDPC Encoder/LDPC Encoder' because the
dialog parameter is empty.
when used as the Parity Check Matirx parameter of the LDPC encoder block.
The same error is not thrown when using the command line interface.
Reproduction steps:
[parmat,genmat] = hammgen(3);
checkmat=sparse(genmat);
checkmat, used in the command line API works:
enc = fec.ldpcenc(checkmat); % Construct a default LDPC encoder object
% Generate and encode a random binary message
msg = randint(1, enc.NumInfoBits, 2);
codeword = encode(enc, msg);
disp(['codeword = ' num2str(codeword(1:length(codeword)))]);
But if checkmat is used in the LDPC encoder block the error above is thrown.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 3 Aug 2010
The parity check matrix specified for the LDPC block is decomposed, in the MATLAB code mask initialization function, into several submatrices, which are then passed as parameters into the S-functions below the mask. In the cases where the block errors out, one of those submatrices was empty due to the sparseness of the parity check matrix 'H'.
Such a condition is a clear indication that the parity check matrix is poorly formed, and will not provide very good BER performance. Even so, the block should run with the poorly formed H matrix just as the command line API does. The reason it errors out is because it uses Simulink run-time parameters (RTPs) to try to pass the parameter to other blocks that are beneath the mask. Simulink does not allow empty matrices to be used as a run-time parameters.
The best way to ensure that the LDPC block does not error out is to use a robust parity check matrix.

More Answers (0)

Tags

No tags entered yet.

Products


Release

R2008a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!