• 大小: 420KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: FEC  RS  冗余  

资源简介

RS码的例子,5个实体包,1个冗余包,可以调整比例。 通过FEC编码 forward error correction based on Vandermonde matrices

资源截图

代码片段和文件信息

/*
 * fec.c -- forward error correction based on Vandermonde matrices
 * 980624
 * (C) 1997-98 Luigi Rizzo (luigi@iet.unipi.it)
 *
 * Portions derived from code by Phil Karn (karn@ka9q.ampr.org)
 * Robert Morelos-Zaragoza (robert@spectra.eng.hawaii.edu) and Hari
 * Thirumoorthy (harit@spectra.eng.hawaii.edu) Aug 1995
 *
 * Redistribution and use in source and binary forms with or without
 * modification are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above
 *    copyright notice this list of conditions and the following
 *    disclaimer in the documentation and/or other materials
 *    provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ‘‘AS IS‘‘ AND
 * ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS
 * BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY
 * OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE DATA
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR
 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY
 * OF SUCH DAMAGE.
 */

/*
 * The following parameter defines how many bits are used for
 * field elements. The code supports any value from 2 to 16
 * but fastest operation is achieved with 8 bit elements
 * This is the only parameter you may want to change.
 */
#ifndef GF_BITS
#define GF_BITS  8 /* code over GF(2**GF_BITS) - change to suit */
#endif

#include 
#include 
#include 

typedef unsigned long u_long;
/*
 * compatibility stuff
 */
#if defined(MSDOS)||defined(__MINGW32__) /* but also for others e.g. sun... */
#define NEED_BCOPY
#define bcmp(abn) memcmp(abn)
#endif

#ifdef NEED_BCOPY
#define bcopy(s d siz)        memcpy((d) (s) (siz))
#define bzero(d siz)   memset((d) ‘\0‘ (siz))
#endif

/*
 * stuff used for testing purposes only
 */

#ifdef TEST
#define DEB(x)
#define DDB(x) x
#define DEBUG 0 /* minimal debugging */
#ifdef MSDOS
#include 
struct timeval {
    unsigned long ticks;
};
#define gettimeofday(x dummy) { (x)->ticks = clock() ; }
#define DIFF_T(ab) (1+ 1000000*(a.ticks - b.ticks) / CLOCKS_PER_SEC )
typedef unsigned long u_long ;
typedef unsigned short u_short ;
#else /* typically unix systems */
#include 
#define DIFF_T(ab) \
(1+ 1000000*(a.tv_sec - b.tv_sec) + (a.tv_usec - b.tv_usec) )
#endif

#define TICK(t) \
{struct timeval x ; \
gettimeofday(&x NULL) ; \
t = x.tv_usec + 1000000* (x.tv_sec & 0xff ) ; \
}
#define TOC

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       24903  2019-09-10 11:45  fec.c
     文件        2338  2019-09-10 11:45  fec.h
     文件          36  2019-09-10 12:19  git_version.h
     文件         527  2019-09-10 12:10  makefile
     文件        1354  2019-09-10 12:16  rs.c
     文件        1415  2019-09-10 11:43  rs.h
     文件     1040501  2019-09-10 12:19  simple_fec
     文件         594  2019-09-10 12:19  simple_fec.c

评论

共有 条评论