Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 33
# # Examine the Eq 3 in “Performance versus Overhead for Fountain Codes over Fq” Liva et al. (2010) # That is the equation for P_error of Random Linear Fountain (RLF) Code. # # by Chong ZK # 24-Oct-2015 # # Public link: https://cloud.sagemath.com/projects/296436a6-28bf-4a04-986b-727ebc30167f/files/Test%20Eq%203.sagews # def liva_p_err(k, delta, q): ''' Equation 3 of “Performance versus Overhead for Fountain Codes over Fq” Liva et al. (2010). Measuring the P_error of RLF code. k : total message symbols. delta : total overhead symbols. q : GF(q). ''' result = 1.0 - prod( 1 - (q**(i-1)) / q**(k+delta) for i in (1 .. k) ) return result def zk_p_err(k, m, q): ''' To calculate the failure probability to have rank k in a GF(q) random matrix of dimensions of (k+m) x k. ''' val = 1.0 - prod((1.0 - q**(i-k)) for i in (1 .. k-m-1)) return val #-------------------------------------------------------------------- # Testing #-------------------------------------------------------------------- # # I would like to the P_success and P_error of RLF code for the first ten overhead symbols. # k = 10 # Total message symbols q = 2**2 # GF(q) print '# Live''s equation' # delta is the total overhead symbols for delta in (0 .. 10): p_error = liva_p_err(k, delta, q) p_success = 1 - p_error print 'In GF(%d), k=%d, delta=%d, p_success=%f, p_error=%f' % (q, k, delta, p_success, p_error) print print print '# ZK''s equation' # m is the total overhead symbols for m in (0 .. 10): p_error = zk_p_err(k, m, q) p_success = 1 - p_error print 'In GF(%d), k=%d, delta=%d, p_success=%f, p_error=%f' % (q, k, m, p_success, p_error) # for m in (0 .. 10): # print '# m = %d' % m # p_success = p(k=10, m=m, q=2) # p_fail = 1 - p_success # print '\tP_e = %f' % p_fail # print '\tP_s = %f' % p_success
# Lives equation In GF(4), k=10, delta=0, p_success=0.688538, p_error=0.311462 In GF(4), k=10, delta=1, p_success=0.918050, p_error=0.081950 In GF(4), k=10, delta=2, p_success=0.979253, p_error=0.020747 In GF(4), k=10, delta=3, p_success=0.994797, p_error=0.005203 In GF(4), k=10, delta=4, p_success=0.998698, p_error=0.001302 In GF(4), k=10, delta=5, p_success=0.999675, p_error=0.000325 In GF(4), k=10, delta=6, p_success=0.999919, p_error=0.000081 In GF(4), k=10, delta=7, p_success=0.999980, p_error=0.000020 In GF(4), k=10, delta=8, p_success=0.999995, p_error=0.000005 In GF(4), k=10, delta=9, p_success=0.999999, p_error=0.000001 In GF(4), k=10, delta=10, p_success=1.000000, p_error=0.000000 # ZKs equation In GF(4), k=10, delta=0, p_success=0.688538, p_error=0.311462 In GF(4), k=10, delta=1, p_success=0.918051, p_error=0.081949 In GF(4), k=10, delta=2, p_success=0.979255, p_error=0.020745 In GF(4), k=10, delta=3, p_success=0.994798, p_error=0.005202 In GF(4), k=10, delta=4, p_success=0.998700, p_error=0.001300 In GF(4), k=10, delta=5, p_success=0.999676, p_error=0.000324 In GF(4), k=10, delta=6, p_success=0.999920, p_error=0.000080 In GF(4), k=10, delta=7, p_success=0.999981, p_error=0.000019 In GF(4), k=10, delta=8, p_success=0.999996, p_error=0.000004 In GF(4), k=10, delta=9, p_success=1.000000, p_error=0.000000 In GF(4), k=10, delta=10, p_success=1.000000, p_error=0.000000