| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| | |
|
|\| |
|
| |\ |
|
| | |
| | |
| | |
| | | |
Class constants need to be defined in the C++ source or linker issues occur.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
gr-vocoder/CMakeLists.txt
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
CPack is not used, unmaintaned, and broken.
This does not eliminate any MSVC build functionality.
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | |/
| |/| |
|
|\ \ \
| |_|/
|/| | |
|
| |/ |
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Remove unused, uncompilable headers in gr-atsc or
gr-vocoder
* Don't install build-time only header in gr-qtgui
* Install missing headers in gr-fec
|
|\| |
|
| | |
|
|/ |
|
|
|
|
| |
Replace these lines using GSL to perform the matrix multiplication with a call to the mult_matrices_mod2 function, just to be concise.
|
| |
|
| |
|
| |
|
|
|
|
| |
There's no reason to make the G matrix a data member of this class and keep it around in memory. It's not used for encoding or decoding, so once we've used G to get G' and H, we can free that memory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First: if trying to use n_2400_k_1198_gap_33.alist, the following error will be returned:
Error in set_parameters_for_encoding while finding inverse_phi: Error in calc_inverse_mod2(): The matrix inverse found is not valid.
Tip: verify that the correct gap is being specified for this alist file.
Traceback (most recent call last):
.
.
.
return _fec_swig.ldpc_H_matrix_make(*args, **kwargs)
RuntimeError: set_parameters_for_encoding
What's happening is that when this matrix is read in, various submatrices are set to be used later for encoding. Then the inv(phi) matrix is calculated. This matrix must be non-singular so that the inv can be found - it's a requirement for this particular matrix format. Anyway, the inverse found is invalid, for some reason. I tried to perform some matrix manipulations to get it to a usable state, where the phi matrix is not nonsingular, but no joy. So, this matrix isn't usable with the encoder as-is, and should come out of the matrix collection.
-----
Second: I think the matrix n_2400_k_1198_gen_matrix.alist was intended to be the corresponding generator matrix, in systematic form, for the matrix mentioned above. However, it's the wrong size to be so - it's 1198 x 2400, which is the same size as the matrix in n_2400_k_1198_gap_33.alist, and that's wrong. I suspect that this matrix was created using python function getSystematicGmatrix, which was buggy to use for this purpose (I have just submitted some fixes to those python functions).
|
| |
|
|
|
|
| |
The help/docstring for this function was misleading and confusing even to myself!
|
|
|
|
|
|
|
|
|
| |
Minor fix to address this error:
Traceback (most recent call last):
File "Generate_LDPC_matrix.py", line 78, in <module>
parity_check_matrix.write_alist_file(alist_filename,bestH)
AttributeError: LDPC_matrix instance has no attribute 'write_alist_file'
|
|
|
|
|
|
|
|
|
|
|
| |
Minor fix to address this error:
Traceback (most recent call last):
File "Generate_LDPC_matrix.py", line 63, in <module>
[bestH,g] = get_best_matrix(newH,100)
File "/home/tracie/pybombs/src/gnuradio/gr-fec/python/fec/LDPC/Generate_LDPC_matrix_functions.py", line 616, in get_best_matrix
[betterH, gap, t]
NameError: global name 'betterH' is not defined
|
|
|
|
|
|
|
|
| |
Adding verbosity as an argument to this function, to address this error:
File "/home/tracie/pybombs/src/gnuradio/gr-fec/python/fec/LDPC/Generate_LDPC_matrix_functions.py", line 478, in inv_mod2
if verbose:
NameError: global name 'verbose' is not defined
|
|
|
|
|
|
|
|
|
|
| |
I think that declaring these temporary matrix variables in the header (and then allocating memory for them in the constructor) is problematic when using parallelism = 1 or 2, as is the case when using the BER Curve Gen./Sink blocks.
When parallelism is in effect, there are multiple "sub" flowgraphs in process and therefore multiple, probably very-close-to-simultaneous, calls to encode(). I think what's happening is that these temp matrices are being overwritten in memory by the next call to encode() before the current call to encode() is done with them.
I know that such repeated allocate/free calls in the encode() function is not ideal or efficient, I can't think of a better way to do this (for now) and allow for parallelism.
With this change, these matrices are no longer member variables of the class, so I've removed the "d_" prefix from the variable names.
|
|
|
|
| |
GRC was calling the wrong make function for the case when parallelism was set to 1 or 2. I think this is just a hold over oops from when we were renaming these classes prior to pull request #660.
|
|
|
|
| |
Adding documentation regarding parallelism configuration requirements for using the BER Curve Gen. block. Also adding a FIXME note so that we can better address this in the future. These notes are my understanding after getting clarification from Tom on how the parallelism feature behaves in this case.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As-is, this flowgraph gives a "Missing Block" error. This is because it's looking for variable_ldpc_gen_mtrx_encoder_def, which we changed the name of during integration prior to pull request #660. I've updated this example GRC file to reflect the correct name of the intended block, variable_ldpc_encoder_G_def, which gets rid of the "Missing Block" error.
With this correction, the flowgraph can be executed, but it gives me the following error:
return _fec_swig.ldpc_encoder_make(*args, **kwargs)
TypeError: in method 'ldpc_encoder_make', argument 1 of type 'std::string'
I will address this separately as I don't think the error is caused by this GRC file.
Also, I've changed the block name of the other LDPC encoder definition block in this flowgraph to be the actual block that I intended to use.
|
|
|
|
|
|
| |
I think that these lines were causing this error: AttributeError: 'ldpc_H_matrix_sptr' object has no attribute 'get_base_ptr'
so changing from get_base_ptr to get_base_sptr
|
| |
|
|
|
|
| |
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
gr-fec/grc/fec_block_tree.xml
gr-fec/include/gnuradio/fec/CMakeLists.txt
gr-fec/swig/fec_swig.i
|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
gr-fec/grc/fec_block_tree.xml
gr-fec/include/gnuradio/fec/CMakeLists.txt
gr-fec/swig/fec_swig.i
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Conflicts:
gr-fec/python/fec/polar/channel_construction_bec.py
|
| | |
|
|/ |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
GSL didn't introduce gsl_matrix_equal until 1.15 and GNU Radio only
requires 1.10. This is an attempt to calculate if the two matrices are
equal by subtracting one from the other and seeing if the max element
is greater than 0 (all elements should be 0 if they are the same
matrix).
|
| |
| |
| |
| | |
Make it so that we don't require matplotlib just to run QA tests.
|
|/ |
|
| |
|
|
|
|
|
| |
We can't use a raw pointer, so using a shared_ptr to the base class,
instead, from the H and G matrices.
|