summaryrefslogtreecommitdiff
path: root/gr-fec
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into nextJohnathan Corgan2016-10-131-0/+3
|\
| * Throw an exception if the given K and R are not supported.Clayton Smith2016-10-131-0/+3
| |
* | Merge branch 'master' into nextJohnathan Corgan2016-08-162-1/+3
|\|
| * Merge remote-tracking branch 'josh/3710_win_fixes' into maintJohnathan Corgan2016-08-162-1/+3
| |\
| | * move fec polar decoder D_LLR_FACTOR into cppJosh Blum2016-08-062-1/+3
| | | | | | | | | | | | Class constants need to be defined in the C++ source or linker issues occur.
* | | Merge remote-tracking branch 'github/nuke-cpack' into nextJohnathan Corgan2016-08-0312-55/+10
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: gr-vocoder/CMakeLists.txt
| * | | cmake: nuke cpack from existenceJohnathan Corgan2016-08-0312-55/+10
| | | | | | | | | | | | | | | | | | | | | | | | CPack is not used, unmaintaned, and broken. This does not eliminate any MSVC build functionality.
* | | | Merge remote-tracking branch 'github/require-logging' into nextJohnathan Corgan2016-08-032-14/+2
|\ \ \ \ | |/ / / |/| | |
| * | | cmake: remove ENABLE_GR_LOG and require log4cppJohnathan Corgan2016-06-262-14/+2
| | |/ | |/|
* | | Merge remote-tracking branch 'pinkavaj/argparse-filter-01' into nextJohnathan Corgan2016-08-011-30/+14
|\ \ \ | |_|/ |/| |
| * | fec: polar_channel_construction replace OptionParser by ArgumentParser + cleanupJiří Pinkava2016-06-281-30/+14
| |/
* / Fix linking GSL in gr-fecStephen Larew2016-07-092-1/+2
|/
* Merge branch 'maint'Johnathan Corgan2016-06-231-0/+5
|\
| * build: clean up header installation across treeA. Maitland Bottoms2016-06-231-0/+5
| | | | | | | | | | | | | | | | | | * 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
* | Merge branch 'maint'Johnathan Corgan2016-06-205-5/+5
|\|
| * Spelling fixes throughout the tree.A. Maitland Bottoms2016-06-205-5/+5
| |
* | grc: assign all in-tree blocks to module 'Core'Sebastian Koslowski2016-05-271-1/+1
|/
* gr-fec, LDPC: use mult_matrices_mod2 functiontracierenea2016-04-071-11/+2
| | | | Replace these lines using GSL to perform the matrix multiplication with a call to the mult_matrices_mod2 function, just to be concise.
* gr-fec, LDPC: correct the name of the python function calledtracierenea2016-04-071-1/+1
|
* gr-fec: free memory used for the LDPC H matrix in the destructortracierenea2016-04-071-0/+2
|
* gr-fec: free memory for info word in LDPC gen mtrx encodertracierenea2016-04-061-0/+1
|
* gr-fec: free memory for G matrix at end of constructortracierenea2016-04-062-8/+6
| | | | 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.
* gr-fec: Removing 2 bad matrices from the LDPC alist file collectiontracierenea2016-04-063-7207/+1
| | | | | | | | | | | | | | | | | | | 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).
* gr-fec: LDPC python - adding a handy functiontracierenea2016-04-051-0/+33
|
* gr-fec: LDPC python function - making a better docstringtracierenea2016-04-051-5/+9
| | | | The help/docstring for this function was misleading and confusing even to myself!
* gr-fec: LDPC python function - addressing an attribute errortracierenea2016-04-051-1/+1
| | | | | | | | | 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'
* gr-fec: LPDC python function - addressing an "undefined" errortracierenea2016-04-051-1/+1
| | | | | | | | | | | 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
* gr-fec: LDPC python function - addressing an "undefined" errortracierenea2016-04-051-1/+1
| | | | | | | | 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
* gr-fec: Fix memory allocation issue during encoding.tracierenea2016-03-282-39/+48
| | | | | | | | | | 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.
* gr-fec: Address make error when parallelism = 1 or 2.tracierenea2016-03-271-2/+2
| | | | 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.
* gr-fec: Adding doc in BER Curve Gen. block re: parallelism.tracierenea2016-03-272-0/+15
| | | | 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.
* gr-fec: Address missing block error in example GRC file.tracierenea2016-03-271-13/+9
| | | | | | | | | | | | | 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.
* gr-fec: correcting function name in GRC xmltracierenea2016-03-271-3/+3
| | | | | | 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
* gr-fec: update/add documentation for LDPC GRC blocks.tracierenea2016-03-276-9/+20
|
* Fix compilation in gcc-6Jaroslav Škarvada2016-02-211-1/+5
| | | | Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
* gr-fec: Repair puncture and depuncture XML files.Ron Economos2015-12-272-4/+4
|
* Merge remote-tracking branch 'jdemel/polar-systematic'Johnathan Corgan2015-12-0721-577/+926
|\
| * polar: systematic decoder addedJohannes Demel2015-12-0710-5/+384
| | | | | | | | | | | | | | Conflicts: gr-fec/grc/fec_block_tree.xml gr-fec/include/gnuradio/fec/CMakeLists.txt gr-fec/swig/fec_swig.i
| * polar: sytematic encoder addedJohannes Demel2015-12-0714-508/+431
| | | | | | | | | | | | | | Conflicts: gr-fec/grc/fec_block_tree.xml gr-fec/include/gnuradio/fec/CMakeLists.txt gr-fec/swig/fec_swig.i
| * polar: systematic test code addedJohannes Demel2015-12-074-66/+113
| |
* | polar: added more details in README about usage of channel construction codeJohannes Demel2015-12-011-3/+27
| |
* | polar: BEC channel construction optimizedJohannes Demel2015-12-011-18/+137
| | | | | | | | | | Conflicts: gr-fec/python/fec/polar/channel_construction_bec.py
* | polar: fixed channel construction naming errorJohannes Demel2015-12-018-32/+32
| |
* | polar: channel construction bugfixes in Python codeJohannes Demel2015-12-013-10/+33
|/
* Merge branch 'issue847'Tom Rondeau2015-11-022-4/+9
|\
| * fec: LDPC: patch for issue #847.Tom Rondeau2015-10-292-4/+9
| | | | | | | | | | | | | | | | 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).
* | fec: conditionalize use of matplotlib in polar code helper functions.Tom Rondeau2015-10-202-9/+11
| | | | | | | | Make it so that we don't require matplotlib just to run QA tests.
* | fec: polar code QA code was not producing XML files containing results.Tom Rondeau2015-10-203-9/+3
|/
* fec: LDPC: added back all QA tests and added a test of ldpc_gen_mtrx_encoder.Tom Rondeau2015-10-151-78/+130
|
* fec: LDPC: fixed issue with bit_flip_decoder.Tom Rondeau2015-10-1513-43/+52
| | | | | We can't use a raw pointer, so using a shared_ptr to the base class, instead, from the H and G matrices.